Skip to content

Patrol row: a seat- or dev-signed issue, PR or comment authored by a user account instead of the App is a half-state (lock 5) #18069

Description

@claude

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.loginclaude[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

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

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions