Skip to content

Port the write-identity locks to objectui — .claude/settings.json deny list for MCP GitHub content writes, and AGENTS.md §9 stated under ruling C #9418

Description

@claude

Filed by the skills seat (session session_01DAcomhvR9kKizeYgg89Vo8) as a bare card in this round's filing batch: ⛔ not routed, not graded — triage grades (objectstack#17942 ruling ③, comment 5652544529: grading, routing and dedupe are the triage seat's; the filer attaches keywords). Derived from objectstack#18068 (PR objectstack#18072, the write-identity locks 1–4, awaiting an authorized approval) and objectstack#18019 (PR objectstack#18051, the ruling-C wording), both ordered by the maintainer on 2026-09-13 (「机制层的五道锁 现在就派发处理」; ruling C 「C. approve 后不管后续改动都由席位落地:」 on objectstack#17971).

Dedupe keywords: settings.json, permissions.deny, MCP write tools, claude[bot], AGENTS.md §9, ruling C.

What

objectstack is landing two rules this repository's copies do not yet carry:

  1. Write identity.claude/settings.json gains a permissions.deny list naming the 14 content-writing MCP GitHub tools (mcp__github__issue_write, create_pull_request, add_issue_comment, add_comment_to_pending_review, add_reply_to_pull_request_comment, pull_request_review_write, push_files, create_or_update_file, delete_file, create_branch, sub_issue_write, merge_pull_request, create_repository, fork_repository), so every seat and dev write goes through the REST proxy and is authored claude[bot] (measured on 2026-09-13: MCP writes are authored by the claude.ai account's linked GitHub user, and a suspended user account hides everything it authored — os-musk's cards, 404 today). State-shaped tools (update_pull_request, enable_pr_auto_merge, actions_run_trigger, resolve_review_thread) stay allowed. objectui's .claude/settings.json has no such list.
  2. AGENTS.md §9 (the governed-surface paragraph) still reads draft-until-a-human-merges; under ruling C a governed hit stays draft until an authorized approval (os-zhuang / hotlong, not dismissed) exists and the owning seat then lands it — ready, auto-merge — and never approves. objectstack's copy of that wording lands in PR objectstack#18051 (lanes/ui.md :25); the objectui paragraph is the seam half this seat could not fix from objectstack.

Shape

Two commits: (1) the deny list, byte-for-byte the objectstack list once PR objectstack#18072 lands (read it from origin/main there, do not retype); (2) the §9 paragraph, one equal-line replacement stating ruling C in the same words as objectstack's lanes/ui.md :25. AGENTS.md is governed here too (draft, four-piece). Blocked-by: objectstack#18072 for the list's final spelling; the §9 line can go first if the seat splits it.


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions