Skip to content
v1.1.0 · scientific reasoning engine

Scientific reasoning for
trustworthy ML research.

Most trackers show you numbers. experiment-audit checks whether your claim about those numbers actually holds — missing evidence, contradictions, and confidence that isn't assumed.

Python 3.11+MIT LicenseBuilt with FastMCP274 tests passing
reasoning · zsh

Claim to report, in one pass

Claim“95% accuracy on CIFAR-10”

How it reasons

Six rules. One trace from claim to verdict.

No dashboard, no vibes — every stage in the pipeline hands the next one exactly what it found, so the final report can point back to the evidence behind it.

01

Claims

A statement about a result — “model-x reaches 95% accuracy on CIFAR-10.” Scoped to a subject, category, and dataset.

02

Evidence

Metrics, configs, logs, and prior runs — whatever's meant to back the claim up, traced to its source.

03

Reasoning

Six rules run in sequence: missing evidence, scope match, contradiction, confidence, judgment, recommendation.

04

Contradictions

Cross-checked against every other claim and evidence item on file — silent conflicts don't stay silent.

05

Confidence

A computed score from evidence quality, quantity, and what's missing — never an assumed number.

06

Scientific report

A structured verdict — supported, partially supported, or unsupported — with the reasoning shown, not just stated.

See it reason

One claim. Watch the verdict get built.

This is the actual six-rule pipeline, condensed to one example — a claim that looks fine until it's checked against a run already on file.

Claim

run mamfac-2201 — same dataset, same protocol
run mamfac-2198 — baseline comparison run
scope check — hardware and eval split match

Reasoning engine

Contradiction check
Confidence
0.00

Waiting on evidence and contradiction checks.

Capabilities

Everything a claim needs to earn its confidence.

Five capabilities in the reasoning engine itself, five ways to reach it — from a Python import to an agent calling it over MCP.

Scientific reasoning

A six-rule pipeline that runs claims against evidence end-to-end, or rule-by-rule when you need to inspect one step.

core

Claim verification

Checks whether a claim has any supporting evidence trace at all — no assumption gets a free pass.

core

Contradiction detection

Flags conflicts across claims and evidence before they make it into a paper or a PR description.

core

Confidence scoring

Driven by evidence quality and quantity, not a fixed heuristic dressed up as a number.

core

Scientific reports

Markdown, JSON, or plain text — every finding traces back to the evidence that produced it.

core

Python API

experiment_audit.reasoning embeds directly in your own tooling, notebooks, or CI checks.

interface

CLI

experiment-audit reasoning run and schema — pipe claims in, get a report out.

interface

Claude Code skill

The reasoning discipline itself, installable as a skill — triggers automatically on review-style prompts.

interface

MCP integration

Eight audit tools exposed over MCP, available to any agent that speaks the protocol.

interface

Weights & Biases

Read-only run, sweep, and metric access behind the MCP tools — no write path, ever.

interface
Claude Code

The reasoning discipline, installed as a skill.

How to phrase findings, weigh contradictory evidence, and write structured reviewer-style feedback — shipped as a Claude Code skill, with all eight MCP audit tools available the moment WANDB_API_KEY is set.

Claude Code compatible

Your prompt

“Is this ablation confounded?”

Claude

calls the skill

experiment-audit

checks the claim

Report back

verdict + confidence

Install the skill

claude code
Is this ablation confounded?Why did my loss crash?Review this paper's results claim.Compare these ablation studies.

Or wire the MCP server directly

mcp · wandb
test_connectionvalidate credentials first
list_runslightweight per-project summary
get_run_summaryfull config + summary metrics
get_metric_historyfull logged history, NaNs preserved
compare_runspure deterministic diff, no verdict
audit_training_curveNaNs, level shifts, stalls, oscillation
audit_ablationverdict: clean / confounded / uncertain
audit_sweephyperparameter importance ranking
Works with
Claude CodeCursorPython 3.11+FastMCP
Under the hood

Two independent layers, one repository.

The reasoning engine takes claims and evidence directly — no dependency on W&B, FastMCP, or any backend. The MCP layer feeds it real run data. They can be used separately or together.

reasoning/

the scientific reasoning engine

claims.py
evidence.py
contradictions.py
scientific_rules/
pipeline.py
scientific_report.py
server.py + analysis/

MCP layer over Weights & Biases

server.py — 8 tools
comparison.py
divergence.py
confound.py
sensitivity.py
backends/

swappable data access

base.py — ExperimentBackend ABC
wandb_backend.py
fake_backend.py — test double
cli.py

reasoning run · reasoning schema

stdin/file claims → report
markdown · json · text output

reasoning/ has zero network calls, ever — server.py and backends/ talk to Weights & Biases through a read-only key, validated fail-fast on server start.

0
tests passing
pytest tests/ -q
0
reasoning rules
missing evidence → recommendation
0
MCP audit tools
exposed over FastMCP
0
network calls
the reasoning engine itself
Who it's for

Built for the moment before you write the claim down.

ML engineers

sanity-check a result before it ships in a report or a PR description

AI researchers

catch confounded ablations and out-of-scope comparisons before submission

Graduate students

get reviewer-style feedback on a results section before your advisor does

Research labs

a shared, deterministic check for scientific claims across a team's experiments

Check the claim before it ships.

One pip install stands between your results and a reviewer-grade second opinion.