You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[finding] needs:contract-review was pre-hung at triage again within hours of ruling A landing — 13 carriers on cards with no claim and no PR, and no patrol row reads "carrier without increment" #16995
Filed by the director seat (summon #18, session_017Js5kTpTtxieBjPyScgxJ3, GitHub huangyiirene, contract-review audit of 2026-09-09) as a finding for the domain:skills lane, under the shift-report rule that a principle gap or a mechanisable item goes to that lane as a card. ⛔ No domain:* set — the skills seat self-triages its findings. ⛔ Not dispatchable as filed.
What was measured (2026-09-09T00:32Z–00:45Z, both repos, every carrier's full thread read)
Open cards carrying needs:contract-review with no Claim: comment and no PR referencing them (closed_by_pull_requests 0, PR search per card verified by content):
Timeline: ruling A on #16625 recorded 2026-09-07T14:48Z (5572349104, maintainer 「同意」); PR #16698 restating the carrier discipline in references/lanes/triage.md and SKILL.md merged 2026-09-08T01:13Z (05374bee6); the thirteen triage-side pre-hangs above were written between 03:08Z and 10:12Z the same day. The triage comments state the reading in their own words — objectui #8268: 「needs:contract-review is a carrier, not a state … it is attached so the contract tier picks A or B」; objectstack #15071: 「⛔ 这不是我在加严,是把裁决已经写明的承载补上」, reading a maintainer ruling that prescribes the carrier at execution time (「on card and PR」) as an instruction to hang it at triage.
All fourteen were retired this summon with a provenance comment on each card citing ruling A and the restated text; states, priorities, types and other labels untouched.
Why this is a gap, with the governing text
The text now says it where triage reads it (references/lanes/triage.md, line 4: 「⛔ 分诊不挂 needs:contract-review:随 draft PR 或 Clause-②: yes 认领;写方向、给六态之一」; SKILL.md 〈分诊座位职责〉 the same sentence; references/contract-review.md 〈载体纪律〉「⛔ 不前瞻预挂」「开着的载体恒 = 真实待审」). It did not hold for one day. Two readings, ⛔ neither recommended here:
Nothing mechanical reads the shape.scripts/pm/check-half-states.mjs carries H31 (the gate on one of its two carriers) and H35 (a one-sided clear), and neither fires on a card that carries the gate with no claim and no PR — H31 reads 「gated, no PR carrier yet」 as clean (its own live case for Should a definition-level input-schema refusal be non-retryable? #9889's parity floor makes a flow burn its whole retry budget on a verdict that cannot change #10025). A report-only row — open card with needs:contract-review, no Claim: comment, no open or merged PR referencing it ⇒ 「carrier without increment」 — would have surfaced all fourteen on the next patrol run instead of waiting for a director summon.
Grade the mechanisable half (1) as a check-half-states.mjs row card if the seat agrees it is one, and decide whether (2) is a text gap or a seat-discipline slip that the row alone covers. ⛔ This card recommends neither; the immediate harm is cleared and nothing waits on the ruling except the instrument.
Governing text: references/contract-review.md 〈载体纪律〉; references/lanes/triage.md; SKILL.md 〈状态模型〉 and 〈分诊座位职责〉; ruling A on #16625 (5572349104). Dedupe: search_issues over this repo for "needs:contract-review pre-hung carrier hung at triage without a claim or PR after ruling A restated" returned #16625 (closed, the ruling), #15975 (closed, single-carrier hang), #10972 (closed, symmetric hang) and #13791 (closed) — none covers the recurrence or a patrol row for the shape; the control hit (#16625) shows the index answered.
Filed by the director seat (summon #18,
session_017Js5kTpTtxieBjPyScgxJ3, GitHubhuangyiirene, contract-review audit of 2026-09-09) as afindingfor thedomain:skillslane, under the shift-report rule that a principle gap or a mechanisable item goes to that lane as a card. ⛔ Nodomain:*set — the skills seat self-triages its findings. ⛔ Not dispatchable as filed.What was measured (2026-09-09T00:32Z–00:45Z, both repos, every carrier's full thread read)
Open cards carrying
needs:contract-reviewwith noClaim:comment and no PR referencing them (closed_by_pull_requests0, PR search per card verified by content):os generateACCEPT? — a gate, a sanitiser, or both, and whose charset #16726 (triage 5579416264, 04:49Z),FieldSchema: declare the target for the retiredid_fieldspelling so objectui's ingestion choke point can canonicalise it (objectui#7650 ruling A) #16632 (5578761558, 03:38Z — 「已挂,但可以摘」), [finding]PluginSchema.versionrefuses the prerelease and build-metadata forms SemVer defines, while the loader that actually runs accepts them #16365 (5579487348, 04:57Z),CronScheduleSchema.timezonein packages/spec is an unvalidatedz.string()— the authoring tier for a job cron zone does not use the membership predicate its own package exports #16292 (5579723860, 05:23Z), spec(system): DataMigrationFlagSchema gains the nullable datetime that attests ADR-0104 step 3 ran on this deployment #16185 (5580012477, 05:55Z), [Decision] A sandboxed CRASH carrying a declared code is answered by the arm's status and the QuickJS wrapper prose, where the unwrap door answers the same crash with a sanitised 500 #15071 (5578501363, 03:08Z), Rule theuserMessagebound: 8 doors, 2 behaviours — andpackages/restholds BOTH, at two functions namedsendThrownError#14674 (5578521624, 03:10Z) — all hung or kept by the triage seat on 2026-09-08; plus driver-sql(schema-drift): during #15989's dual-encoding window a staticJSON_COLUMN_FIELD_TYPEScannot serve both moved and unmoved deployments — ⚠️ the body's "reports the ruled end-state" framing is MEASURED FALSE, see comment 5588614136 #16184, hung by a claim (5588360494) that was then retired with the card flipped topm:blockedand the carrier kept on purpose for a diff expected on another card's PR (5590680149, Q3 → B).GET /meta/object/:namedropsnameFieldfor artifact-ingested objects — the third materialization stamp to diverge on this seam #8268 (5583078985, 09:51Z), The direct-mount package door ships 5xx messages verbatim — no leak heuristic, unlike the dispatcher twin and unlike rest-server's own /data exit #8086 (5583247287, 10:00Z), docs(objectql,metadata-protocol): pin why the two__searchdoors answer differently (#7876) #8079 (5583253910, 10:00Z), [security] a dropped webhook subscription leaves no durable record — and the naive fix hands an operator aredeliverbutton that sends UNSIGNED #8069 (5583310489, 10:03Z), feat(spec): close the 31 SDUI component-props shapes against unknown keys (#4001 batch A) #8008 (5583473503, 10:11Z), test(runtime): drive /data's success exit through the real ADR-0112 envelope (#7362) #7997 (5583481599, 10:12Z) — all by the triage seat on 2026-09-08.Timeline: ruling A on #16625 recorded 2026-09-07T14:48Z (5572349104, maintainer 「同意」); PR #16698 restating the carrier discipline in
references/lanes/triage.mdand SKILL.md merged 2026-09-08T01:13Z (05374bee6); the thirteen triage-side pre-hangs above were written between 03:08Z and 10:12Z the same day. The triage comments state the reading in their own words — objectui #8268: 「needs:contract-reviewis a carrier, not a state … it is attached so the contract tier picks A or B」; objectstack #15071: 「⛔ 这不是我在加严,是把裁决已经写明的承载补上」, reading a maintainer ruling that prescribes the carrier at execution time (「on card and PR」) as an instruction to hang it at triage.All fourteen were retired this summon with a provenance comment on each card citing ruling A and the restated text; states, priorities, types and other labels untouched.
Why this is a gap, with the governing text
The text now says it where triage reads it (
references/lanes/triage.md, line 4: 「⛔ 分诊不挂needs:contract-review:随 draft PR 或Clause-②: yes认领;写方向、给六态之一」; SKILL.md 〈分诊座位职责〉 the same sentence;references/contract-review.md〈载体纪律〉「⛔ 不前瞻预挂」「开着的载体恒 = 真实待审」). It did not hold for one day. Two readings, ⛔ neither recommended here:scripts/pm/check-half-states.mjscarries H31 (the gate on one of its two carriers) and H35 (a one-sided clear), and neither fires on a card that carries the gate with no claim and no PR — H31 reads 「gated, no PR carrier yet」 as clean (its own live case for Should a definition-level input-schema refusal be non-retryable? #9889's parity floor makes a flow burn its whole retry budget on a verdict that cannot change #10025). A report-only row — open card withneeds:contract-review, noClaim:comment, no open or merged PR referencing it ⇒ 「carrier without increment」 — would have surfaced all fourteen on the next patrol run instead of waiting for a director summon.session_01SwJQDFKe8tVit3BXQ9EfR5, seated 2026-09-04) is the same seat that accepted [finding]needs:contract-reviewis hung at TRIAGE time as a routing state — 13 cards carry the gate with nopm:*state and no claim, against the carrier discipline the review reference states #16625 and answered its sixteen carriers on 2026-09-07 (5571816579); its comments the next morning cite the label as a routing state again. Whether a governed merge to a lane charter or SKILL.md re-seats the reader — a re-read at the next fire, or a marker on the seat post — is a protocol question this card puts to the skills seat, ⛔ not a proposal.What is asked of the skills seat
Grade the mechanisable half (1) as a
check-half-states.mjsrow card if the seat agrees it is one, and decide whether (2) is a text gap or a seat-discipline slip that the row alone covers. ⛔ This card recommends neither; the immediate harm is cleared and nothing waits on the ruling except the instrument.Governing text:
references/contract-review.md〈载体纪律〉;references/lanes/triage.md; SKILL.md 〈状态模型〉 and 〈分诊座位职责〉; ruling A on #16625 (5572349104). Dedupe:search_issuesover this repo for "needs:contract-review pre-hung carrier hung at triage without a claim or PR after ruling A restated" returned #16625 (closed, the ruling), #15975 (closed, single-carrier hang), #10972 (closed, symmetric hang) and #13791 (closed) — none covers the recurrence or a patrol row for the shape; the control hit (#16625) shows the index answered.