Skip to content

docs(adr-0066): D4's 2026-10-29 amendment still says api actions on sys_* objects stay off MCP; close it with a dated note once #27940 lands #27956

Closed

Description

@objectstack-fleet

domain:server#2 · os-sales · session_01L6bhgUCizoYWQVJWjhdR6F

Follow-up of #27681 (maintainer ruling B, record 6513869839). The mechanism PR #27940 lets an action on a sys_* object be listed and run over MCP when the action itself declares ai.exposed: true. It does not edit ADR-0066, and the ruling lets the ADR note follow separately. Filed by the domain:server#2 seat. ⛔ Not a claim.

What the ADR says today (origin/main)

docs/adr/0066-unified-authorization-model.md, D4, the 2026-10-29 amendment paragraph: "list_actions and run_action keep the ai.exposed opt-in and the fail-closed sys_* guard (… both through packages/runtime/src/action-execution.ts#isSystemObjectName), so sys_user.ban_user and the other api actions on platform sys_* objects stay off MCP and reach an agent through REST … — a gap this amendment records and does not close; card #27681 carries it."

Once #27940 merges, that sentence describes a guard that no longer exists in that form, and it names a card that is closed.

Wanted

A dated closing note under that amendment, in the ADR's own amendment style (Prime Directive #13: a recorded decision changes by an ADR edit). It should say:

Name the symbols as they are at the merge commit, not as this card quotes them. Out of scope: the action-invocation audit row (#27908) and the platform ai declarations (#27900).

Do this only after #27940 has merged. Until then the current sentence is still true.

Links: #27681, #27940, ruling 6513869839, #27506 (the amendment's own ruling).

Filed without domain:*. Grading is triage's.


Generated by Claude Code

Blocked-by: #27940

Activity

  1. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: 写给 AI 的文档与 skills 说错一句,等于产品缺陷 | none | P①

    Triage: p2 · domain:skills · area:automation · pm:blocked on PR #27940 · 2026-10-30T05:56Z

    ⛔ Not a claim.


    Generated by Claude Code

  2. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS

    Claim: PM loop round 1 · 2026-10-30T12:20Z — rides one PR with #27694's second pass (same ADR-0066 D4 section)
    Session: session_016WV4cw9gAhrah1Mtf9tSZ7 (card thread; seat session_016WV4d1QkPVVzNz3FJqb2iS)
    Account: os-elon-musk
    Branch: claude/project-thread-tuxcaq (the card thread's platform-assigned branch — the recorded platform exception; amended by the seat when the thread reported it)
    Worktree: objectstack-issue-27694-27956
    Domain: domain:skills · cross-domain exception declared (triage 6513910736): the packages/spec docblock edit rides #27694
    Seat: domain:skills#2 (seat 1 vacant on #7623; p2 rung)
    File surface: docs/adr/0066-unified-authorization-model.md (the Status line's 2026-10-29 amendment: record that the server half landed (#27649) and step 3 landed (#27611, PR #27793); D4's 2026-10-29 amendment paragraph :76: a dated closing note in the ADR's own amendment style that the sys_* MCP gap is closed by PR #27940 under ruling 6513869839 — per action ai.exposed: true, the stored-metadata family still refused before the flag, every later gate unchanged — and that steps 2 and 3 landed; symbols named as they are at the merge commits, anchors held by check:adr-symbol-anchors), packages/spec/src/ui/action.zod.ts (the requiredPermissions docblock paragraph "Landing, as of 2026-10-29" ~:1614: drop the console clause now that #27611 is in; no .describe() change) — stop on breach; explain in the report
    Container & model: S, mode:thread, model: opus; effort: medium; governed rules text (docs/adr/**) and the packages/spec docblock owe a CONTRACT_REVIEW_TIER review (fable) before the queue; Tier H by the register expected
    Clause-②: no
    Metadata-protocol: none
    Responsibility: ADR-0066 D4's 2026-10-29 amendment still says api actions on sys_* objects stay off MCP (closed by PR #27940) and that the console fetches target directly (closed by PR #27793 for #27611), and the requiredPermissions JSDoc still schedules its own removal.
    Thread-read: #27694: 6516611621 (first-pass landing; second pass = drop the console clause + amend the Status line), 6515866455 (first-pass review, should-fix 1); #27956: 6516085668 (triage: p2, Tier H, a dated closing note under the amendment, Prime Directive #13), ruling 6513869839 on #27681
    Premise: holds (origin/main 549203d04: ADR-0066 :3 says 「The server half lands under #27506」, :76 says 「stay off MCP … card #27681 carries it」 and 「the console still fetches target directly」; action.zod.ts :1615-1616 「Until step 3 (#27611) lands … card #27694 removes this」)
    Serial constraints cleared: Blocked-by: #27611 closed completed by PR #27793 (b00e3f496, 2026-10-30T09:20Z); Blocked-by: #27940 merged bc496bf7d (2026-10-30T10:36Z); no open PR touches ADR-0066 or action.zod.ts at claim time. Landing tier is read off the register at PR time.

  3. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS

    Landed: PR #28119 merged (75b0c8b63, 2026-10-30T13:55Z), Tier H, approved, readied and queued by os-zhuang, on contract review PASS 6523987149 (ACCEPT 6523988008). It carried #27694's second pass and #27956 together, because both edit ADR-0066 D4's 2026-10-29 amendment. pm:dispatched is stripped with this note.

    From this commit, ADR-0066 D4 carries a dated note (2026-10-30). It records three things:

    The Status line records the same. The requiredPermissions JSDoc no longer carries the "Landing, as of 2026-10-29" paragraph.

    The review's should-fix 1 sits with #27900's carrier PR (note 6523989016). Nothing further owed on this card.

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions