Independent review for the decisions you cannot afford to get wrong.

autofusion freezes the work, sends it to model reviewers that cannot see each other, runs the checks the repository already trusts, and keeps every unresolved disagreement in the record. It makes important AI-assisted work easier to challenge and verify before people rely on it.

Version 0.6.0, September 2026. Python 3.11 and later, a Claude Code plugin, MIT.

A reconciliation ledger for one review run One frozen artifact goes to two blind reviewers. Their findings are grounded by trusted checks and reconciled by the active session. One finding is confirmed by an executed check, one stays unresolved and visible, one is advisory. The receipt records all three. frozen artifact packet sha256 7c1e…b9a4 diff, 14 files reviewer A astra-ultra, Codex CLI blind, read-only reviewer B claude-opus, Claude CLI blind, read-only no channel between reviewers self reconciles the active session never callable findings F1 blocker, A and B pytest ran, failed on head F2 major, A vs B disagree no executable check, kept open F3 minor, B only advisory, ungrounded receipt recommendation revise fused false 1 confirmed, 1 open hashes only, no prose signed by local key
confirmed by an executed check unresolved, stays in the record advisory, not grounded

Who it is for, and when to use it

Researchers, engineers, and heavy agent users who work intensely with AI. If a model drafts your migrations, your analyses, your manuscripts or your release notes, you already know the failure mode: the draft is fluent, the review is you, and you are tired.

Fusion is an escalation, not a default. Keep one model for routine work. Run fusion on the decisions that matter, where a missed issue would be costly or difficult to reverse: a schema migration, a security-relevant change, a claim that will be cited, a release that cannot be rolled back quietly.

The recommendation for people who work intensely with AI is simple. Do not add reviewers to everything. Pick the decisions where being wrong is expensive, and put those through independent review with executed checks.

The method, in order

  1. Draft

    The active Claude Code session, called self, produces the artifact: a diff, a plan, an answer, a release, a section of a manuscript.

  2. Freeze

    The runtime takes an immutable snapshot and compiles one hash-addressed packet. Credential-shaped text is redacted, or blocks dispatch, before anything leaves the machine.

  3. Admit

    Every participant passes the same role, model, provider, callable, compound and context-fit checks. The packet must fit the smallest participant, with prompt overhead and reserved output counted. Rejected cases invoke no provider.

  4. Review independently

    External reviewers examine the same packet with no channel between them. A compound provider whose hidden workers cannot be observed counts as one vote, however many workers it claims.

  5. Ground

    Checkable findings run through verification commands the repository declared and you approved before review. Reviewer text is never executed. A finding an executed check confirms outranks one two models merely agree on.

  6. Reconcile

    self reconciles findings against evidence. An unresolved blocker or major finding may receive one challenge and one rebuttal; debate is bounded and never becomes a topology of its own.

  7. Record

    A metadata-only receipt links packet, calls, grounding, analysis and decision through hashes. A ship receipt is valid only when the linked analysis has no blocker or major finding left.

self is a sentinel, not a transport. No Python path invokes the active session, and the session's own model may never appear as a reviewer, judge or delegate. The rule is enforced at configuration load, at admission and at the HTTP boundary, and each enforcement has a test that fails when it is removed.

What is measured, and how

Every capability claim below says which of four things it is: implemented and unit-tested, measured live on a date, supported but not verified here, or planned. Dated transport measurements are published separately from any claim about decision quality, and no accuracy percentage or model ranking appears on this page because none was measured.

ClaimStatusWhere the evidence lives
self is non-callable; Fable 5.1 is admitted only as selfunit-testedtests/test_identity_migration.py, mutation note in CHANGELOG
Uniform admission for panel, advisor and direct callsunit-testedtests/test_admission.py
Routing minimums checked against the actual panel, not its labelunit-testedtests/test_routing_aliases.py
Guardrails tighten by local configuration, never relaxunit-testedtests/test_config_policy.py
One execution deadline across dispatch, queue and groundingunit-testedtests/test_request_deadlines.py
Context fit against the smallest participantunit-testedtests/test_context_fit.py
Coverage gaps and abstention survive into the receiptunit-testedtests/test_analysis_coverage.py
Proof capsules bind to the reviewed revision and survive retriesunit-testedtests/test_proof_binding.py
Complete credential structures never reach a providerunit-testedtests/test_dlp_structures.py
Codex CLI route, gpt-5.6-sol at xhigh and ultralive, July 2026docs/provider-verification.md
Codex CLI route, gpt-6-astra at ultralive, 8 Sep 2026configured-route identity only; docs/provider-astra-smoke-20260908.json
Claude CLI route, claude-opus-5unit-testedJuly 2026 live measurement was Opus 4.8; the current contract has no live smoke yet
Antigravity agy headless transportships disabledlive smoke returned no terminal identity; tests/test_agy.py
ACP transport for Grokships disabledlive smoke did not finish initialization; tests/test_acp.py
Session delegates and a Workflow topology inside Claude Codeplanneddocs/roadmap.md, 0.6.x
Cross-model review beats same-model self-review on real decisionsnot measuredrequires the comparative evaluation program in the roadmap

