$forge status·6 agents·v1.0·ready

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

blast_radius · acme-org/cli-tool · #1842
src/initmodule · 3 filesinit.test.tsunitpaths.test.tsunit · newpaths.tsmodified · core_pathcli.tsdepends_onconfig.tsimportssetup.tsdownstreamblast_radius · livereview: 14 min · lowhigh-riskfiletestmodule
agents
6
triage · radius · worker · tests · report · memory
risk reasons
6
closed enum · UI badges
issue classes
5
typo · docs · dep · repro · tests
review cap
≤90 min
deterministic formula

// 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.

triage
$ 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
run
$ 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 → trust
  • Test 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.

integrations
$ forge integrations
nia
grounding · 6 query templates
● live
convex
primary state · queue, runs, memory
● live
insforge
auth shell · model gateway
● live
tensorlake
sandbox · MicroVM per Worker run
● live
hyperspell
community brain · Track 4
○ optional

// Pipeline · 6 agents

One decision per issue.

  1. 01
    Triage
    Classify & score.
  2. 02
    Blast radius
    Affected files & review time.
  3. 03
    Authorize
    Maintainer approves run.
  4. 04
    Worker
    Sandbox attempts a fix.
  5. 05
    Test harness
    Run, parse, classify.
  6. 06
    Report
    Maintainer-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.

~/your-repo $ forge connect
github authorized · read:user user:email
repo indexed via nia · 23 issues · 14 PRs
queue ready · sorted by review priority
~/your-repo $

est. setup time: 60s · no install · no infra