Maintainer direct dispatch — the maintainer (pm@objectstack.ai) in the skills seat's chat session at 2026-09-13T16:14Z, verbatim: 「机制层的五道锁 现在就派发处理」. This card is lock 5 of the seat's five-lock plan against the 2026-09-13 suspension pattern (locks 1–4 are the governed sibling card filed in the same batch): make a user-authored seat or dev write VISIBLE the hour it happens. Filed and claimed by the skills seat (session session_01DAcomhvR9kKizeYgg89Vo8) under the direct-dispatch channel.
Dedupe keywords: patrol row, authored by, claude[bot], user account, check-half-states, write identity.
The row (report-only, scripts/pm/check-half-states.mjs)
An H row that flags a seat- or dev-signed artefact whose GitHub author is a USER account rather than the App: the artefact carries a seat/dev signature — a Claim: block with its Session: line, an os-dev-report marker, a ## Contract review heading with Reviewed-by:, a Filed by the … seat / … dev header, or a bare session_01[0-9A-Za-z]{22} ID in the first three lines — but user.type is not Bot (equivalently user.login ≠ claude[bot]). Population: the open cards, their comments and the open PRs the patrol already reads for other rows — ⛔ no new listing, ⛔ no new label, ⛔ no write; the row names the artefact, its author login, the channel it implies (MCP GitHub tool or a user PAT) and the remedy (re-post through the REST proxy; the original stays as history). Measured examples to pin as fixtures: #18045 and objectui#9404 (issues authored os-project-manager, bodies signed by the skills seat), PR #18051 (authored os-project-manager, body signed by a dev session), an os-tesla claim comment on objectui#9370 (authored os-tesla via Claude); clean fixture: any comment authored claude[bot]. Approver reviews and the maintainer's own comments carry no seat signature and are out of scope by construction — pin that too.
Also
Battery with lit controls in both directions; the row joins the header roster only if the file's roster practice has changed (rows since H28 carry their banner above the predicate — follow the file). Report the live count on today's board in the report (read-only). Non-governed (scripts/pm/**) ⇒ in-seat review, then ready + auto-merge by the seat.
Executable criterion
node scripts/pm/check-half-states.mjs --self-test gains the row's battery and stays green; git grep -c "user-authored" scripts/pm/check-half-states.mjs 0 → ≥1 (or the row's own name); the dry run over the live board names #18045, objectui#9404 (if the objectui copy reads it — objectstack only here) and PR #18051 as findings and nothing authored claude[bot].
Generated by Claude Code
Maintainer direct dispatch — the maintainer (pm@objectstack.ai) in the skills seat's chat session at 2026-09-13T16:14Z, verbatim: 「机制层的五道锁 现在就派发处理」. This card is lock 5 of the seat's five-lock plan against the 2026-09-13 suspension pattern (locks 1–4 are the governed sibling card filed in the same batch): make a user-authored seat or dev write VISIBLE the hour it happens. Filed and claimed by the skills seat (session
session_01DAcomhvR9kKizeYgg89Vo8) under the direct-dispatch channel.Dedupe keywords:
patrol row,authored by,claude[bot],user account,check-half-states,write identity.The row (report-only,
scripts/pm/check-half-states.mjs)An H row that flags a seat- or dev-signed artefact whose GitHub author is a USER account rather than the App: the artefact carries a seat/dev signature — a
Claim:block with itsSession:line, anos-dev-reportmarker, a## Contract reviewheading withReviewed-by:, aFiled by the … seat/… devheader, or a baresession_01[0-9A-Za-z]{22}ID in the first three lines — butuser.typeis notBot(equivalentlyuser.login≠claude[bot]). Population: the open cards, their comments and the open PRs the patrol already reads for other rows — ⛔ no new listing, ⛔ no new label, ⛔ no write; the row names the artefact, its author login, the channel it implies (MCP GitHub tool or a user PAT) and the remedy (re-post through the REST proxy; the original stays as history). Measured examples to pin as fixtures: #18045 and objectui#9404 (issues authoredos-project-manager, bodies signed by the skills seat), PR #18051 (authoredos-project-manager, body signed by a dev session), an os-tesla claim comment on objectui#9370 (authoredos-teslavia Claude); clean fixture: any comment authoredclaude[bot]. Approver reviews and the maintainer's own comments carry no seat signature and are out of scope by construction — pin that too.Also
Battery with lit controls in both directions; the row joins the header roster only if the file's roster practice has changed (rows since H28 carry their banner above the predicate — follow the file). Report the live count on today's board in the report (read-only). Non-governed (
scripts/pm/**) ⇒ in-seat review, then ready + auto-merge by the seat.Executable criterion
node scripts/pm/check-half-states.mjs --self-testgains the row's battery and stays green;git grep -c "user-authored" scripts/pm/check-half-states.mjs0 → ≥1 (or the row's own name); the dry run over the live board names #18045, objectui#9404 (if the objectui copy reads it — objectstack only here) and PR #18051 as findings and nothing authoredclaude[bot].Generated by Claude Code