Turn noise into work.
Triage reads an incoming issue, applies only allowed labels, and routes it without touching code.
- Constrained taxonomy. Labels come from the maintainer’s allowlist.
- One scoped write. No closing, editing, reviewing, or pushing.
- Issue context only. The sandbox begins empty by design.
- Human-selected entry. Maintainers decide what moves into fixing.
Propose, prove, answer.
The fixer implements the requested change, checks it, and publishes through a broker that enforces every boundary.
- No credentials. The agent cannot reach GitHub directly.
- Bounded changes. File count, size, and protected-path rules are host-enforced.
- Exact-head push. A moved branch causes a refusal, never an overwrite.
- Answers travel forward. Every finding gets a concrete response for the next review.
Verify before verdict.
The reviewer reads the full change, runs relevant checks, and issues one evidence-backed decision.
- Independent seat. Review runs apart from the authoring agent.
- Evidence required. Findings include severity, command output, and source location.
- Binary handoff. Approve, or request changes that wake the fixer.
- No false green. A partial view can never produce approval.
End the endless round.
When the verdict budget is exhausted, the adjudicator resolves the dispute instead of buying another cycle.
- Reads both sides. Findings and the fixer’s published answers arrive together.
- Three rulings. Accept, reject, or respec the disputed goal.
- Read-only workspace. The deciding seat cannot alter the change.
- Human conclusion. Its ruling reaches the operator; it still cannot merge.