Merge-readiness
for OSS maintainers.
An always-on agent that turns your issue queue into tested, review-ready pull requests — with maintainer authorization, blast-radius analysis, sandboxed test results, and reports written from your perspective.
read-only github scope on sign-in · no background writes without authorization
// What it looks like
Real evidence, not vibes.
Every Forge surface emits structured output. The triage queue is JSON, the blast radius is a graph, the tests are a parsed result. You see the same evidence the agents see.
$ forge triage astral-sh/uv --since 24h# 23 issues fetched · indexing: indexed · model: claude-sonnet-4-6● #1842 actionable score=8 simple blast=low cli init: windows path quoting● #1855 actionable score=9 trivial blast=low chore(deps): bump esbuild → ^0.21.5● #1880 needs_info score=3 — — no repro on 'crashes on macOS'● #1904 risky score=10 moderate blast=high public RCE disclosure in src/session✓ 8 actionable · 5 needs_info · 4 out_of_scope · 4 duplicate · 1 risky · 1 fix_candidate
$ forge run --pr 1855 --authorize[blast_radius] affected: package.json, pnpm-lock.yaml · review: 7 min[worker] sandbox sb-7f3a · class=dep_bump · 2 attempts[test_harness] pnpm test → failed (lockfile drift) → retry → passed (312/312, 41s)[report] outcome: fix_attempted · citations: 5 · residual_risks: 2✓ ready for review · diff: 2 files (lockfile excl.) · branch unchanged
// The pipeline
One continuous, maintainer-controlled loop.
Each agent has a job, a closed-enum output, and a hard cap. Discipline is the feature.
- triage · sonnet
Triage queue
Strict JSON: classification, score 0–10, missing evidence, fix-eligibility hint, owner inference. Every claim is grounded in Nia.
{ "classification": "actionable", "score": 8, "estimated_complexity": "simple", "estimated_blast_radius": "low" } - blast_radius · sonnet + nia
Blast radius
UI-ready React Flow graph. Closed enum of 6 risk reasons. Deterministic review-time estimate with a 90-min ceiling. No floating-point risk score.
exported_public_apisecurity_or_auth_surfacehigh_fan_inmissing_test_coveragecore_pathprior_breakage_in_memory - worker · opus + tensorlake
Sandbox-tested fixes — or a clean handoff.
5 narrow issue classes, 8 early-exit guards, max one fix iteration, 8-min wall-clock. The Worker would rather hand off cleanly than land a confident-sounding wrong fix.
typo_fixdocs_fixdep_bumpsimple_repro_bugtest_additionformat_only Per-repo memory
Style, preferred patterns, prior breakages, review signals — with confidence and observation counts. Demoably resettable.
# wipe → re-learn → trustTest harness
Detects npm / pnpm / bun / pytest / cargo / go / make. Parses failures. No LLM in the test hot path.
Maintainer-tone report
9 sections, banned-phrase denylist, no "safe to merge" without evidence. Paste-ready into GitHub.
Nia-grounded
6 query templates, 4-tier fallback ladder, explicit "I don't know" — never silent fall-through to model priors.
// Built on
Sponsors, wired in by role.
Each integration earns its place by being load-bearing for one agent, not by logo placement.
// Pipeline · 6 agents
One decision per issue.
- 01TriageClassify & score.
- 02Blast radiusAffected files & review time.
- 03AuthorizeMaintainer approves run.
- 04WorkerSandbox attempts a fix.
- 05Test harnessRun, parse, classify.
- 06ReportMaintainer-ready PR body.
// Ready to ship
Try Forge on a repo you maintain.
Sign in with GitHub, connect a public repository, watch the queue populate live. Your data stays in our Convex store — wipe-able from the Memory Inspector at any time.
est. setup time: 60s · no install · no infra