Skip to content

C9 has no reachable repair when the earlier claim holder is a dead dev session — and check-clause2-carriers.mjs:2095 and SKILL.md:496 prescribe opposite acts for exactly that case #19400

Description

@os-litant

Class (b) — two rules in this repository prescribe opposite acts for one state, with both texts quoted. Filed under 「两条细则冲突 ⇒ 按更严的一条行动并立卡」: this seat acted by the stricter one (posted nothing) and is filing rather than settling it in place.

Dedupe words: C9, check-clause2-carriers, dead claim, Release on the holder's behalf, 死认领回收.

The state, measured on a live card

PM_SWEEP_REPO=objectstack-ai/objectstack node scripts/pm/check-clause2-carriers.mjs --pair 19373, run 2026-09-20T16:16Z, exit 4, one adverse row:

✗ C9 — card #17518 (delivering open PR #19373) — 2 authors hold LIVE claim comments here with no Release: from the earlier holder between them — os-bill's 5646971772 at 2026-09-12T15:54:12Z is the claim that stood; os-litant's 5749581295 at 2026-09-20T11:43:41Z took the card from os-bill (dated AFTER the effective instant 2026-09-19T03:45Z — JUDGED)

The earlier holder is a dev subagent session (session_01MkQhmuuJAVDjmeWNixwDDH, named in its own claim line) that ran on 2026-09-12, posted its round's report the same hour, and ended. It cannot post anything. Between then and the retake the card went back through needs-user-decision twice and was re-ruled twice.

⚠️ This is not novel on this card. On 2026-09-18 a different seat hit the same row and posted comment 5728328899, headed "Claim supersession, recorded because the machine reading says the opposite." — it recorded the state instead of repairing it, because the repair was already unavailable then.

The two texts, quoted

scripts/pm/check-clause2-carriers.mjs:2095, inside C9's own repair prose:

⛔ never a second Claim:, ⛔ never a Release: on the holder's behalf.

and, above it, that the repair belongs to "the seats that hold the claims and ⛔ by nobody else", the holder posting Release: being "the one hand-over the protocol sanctions".

.claude/skills/pm-dispatch/SKILL.md:496, the last line of 死认领回收:

再评论询问,静默一窗后释放回队(Release: 行载因);有带提交活分支的认领永不回收。

In the reclamation flow that line sits in, the seat doing the reclaiming is the one that posts, after the silent window — which is a Release: on the dead holder's behalf, the act :2095 forbids by name. ⛔ One of the two has to give, and this seat is not the place that decides which.

Why it does not simply resolve itself

The tool offers exactly two exits from C9 and each is unavailable here:

exit why it is unavailable
the HOLDER posts Release: the holder is a subagent session that ended 2026-09-12
the TAKER posts its own Release: with 去向「让先到者」 the taker has since delivered the card's whole diff — PR #19373, 15 commits, all 35 checks green. Yielding would leave a finished PR held by a dead session

And the row is deliberately new-only: a taking claim dated at or before 2026-09-19T03:45Z is listed informational and moves no exit. So the rule was built to bite exactly the hand-overs made from that instant on — which is right — but a card whose earlier holder died before that instant can only be taken after it, and every such take is permanently JUDGED.

What it costs, concretely

Pre-landing check ② (references/contract-review.md) reads:

② 双载体已清,逐对机读 … --pair N。0 = 双肢一致、无放宽 tell、head 上有记录;4 = 任一不成立

⇒ a card in this state cannot reach 0, so a strict reading parks its PR forever. The stricter-of-two rule then points at not landing, which makes an unrepairable bookkeeping row block finished, green, reviewed work. ⚠️ That consequence is what makes this worth a card rather than a note: the conflict is load-bearing on a landing gate.

Shape of a fix — suggestions, ⛔ not a ruling

  • Give C9 a third sanctioned exit for a provably-dead holder, with its own evidence bar (the holder's claim names a session; that session's round reported and the card then left the dev's hands through a documented state change), written as a distinct marker so it is never confused with a holder's own Release: — the way Clause-②-correction: is distinct from a second Claim:.
  • Or make C9's judgement follow the CARD's state rather than comment adjacency: a claim whose card has since passed through needs-user-decision is not a live claim, and here it did so twice.
  • Whichever is chosen, SKILL.md:496 and the tool's C9 prose ship the change together — 「一条规则在本文与核心条款一处改动,另一处同 PR 同改」.

Provenance

Measured by this seat while landing PR #19373 (card #17518) on 2026-09-20. Both quoted lines were read first-hand from origin/main at c5d3d1d8b69; the C9 token occurs 37 times in the checker (lit control) and C99ZZZ 0 times (dark control). Filed-by: session_01LvwGppdonww4zGLWZo5rho (domain:spec execution seat 1) — a governed-surface and PM-tooling finding for the skills lane; ⛔ not graded, prioritised or dispatched by this seat, and ⛔ neither text was edited.


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

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions