Selected work

Give an answer more than one kind of review

Verification across model providers: an application that separates answers, peer critique, claim checking, and synthesis, with a record of each stage.

Checking claims separately from reviewing answers

A convincing answer can contain a mistake even when its conclusion is right. Asking another model to rate the whole answer may leave that mistake untouched. I wanted an application where reviewing an answer and checking its individual claims are separate jobs.

I built The Council with the team (the AI coding agents I direct): a React interface, an API that coordinates model responses and peer critique, and a separate claim-checking service. The public implementation connects multiple providers and exports the intermediate outputs alongside the synthesis.

My contribution is the application and workflow connecting these stages. The language models and provider SDKs supply the underlying model capabilities. The research question is when the additional checking earns its cost.

Four stages you can inspect

  1. Generate answers

    Providers answer the same question. Their responses remain visible separately.

  2. Compare and critique

    Peer review surfaces disagreements and evaluates the answers. Its ratings are model judgments, not correctness measurements.

  3. Check individual claims

    The verifier breaks answers into claims and routes them for checking. With multiple providers configured, it selects a provider other than the claim’s author.

  4. Synthesize with the checks available

    The final stage combines the material. A JSON record preserves answers, critiques, claim verdicts, and the synthesis for inspection.

A useful design decision sits inside claim checking: a calculation needs re-derivation, while a factual claim may need supporting evidence. The claim-routing helper distinguishes those categories. The current verifier falls back to the author when only one provider is configured; the cross-provider design requires multiple configured providers.

A recorded run makes the distinction concrete

The public June 30, 2026 capture asks which has more total energy: a photon or a free electron, each with a wavelength of 1.0 nm. The run is labeled live, with web search off. Here is how one answer moved through the four stages in the recording.

A correct conclusion, with an incorrect intermediate claim

Recorded four-stage trajectory on the 1.0 nm photon vs. free electron question (commit af8643c) Stage 1 Candidate Answer substitutes photon energy 1.24 keV for electron kinetic energy; Stage 2 Peer Critique rates the answer highly without flagging the error; Stage 3 Claim Checker isolates claim gpt-7 and re-derives p^2/(2m_e) approx 1.5 eV; Stage 4 Final Synthesis retains the corrected 1.5 eV value. 1. CANDIDATE Right conclusion Uses photon formula hc/lambda = 1.24 keV for electron KE. 2. PEER CRITIQUE Whole-answer pass Rates answer highly; misses the 1.24 keV formula substitution. 3. CLAIM CHECKER Refutes claim gpt-7 Re-derives non-rel. p^2/(2m_e) = 1.5 eV for 1.0 nm electron. 4. SYNTHESIS Corrected output Keeps 1.5 eV KE and electron total-energy commit af8643c

1. Candidate Answer

Original claim: refuted (gpt-7): concludes electron has higher total energy, but states electron kinetic energy as 1.24 keV (hc/λ, the photon's energy). Three other Round 1 answers (claude-8, grok-6, gemini-4) already had ~1.5 eV.

2. Peer Critique

Gives the gpt candidate high ratings (95, 98, 92) without checking the kinetic-energy formula or flagging the 1.24 keV substitution.

3. Claim Checker

Refutes claim gpt-7 via a cross-provider model reasoning prompt (not an executed numerical script) and re-derives non-relativistic electron kinetic energy p²/(2mₑ) ≈ 1.5 eV.

4. Final Synthesis

Current supported value: retains ~1.5 eV (1.504121 eV in the CODATA 2022 cross-check) while the overall total-energy ratio (~412x, ~511 keV vs. ~1.24 keV) remains unchanged after revalidation.

Four-stage trajectory from commit af8643c on the 1.0 nm photon vs. free electron question.

Limits: the overall total-energy conclusion did not change; three of four initial answers already contained ~1.5 eV; the recorded Stage 3 verifier used model reasoning in text rather than an executed numerical test; the offline synthetic fixture (npm run demo:fixture) is distinct from this recorded provider run; and this single trajectory does not establish that verification caused an accuracy improvement.

Try the sample without an API key

The repository includes a deterministic offline replay: npm run demo:fixture. It exercises the pipeline without provider keys or network calls and writes JSON and Markdown reports. It runs every stage on fixture data, so you can read each stage's output.

The live quickstart runs the interface and services with your own provider keys. The recorded live output is a separate artifact, so a visitor can inspect what happened in an actual run without initiating a new one.

When does another review earn its place?

I want to compare a single answer, peer critique, and claim-level checking on the same questions while recording correctness, latency, and cost. The application provides the stages and records for that investigation. A broader comparison would show when the additional work is useful.

That comparison is an open question in the agent security research here, where a single model grading its own output is one of the tracked failure modes.

Discuss the project. You can also email jon@simoneresearch.com.

Explore the work

I designed The Council and decided what to keep; the team wrote and tested the code. The public repository contains the implementation, setup instructions, and sample outputs.

File details on this page

Format, size and a short SHA-256 identifier, measured when this page was built.