Repository navigation
[finding] The generic seat-post protocol and the SKILL.md seat mutex still describe a single-occupancy seat, which the director ruling retires for that seat #16343
Description
Activity
- addeddocumentationImprovements or additions to documentationImprovements or additions to documentation
on Sep 6, 2026 - addedpriority:p2Medium: important, M3Medium: important, M3
on Sep 6, 2026 Blocked-by: #16004
Graded by the skills seat (15:1xZ):
domain:skills,priority:p2,documentation+findingkept; footer restored through REST (the MCP create path drops it). Ruling recorded at flight E's ACCEPT on PR #16346: option A — one carve-out sentence in SKILL.md 〈入口与角色〉 naming the director seat exempt from readings one and two and the 自退 rule, the generic mutex untouched fordomain:*seats; seat-post-protocol.md gains a status-word form for a multi-summon seat (or the director line names its own), and the ratchet map's comment quoting the old authorization sentence is refreshed. Held behind flight A's PR #16339 (SKILL.md, core-rules.md) and flight B (the ratchet map); dispatched as one flight after both merge.
Generated by Claude Code
Claim: PM loop round 9 — flight Z, the SKILL.md batch: five folds under the unchanged line pins (SKILL.md 811, core-rules 150, and each named reference's own ceiling), one governed PR. (1) #16386 乙 — the human-floor row gains the one-file exception for
references/platform-readings.md: an increment raises the ceiling to the landed line count without a decision card provided the seat's acceptance comment shows every fact verified and deduplicated (candidates / landed / already-present / declined), one line per fact, no re-wrapping counted; recorded inruledRaisesciting the standing ruling (5563909225). (2) #15803 §A option (c) — batch independence reads FILE SURFACE, not package; the exemption clause becomes the rule (region-level file-surface declaration in the claim; mergemainbefore opening the PR and again after a sibling lands; conflicts arbitrated by the merge queue, no manual PM ordering; same-file strictly serial), with the sentence that cross-file semantic coupling is caught by the queue's CI (5563910163). (3) #16352 — the selection order readspriority:p1/p2/p3where it readsp0today, in the order the card's ruling states. (4) #16372 — re-read the PR head before trusting anycheck_suite.completedevent. (5) #16343 — the director carve-out in the seat mutex, the seat-post protocol's multi-summon status form, the ratchet-map comment refresh.
Session:session_019RfFHiRCSs3JXLK4cwcfox
Branch:claude/issue-16386-skill-batch-62
Worktree:objectstack-issue-16386
Domain:domain:skills
File surface:.claude/skills/pm-dispatch/SKILL.md,references/core-rules.md, and whichever ofreferences/seat-post-protocol.mdand the ratchet map comment inscripts/pm/check-skill-line-ratchet.mjsthe five cards name — measured per card before editing; folds only, no ceiling raise.
Container & model: L,mode:subagent, fable —dispatch-gates.mjs --tier: MANDATORY on.claude/skills/pm-dispatch/SKILL.md; on a fable 429 the seat's exemption applies, opus, recorded here.
Clause-②: no
Serial: devx's PR #16271 (draft,mergeable_state: dirty) collides on 候选与批次 and owes the re-fold per note 5560027553; this flight branches fromorigin/mainand takes no proof against a dirty head — whichever merges second re-folds. T's PR #16437 is in the queue on the ratchet script's self-test region; mergeorigin/mainin after it lands or prove clean twice. Governed ⇒ draft PR, in-seat contract-tier review, then the seat requests os-zhuang + hotlong, addsneeds-user-decisionand posts the final 维护者速读; human merge. The PR carriesFixes #16386,Fixes #15803,Fixes #16352,Fixes #16372,Fixes #16343.
Generated by Claude Code
Report pointer (flight Z): this card is one of the five folded into draft PR #16486 (head 9390702); the
os-dev-reportfor the flight is the anchor comment on #16386 — #16386 (comment) — and the PR body lists this card's old line, new line and the fold that paid for it.
Generated by Claude Code
os-closed-card-sweep — machine-findable marker for this generated comment.
Removed the pm-loop state label(s) this closed card no longer claims:
pm:dispatched.- Closing pull request: docs(pm-dispatch): the batch #62 skill folds — file-surface batch independence, priority in the selection order, the readings-ledger ceiling exception, the suite-event head re-read, the director carve-out #16486, merged.
- Closing commit
aa0304d327, merged intomain. - Left untouched:
documentation,priority:p2,finding,domain:skills— ownership, priority and outcome are not state claims. - The label set was read back after the write and matched.
A state label claims work is in flight. This card is closed on a merged delivery, so the claim
is stale; every other label is left exactly as it was found. Nothing here is a judgement about
the card, and no verdict-bearing label is ever touched by this sweep.posted by half-state-patrol run 34097314575 · trigger
scheduleGenerated by Claude Code
Filed by the dev executing the director-charter ruling on #16172 as an out-of-scope finding: the ruling was executed in
.claude/skills/pm-dispatch/references/lanes/director.mdonly (the one file that flight held). Every sentence below lives in a file another flight holds, so none of them was touched. ⛔ Nodomain:*and no assignee — the skills seat triages this.What the ruling says
The director seat is a decision function: any number of summons run concurrently, no closing brief is owed before another summon starts, and a second summon neither waits for, stands down nor supersedes another. The takeover (接管) and incumbent (在任者) notions are retired for that seat.
The generic protocol text that still assumes exactly one occupant
.claude/skills/pm-dispatch/references/seat-post-protocol.md— the file the director charter points at with 「四段照旧」. Its status vocabulary has no word for a seat with N summons open, which is the specific gap the executing brief asked to be reported:Line 9 is the load-bearing one: the four words are
🟢 <github-login>/🟢 Routine/⏳ vacant/⏸️ paused, and line 38 forbids extending the vocabulary. A director seat post with three summons open can be written under none of them, and line 11's assignee-title cross-check reads such a post as a half state. The charter line landed for #16172 says the status block carries one line per summon with no occupant, which the generic protocol cannot currently express.The mutex and takeover sentences in the files other flights hold
.claude/skills/pm-dispatch/SKILL.md:.claude/skills/pm-dispatch/references/core-rules.md:These stay TRUE for
domain:*seats, which the ruling did not touch — line 88 is the generic arbitration rule and the ruling is explicitly about the director seat alone. What is open is whether each of them needs a director carve-out, since a director summon that runs line 78 today finds an active session with no closing brief and self-retires, which is exactly what the ruling says it must not do.A stale quotation left by this edit
scripts/pm/check-skill-line-ratchet.mjs:720quotes the director charter's authorization sentence verbatim inside the CEILINGS comment:The charter's line was reworded in the same stroke that folded the summon guard into it, so the quotation no longer matches the file it quotes. It is a comment, not a pin, and the ratchet is green either way; the file is held by another flight, so it is reported rather than fixed.
Dedupe
Listed all open issues over the REST list endpoint (3 pages, 300 entries) and grepped titles for seat / summon / mutex / occupancy / 座位 / director / handover / charter. The neighbours are #16172 (this ruling's own card), #16004 (the mutex's reading 3 misses a session re-engaged on a
pm:queuecard — a different reading, same mutex) and #16197; none of them is this. Control: the same grep returns live hits, so the empty result is a reading rather than a broken query.Generated by Claude Code