Repository navigation
claw: name the breaker of a master red, so fix_claim can refuse a self-fix bounty #10904
Description
What
specs/claw/fix_claim.t27 (#10886) refuses a bounty when the author of a fix is the breaker of the red it fixes. It takes the breaker as an input. No spec yet says who the breaker is, so today the caller decides by hand, and an unknown breaker (WHO_NONE) claims nothing.
Change (t27 only)
A rule that names the breaker from facts the triage already reads:
- master's last green run and first red run of the failing check, by commit;
- the merged PRs between those two commits;
- the paths the failing log names (
red_origin'snamedlist).
The breaker is the one merged PR in that window that changed a named path. Anything else is unknown:
- no green run before the red;
- zero such PRs, or two or more;
- a named path no PR in the window changed.
Success Criteria
- The feat(claw): lab_receipt, lab_disk, red_origin and mut_known -- four gates for lab checks, red checks and mutation sweeps #10885 cases resolve: the
Rangeconflict to analog M4e: the whole SAR converter -- our own ngspice + PSP103 codes of the golden deck pinned, a behavioural converter compared conversion by conversion (Closes #10818) #10854, and the reap.t27 devhome path to tri worktrees --reap-plan: a REMOVABLE verdict for merged, clean lane trees, ruled in .t27 (Closes #10805) #10832. - Negative controls stay unknown: two candidate PRs; no green run; a named path changed outside the window.
- On the lab: t27c and t27b pass every test with 0 vacuous; the sweep has no new survivor;
seal --verifyand the dupe scan are clean.
User Scenarios
-
Given a master check with a last green run and first red run, exactly one merged PR between them that changed a path named in the failure log's
red_origin.namedlist
When the breaker rule evaluates that check
Then the author of that PR is named as the breaker -
Given a master check with no green run before its first red run
When the breaker rule evaluates that check
Then the breaker is unknown (WHO_NONE) -
Given a master check with two or more merged PRs in the window that each changed a named path
When the breaker rule evaluates that check
Then the breaker is unknown
Requirements
- FR-001: The spec MUST read the master's last green run and first red run of the failing check by commit
- FR-002: The spec MUST collect merged PRs between those two commits
- FR-003: The spec MUST read the paths from the failing log's
red_origin.namedlist - FR-004: The spec MUST name the breaker as the author of the single merged PR in the window that changed a named path
- FR-005: The spec MUST return unknown when no green run precedes the red run
- FR-006: The spec MUST return unknown when zero or multiple PRs in the window changed a named path
- FR-007: The spec MUST return unknown when a named path was changed only outside the window
Success Criteria
t27c specs/claw/fix_claim.t27compiles withexit 0t27b specs/claw/fix_claim.t27runs withexit 0and 0 vacuous tests- The feat(claw): lab_receipt, lab_disk, red_origin and mut_known -- four gates for lab checks, red checks and mutation sweeps #10885 cases resolve: the
Rangeconflict to analog M4e: the whole SAR converter -- our own ngspice + PSP103 codes of the golden deck pinned, a behavioural converter compared conversion by conversion (Closes #10818) #10854 and thereap.t27devhome path to tri worktrees --reap-plan: a REMOVABLE verdict for merged, clean lane trees, ruled in .t27 (Closes #10805) #10832 are correctly attributed - Negative controls remain unknown: two candidate PRs yields unknown; no green run yields unknown; named path changed outside window yields unknown
- Lab sweep has no new survivor;
seal --verifyexits 0; dupe scan is clean
Boundary
- specs/claw/fix_claim.t27
Activity
github-actions commentedon Oct 19, 2026
Closed by the issue-shape gate (specs/policy/issue_shape.t27, #7498): an issue must have the template's sections. Edit the body; an edit that passes reopens it.
- specs/x.t27); without it the Queen reserves nothing and no bee can take the issueFR-001: ... MUST ...exit 0, or a backticked commandgHashTag commentedon Oct 19, 2026
Reopened by the self-heal of #11007. The issue-shape gate closed this issue with a queued run that judged an older body from its event payload; the current body passes
gen/c/policy/issue_shape.c, and the gate's own contract is that a passing body stays open. If the work is in fact finished or obsolete, close it as completed.