⛔ Filed bare and ungraded by the domain:spec execution seat, session session_01KB5PFtxuy1x3dcR5gxudx6, 2026-09-16T11:4xZ. domain:*, type and priority are triage's. ⛔ Not claimed, ⛔ not dispatched.
Dedupe keywords: check-clause2-carriers --pair, 0/4/0 non-determinism, same blob different verdict, working directory dependent, #17919 remainder.
Why this card exists: so a landing does not read as a settlement
PR #18448 fixes #17919's observation — a C2 remedy naming another card's Claim: comment — and its at-tier review (record 5696882388, VERDICT PASS) ⭐ explicitly escalated that it does NOT touch the other half, and asked that the remainder be carried so the fix's landing is not read as closing it. This is that carrier.
The reading that is still unexplained
Recorded on #17919 by the domain:spec seat (os-bill, 2026-09-13T04:00Z). Same PR/card pair (#17917 / #17425), same command, three runs, three first-hand readings:
| time |
who |
cwd |
exit |
| 02:57Z |
execution seat |
shared checkout |
0 — "both carriers agree" |
| 03:04:09Z |
at-tier review subagent |
its own worktree wt-review-17917 @ d7d22bf4 |
4 — MISPLACED |
| 03:58:33Z |
execution seat |
shared checkout |
0 |
⚠️ Both sides were first-hand runs, ⛔ not recollection, and the reviewer's 4 agreed with that PR's own dev round at 02:53Z. ⛔ A version difference was excluded at the time: the script blob was identical on both sides.
Two hypotheses now ruled out, each with a control
1. Comment edits. Re-read by the #18448 review: all 16 comments on #17425 have created_at == updated_at ⇒ no comment was edited under the readers.
2. ⭐ Repo resolution from the working directory — the leading hypothesis, and it is dead. Measured by this seat on origin/main, scripts/pm/check-clause2-carriers.mjs:
| pattern |
hits |
process.cwd |
0 |
git remote |
0 |
execSync |
0 |
PM_SWEEP_REPO |
15 |
GITHUB_REPOSITORY |
4 |
control check-clause2-carriers |
34 |
Resolution is PM_SWEEP_REPO → GITHUB_REPOSITORY → default (header lines 20-23) — purely environment-driven, with no read of the working directory at all. So "it ran in a different directory" cannot by itself change the answer; if the two runs differed, they differed in environment or in what the API returned at that moment, not in cwd.
⇒ The two cheapest explanations are gone. That makes this narrower and more worth chasing, not less.
What is NOT claimed
⛔ That the checker mis-selects on a consistent pair. ⛔ That PR #18448 caused, fixed, or bears on this. That PR's diff touches nothing in the fetch, the claim ordering, the repo resolution or the read-path selection — verified by its review and consistent with the table above.
⚠️ Why it matters operationally
This is the gate every landing's pre-check ② runs. A verdict that can differ between two readers of the same pair means ② is not reproducible, and a seat could land on a 0 that another reader would have called 4.
Shape, ⛔ offered not specified
Make --pair state its inputs — the env-resolved board, the comment ids it read, and their count — so two runs that disagree can be diffed rather than argued about. The --pair-json path already proves the judging half is deterministic given a fixed document; what is unpinned is what document the live path builds.
Provenance
#17919 (the card this splits from; its observation half is fixed by PR #18448) · the evidence-upgrade comment on #17919 (os-bill, 2026-09-13T04:00Z) · PR #18448's at-tier review record 5696882388, boundary flag "open_questions is empty: it should not be".
Generated by Claude Code
⛔ Filed bare and ungraded by the
domain:specexecution seat, sessionsession_01KB5PFtxuy1x3dcR5gxudx6, 2026-09-16T11:4xZ.domain:*, type and priority are triage's. ⛔ Not claimed, ⛔ not dispatched.Dedupe keywords:
check-clause2-carriers --pair,0/4/0 non-determinism,same blob different verdict,working directory dependent,#17919 remainder.Why this card exists: so a landing does not read as a settlement
PR #18448 fixes #17919's observation — a C2 remedy naming another card's
Claim:comment — and its at-tier review (record5696882388, VERDICT PASS) ⭐ explicitly escalated that it does NOT touch the other half, and asked that the remainder be carried so the fix's landing is not read as closing it. This is that carrier.The reading that is still unexplained
Recorded on #17919 by the
domain:specseat (os-bill, 2026-09-13T04:00Z). Same PR/card pair (#17917 / #17425), same command, three runs, three first-hand readings:wt-review-17917@d7d22bf4Two hypotheses now ruled out, each with a control
1. Comment edits. Re-read by the #18448 review: all 16 comments on #17425 have
created_at == updated_at⇒ no comment was edited under the readers.2. ⭐ Repo resolution from the working directory — the leading hypothesis, and it is dead. Measured by this seat on
origin/main,scripts/pm/check-clause2-carriers.mjs:process.cwdgit remoteexecSyncPM_SWEEP_REPOGITHUB_REPOSITORYcheck-clause2-carriersResolution is
PM_SWEEP_REPO→GITHUB_REPOSITORY→ default (header lines 20-23) — purely environment-driven, with no read of the working directory at all. So "it ran in a different directory" cannot by itself change the answer; if the two runs differed, they differed in environment or in what the API returned at that moment, not in cwd.⇒ The two cheapest explanations are gone. That makes this narrower and more worth chasing, not less.
What is NOT claimed
⛔ That the checker mis-selects on a consistent pair. ⛔ That PR #18448 caused, fixed, or bears on this. That PR's diff touches nothing in the fetch, the claim ordering, the repo resolution or the read-path selection — verified by its review and consistent with the table above.
This is the gate every landing's pre-check ② runs. A verdict that can differ between two readers of the same pair means ② is not reproducible, and a seat could land on a 0 that another reader would have called 4.
Shape, ⛔ offered not specified
Make
--pairstate its inputs — the env-resolved board, the comment ids it read, and their count — so two runs that disagree can be diffed rather than argued about. The--pair-jsonpath already proves the judging half is deterministic given a fixed document; what is unpinned is what document the live path builds.Provenance
#17919 (the card this splits from; its observation half is fixed by PR #18448) · the evidence-upgrade comment on #17919 (
os-bill, 2026-09-13T04:00Z) · PR #18448's at-tier review record5696882388, boundary flag "open_questions is empty: it should not be".Generated by Claude Code