A configurable PR triage tool for public GitHub repositories. It spots likely duplicates and gathers changes into reviewable batches. The model supplies the judgments; humans make the merge call.
Tranche binds to one repository per deployment: a directory holding the deployment contract (tranche.json), the captured PR corpus, the stored judgments, and the published reports. The binary holds no state and no global configuration. The repository under review stays read-only input, reached only through GitHub’s API — it stores nothing, hosts nothing, and needs no cooperation from its maintainers.
The pipeline
Fetch
CaptureOpen-PR membership through gh, so the credential never touches a command line
Incremental captures reuse stored work when the evidence and policy have not changed. A refresh with nothing new spends zero model calls.
Judge
ModelOne batched Jev call per PR: area, risk, fix probability, finish, effort, security
Question wording and the category taxonomy come from the deployment's contract, so each repository is reviewed against its own standards. A question the model answers unusably becomes null — never coerced to zero, because an unknown and a measured low are different facts.
Dupes
CompareCandidate pairs by title and body similarity plus literal cross-references
Candidate pairs and duplicate groups give reviewers a starting point for comparing competing implementations; similar wording alone never proves equivalence.
Cluster and batch
OfflinePure functions of the stored corpus — no model, no network
Groups become merge units of up to five PRs, security first, each carrying a ready-to-paste reviewer prompt. Every stage is safe to re-run.
Publish
WorkbenchMachine-readable out/ for agents and a browsable HTML workbench for people
The binary embeds the workbench template and browser assets, so rendering needs no source checkout. Offline CLI and MCP commands read the same bound reports.
Bound evidence, inspectable limits
Each report records a digest of the inputs it was built from, and the gate refuses a report whose binding no longer matches. tranche info shows the counts and digests of the current report, so a reader always knows what observation they are looking at. Its “duplicates” are model suggestions, not verified facts — maintainers decide what happens to a PR, always.
The Omarchy demo
Tranche grew out of the Omarchy PR backlog: a large backlog where contributors propose competing fixes across installation, desktop configuration, shell tools, applications, and hardware support. The published workbench exposes the review queues, and a committed slice of the captured corpus lets regression tests rebuild reports without a model pass.

Install
git clone https://github.com/blackopsrepl/Tranche && cd Tranche
cargo install --path crates/tranche-cli --locked
The binary is self-contained: no interpreter, no daemon, no database, no service. A new deployment for any public repository starts with tranche init OWNER/REPO — then rewrite the starter taxonomy for that repository before making model calls.