A test the author wrote and then passed proves less than it looks. So each repair in the repository carries a mutation note: the repair was reverted once with the test kept, the whole suite was run, and the test that failed is named in the changelog. A repair whose reversal fails nothing is not counted as measured.

One run, read from its record

Synthetic example. The shape below is what a real run produces; the finding texts are illustrative and the hashes are invented. Real receipts carry hashes and metadata only, never prompts or model output.

F1 blocker, raised by A and B

The retry path re-sends tool results that were already delivered after a context compaction, so the upstream rejects the request.

Grounding
verify:pytest, approved argv, executed on head
Result
1 failed, so the finding is confirmed by execution
Disposition
fix required; cannot be waived by a reviewer

F2 major, A and B disagree

A says the byte-based token estimate overstates input and will reject valid packets. B says the estimate is conservative by design and the rejection is correct behaviour.

Grounding
no executable check declared for this claim
Result
unresolved; one challenge and one rebuttal recorded
Disposition
human review; stays in the receipt as open

F3 minor, B only

A helper name no longer describes what the function does after the change.

Grounding
none; naming is not executable
Disposition
advisory, recorded with its single source

Receipt metadata only

{
  "kind": "revise",
  "fused": false,
  "packet_hash": "sha256:7c1e…b9a4",
  "participants": [
    {"handle": "astra-ultra", "configured_model": "gpt-6-astra",
     "observed_model": null, "identity_evidence": "configured-route"},
    {"handle": "claude-opus", "configured_model": "claude-opus-5",
     "observed_model": "claude-opus-5", "identity_evidence": "usage"}
  ],
  "findings": {"confirmed": 1, "unresolved": 1, "advisory": 1},
  "grounding": [{"id": "verify:pytest", "outcome": "failed", "trust": "repository"}]
}

Start

Inside Claude Code

/plugin marketplace add OnourImpram/autofusion
/plugin install autofusion@autofusion

/autofusion:fusion diff --preset balanced
/autofusion:fusion plan --topology adversarial-review --reviewers astra-ultra,claude-opus
/autofusion:fusion release --pack release --preset adaptive

The plugin is skill-first. Installing it grants no credentials and no live route; a fusion succeeds only when the helper CLI and your configured transports pass autofusion doctor. When the helper is missing, the skills say the run is manual and claim nothing about transports, grounding or receipts.

The helper, from a checkout

git clone https://github.com/OnourImpram/autofusion.git
cd autofusion
python -m pip install -e ".[dev]"
autofusion doctor
autofusion config-validate --config .fusion.example.json

Or install the versioned wheel from the GitHub release page after checking its published SHA-256.

Configure

Start from .fusion.example.json. Declare the verification commands you trust as argv arrays; those are the only commands grounding may run. Repository and invocation layers can lower a cost cap or strengthen redaction, and cannot do the reverse.

Limits, stated plainly

  • This is an alpha runtime. Assurance is limited to the tested invariants above and in SECURITY.md. No cryptographic authenticity of provider identity, subscription entitlement or bills is claimed.
  • Shared quotas. Sol, Astra and Terra share one OpenAI quota group. Switching between them does not escape exhaustion, and a run that loses a required reviewer to quota records degraded state rather than fused success.
  • Two transports ship disabled. The Antigravity and ACP lanes are implemented and tested, but their live smokes on 8 September 2026 did not return attested identity. Enabling them locally requires your own dated smoke.
  • Context fit is a conservative byte bound. Opaque session history, later tool exploration and hidden workers are not measured; the architecture notes say exactly what is counted.
  • The main claim is unmeasured. Whether cross-model review beats same-model self-review on real decisions has not been measured here. Treat any such claim, from this project or another, as a hypothesis until a comparative evaluation with held-out graders exists.