study-swarm no model grades its own homework.
A protocol for grounding substantial design decisions in cited research — then verifying every citation with a different model family, reasoning-stripped, before any of it informs the design.
Dispatch
one research agent per question — cited findings only
Verify
roleos verify-citations <dispatch>
Halt
fabricated → drop · verifier down → escalate
Why it works
Documented failure modes, each closed by evidence — not intuition.
Family-different verification
A different model family checks every citation, reasoning-stripped. Same-family judges self-prefer (Panickssery 2024); the external verifier carries the gains (Huang 2023, Kambhampati 2024).
Retrieval-oracle existence floor
Existence is confirmed by resolving the arXiv/DOI — never model memory. 18–55% of LLM citations are fabricated (Walters & Wilder 2023); links resolve but the content often does not support the claim (Onweller 2026).
Halt, don’t hope
Fabricated → dropped. Misattributed → corrected once. Verifier or oracle unavailable → halt and escalate. An unverified citation never reaches the design.
Diversity beats count
≥3 decorrelated lenses — a retrieval oracle plus ≥2 different families. LLM errors correlate, so lens diversity is the load-bearing variable (Rajan 2025, Kim 2025).
The protocol
Five steps
1. Identify 3–5 load-bearing questions
2. Dispatch one research agent per question
3. Synthesize into a "Research grounding" section
4. Verify externally (different family, reasoning-stripped)
5. Connect each choice back to a finding Verify the citations
# different family, reasoning-stripped,
# retrieval-oracle existence floor
roleos verify-citations
# → prism verify --type citations Pin + roll back
# pin a verified dispatch for byte-replay
study-swarm lock d.dispatch.md --from d.orchestration.json
# a citation was retracted? roll it back across every dependent
study-swarm withdraw arXiv:2402.15089 --reason retracted --from dispatches/
study-swarm requalify --check dispatches/ # halts until resolved The CLI
A thin, zero-dependency command line over the protocol — deterministic, CI-safe, no model or network calls.
| Command | What it does |
|---|---|
| study-swarm lint [--strict] | Check a dispatch’s sourcing — author + year + a resolvable arXiv/DOI/URL/RFC. --strict also flags orphan citations. Gates CI. |
| study-swarm lock / lock --verify | Pin a dispatch for replay — resolved model + byte-exact prompt + tool-schema hashes + the verifier receipt; --verify fails closed on any drift. |
| study-swarm withdraw | Canon-rollback: flag every dispatch citing a withdrawn finding (a tombstone sidecar — flag, never delete) with a content-addressed receipt. |
| study-swarm requalify --check / --status | Halt the dependents of an unresolved withdrawn finding (--check, the andon), or read a corpus’s evidence health (--status). |