Skip to content

claw: name the breaker of a master red, so fix_claim can refuse a self-fix bounty #10904

Open

Description

@gHashTag

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's named list).

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

Refs #10886, #10821.

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.named list
    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.named list
  • 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

Boundary

  • specs/claw/fix_claim.t27

Activity

  1. added
    shape-refusedClosed by the issue-shape gate (specs/policy/issue_shape.t27); a passing edit reopens it
    on Oct 19, 2026
  2. github-actions commented on Oct 19, 2026

    @github-actions
    Contributor

    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.

    • missing: ## Boundary -- list every file this task may touch, one per line (- specs/x.t27); without it the Queen reserves nothing and no bee can take the issue
    • missing: ## User Scenarios -- at least one Given/When/Then scenario
    • missing: ## Requirements -- numbered obligations, FR-001: ... MUST ...
    • missing: ## Success Criteria -- an outcome a machine can settle: a number with a unit, a backticked file, exit 0, or a backticked command
  3. removed
    shape-refusedClosed by the issue-shape gate (specs/policy/issue_shape.t27); a passing edit reopens it
    on Oct 19, 2026
  4. gHashTag commented on Oct 19, 2026

    @gHashTag
    OwnerAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions