/referee-panel — pre-submission mechanical auditor panel
A multi-agent finding-level red-team of a paper build. Each of ~12 lenses
audits ONE failure mode, returns structured findings under a shared
cannot_verify-or-cite contract, every finding is then adversarially
verified (a skeptic tries to refute it), and an editor dedups, ranks, and
writes a memo. Pattern borrowed from github.com/Ingar30/reviewer.
This is the mechanical-failure-mode axis of review. It complements, and does
not replace:
- community-persona referee reports (
docs/reference/referee_reports/R*.md) —
the "which reviewer community reacts, and how" axis;
/findings-audit — stress-tests headline findings against external
evidence;
/style-review — prose.
Output is AI-generated: triage before acting. The memo's "Cannot verify"
section names what artifact would settle each open question.
Arguments
/referee-panel — infer the project from cwd; audit its primary maintained
build (see "Resolving the build" below). Confirm the build with the user if
ambiguous.
/referee-panel <build> — audit a specific build, e.g.
/referee-panel paper/oe.tex or /referee-panel projects/deterrence paper/science.tex.
/referee-panel --lenses id,claim-evidence,numerical,power-multiple-testing —
run only a subset of lenses (keys below). Default runs all 12.
What this skill does (the flow)
- Resolve the build and its sources. Identify the driver
.tex under review
and the fragments it \inputs, IN READING ORDER. A build's paper.tex-style
driver often assembles from shared/*.tex; open the driver and follow every
\input. Include the numerical-claim ledger (numbers.json) if the project
keeps one. Do not audit an archived/unmaintained build — check the
project CLAUDE.md for which build is maintained (e.g. deterrence marks
paper/paper.tex archived; the OE submission is paper/oe.tex).
- Write the one-liner. Distill the paper's thesis to one sentence (read the
abstract + intro). This orients every auditor; a vague one-liner yields vague
findings.
- Run the panel via the bundled Workflow script (next section).
- Persist the output. When the workflow completes, extract
memo and
confirmed from the result and write:
docs/reference/referee_reports/<build>_audit_panel.md — the memo, with a
provenance header (target build, method, raw/refuted/confirmed counts, date,
an "AI-generated, triage before acting" note).
docs/reference/referee_reports/<build>_audit_panel_findings.json — the
structured confirmed findings (traceability: per-finding location,
verdict, verify_reason, suggested_fix).
- Report to the user: counts (raw -> refuted -> confirmed), the blocking /
major issues, and where lenses converged (convergence = signal). Offer to
commit. Do not commit unprompted.
Running the workflow
The generalized, args-driven script lives at
reference/panel_workflow.js (relative to this skill). Invoke it with the
Workflow tool, passing real JSON as args (never a stringified blob):
Workflow({
scriptPath: "<abs path to this skill>/reference/panel_workflow.js",
args: {
project: "deterrence",
target: "paper/oe.tex",
dir: "/workspace/projects/deterrence/paper",
sources: ["oe.tex", "shared/intro_oe.tex", "shared/framework.tex",
"shared/methods.tex", "shared/results.tex", "shared/discussion.tex",
"shared/si.tex"],
numbers: "numbers.json",
one_liner: "Accuracy-equivalent ML vs LLM predictors have opposite incentive properties: classifiers key on defendant type (destroying deterrence), LLMs key on case evidence (preserving it).",
lenses: null
}
})
dir is ABSOLUTE; sources and numbers are relative to it, in reading order.
numbers: pass the ledger filename, or null if the project has none.
lenses: null runs all 12; or pass an array of keys to run a subset.
- The workflow runs in the background and returns
{ counts, confirmed, memo }
via a task notification. The script has no filesystem access — step 4
(persisting to the repo) is done by you, the caller, after it completes.
To iterate on the panel itself (add a lens, retune a focus), edit
reference/panel_workflow.js and re-invoke; use resumeFromRunId to replay
unchanged agents from cache.
Lens keys
identification, claim-evidence, numerical, model-equation,
theory-logic, robustness, sample-construction, abstract-conclusion,
literature, external-validity, measurement-validity,
power-multiple-testing.
measurement-validity covers ML/LLM-derived measures (rater independence, prompt
sensitivity, contamination, reproducibility) — keep it in for any paper whose
evidence is model-generated. power-multiple-testing carries the
informative-null discipline (a tight null is a finding; a wide one dressed as
"no effect" is not) and checks for asymmetric inference across the arms of a
central contrast.
Cost & scale
A full 12-lens run is 25 agents (12 audit + up to 12 verify + 1 editor),
roughly 30-40 min and ~1.5-2M subagent tokens at medium size. Subset with
--lenses for a cheaper focused pass. This exceeds the default medium
workflow-size guideline (15 agents) by design — a full panel is the point;
say so to the user if they expect a small run.
Notes
- Findings cite
file:line; verify them against the current build before acting
(line numbers drift as the draft changes).
- Convergence across independent lenses is the strongest signal — the editor is
told to elevate a multi-lens finding toward blocking.
- Re-run after major revisions; use
--lenses to re-check only the lenses whose
findings you addressed.
1---2name: referee-panel3description: Run a finding-level mechanical auditor panel over a project's paper build: ~12 single-failure-mode lenses (identification, claim-evidence, numerical, model-equation, theory-logic, robustness, sample-construction, abstract-conclusion, literature, external-validity, measurement-validity, power/multiple-testing), each emitting structured findings under a cannot_verify-or-cite contract, then an adversarial verify pass, then an editor memo. Use for a pre-submission red-team of a paper, complementary to /findings-audit (evidence) and the community-persona referee reports.4---56# /referee-panel — pre-submission mechanical auditor panel78A multi-agent **finding-level** red-team of a paper build. Each of ~12 lenses9audits ONE failure mode, returns structured findings under a shared10`cannot_verify`-or-cite contract, every finding is then **adversarially11verified** (a skeptic tries to refute it), and an editor **dedups, ranks, and12writes a memo**. Pattern borrowed from `github.com/Ingar30/reviewer`.1314This is the **mechanical-failure-mode** axis of review. It complements, and does15not replace:16- **community-persona referee reports** (`docs/reference/referee_reports/R*.md`) —17 the "which reviewer community reacts, and how" axis;18- **`/findings-audit`** — stress-tests headline findings against *external*19 evidence;20- **`/style-review`** — prose.2122Output is AI-generated: **triage before acting**. The memo's "Cannot verify"23section names what artifact would settle each open question.2425## Arguments2627- `/referee-panel` — infer the project from cwd; audit its primary maintained28 build (see "Resolving the build" below). Confirm the build with the user if29 ambiguous.30- `/referee-panel <build>` — audit a specific build, e.g.31 `/referee-panel paper/oe.tex` or `/referee-panel projects/deterrence paper/science.tex`.32- `/referee-panel --lenses id,claim-evidence,numerical,power-multiple-testing` —33 run only a subset of lenses (keys below). Default runs all 12.3435## What this skill does (the flow)36371. **Resolve the build and its sources.** Identify the driver `.tex` under review38 and the fragments it `\input`s, IN READING ORDER. A build's `paper.tex`-style39 driver often assembles from `shared/*.tex`; open the driver and follow every40 `\input`. Include the numerical-claim ledger (`numbers.json`) if the project41 keeps one. **Do not audit an archived/unmaintained build** — check the42 project `CLAUDE.md` for which build is maintained (e.g. deterrence marks43 `paper/paper.tex` archived; the OE submission is `paper/oe.tex`).442. **Write the one-liner.** Distill the paper's thesis to one sentence (read the45 abstract + intro). This orients every auditor; a vague one-liner yields vague46 findings.473. **Run the panel** via the bundled Workflow script (next section).484. **Persist the output.** When the workflow completes, extract `memo` and49 `confirmed` from the result and write:50 - `docs/reference/referee_reports/<build>_audit_panel.md` — the memo, with a51 provenance header (target build, method, raw/refuted/confirmed counts, date,52 an "AI-generated, triage before acting" note).53 - `docs/reference/referee_reports/<build>_audit_panel_findings.json` — the54 structured `confirmed` findings (traceability: per-finding location,55 verdict, verify_reason, suggested_fix).565. **Report to the user**: counts (raw -> refuted -> confirmed), the blocking /57 major issues, and where lenses converged (convergence = signal). Offer to58 commit. Do not commit unprompted.5960## Running the workflow6162The generalized, args-driven script lives at63`reference/panel_workflow.js` (relative to this skill). Invoke it with the64`Workflow` tool, passing **real JSON** as `args` (never a stringified blob):6566```67Workflow({68 scriptPath: "<abs path to this skill>/reference/panel_workflow.js",69 args: {70 project: "deterrence",71 target: "paper/oe.tex",72 dir: "/workspace/projects/deterrence/paper",73 sources: ["oe.tex", "shared/intro_oe.tex", "shared/framework.tex",74 "shared/methods.tex", "shared/results.tex", "shared/discussion.tex",75 "shared/si.tex"],76 numbers: "numbers.json",77 one_liner: "Accuracy-equivalent ML vs LLM predictors have opposite incentive properties: classifiers key on defendant type (destroying deterrence), LLMs key on case evidence (preserving it).",78 lenses: null79 }80})81```8283- `dir` is ABSOLUTE; `sources` and `numbers` are relative to it, in reading order.84- `numbers`: pass the ledger filename, or `null` if the project has none.85- `lenses`: `null` runs all 12; or pass an array of keys to run a subset.86- The workflow runs in the background and returns `{ counts, confirmed, memo }`87 via a task notification. The script has **no filesystem access** — step 488 (persisting to the repo) is done by you, the caller, after it completes.8990To iterate on the panel itself (add a lens, retune a focus), edit91`reference/panel_workflow.js` and re-invoke; use `resumeFromRunId` to replay92unchanged agents from cache.9394## Lens keys9596`identification`, `claim-evidence`, `numerical`, `model-equation`,97`theory-logic`, `robustness`, `sample-construction`, `abstract-conclusion`,98`literature`, `external-validity`, `measurement-validity`,99`power-multiple-testing`.100101`measurement-validity` covers ML/LLM-derived measures (rater independence, prompt102sensitivity, contamination, reproducibility) — keep it in for any paper whose103evidence is model-generated. `power-multiple-testing` carries the104informative-null discipline (a tight null is a finding; a wide one dressed as105"no effect" is not) and checks for **asymmetric inference** across the arms of a106central contrast.107108## Cost & scale109110A full 12-lens run is ~25 agents (12 audit + up to 12 verify + 1 editor),111roughly 30-40 min and ~1.5-2M subagent tokens at medium size. Subset with112`--lenses` for a cheaper focused pass. This exceeds the default medium113workflow-size guideline (~15 agents) by design — a full panel is the point;114say so to the user if they expect a small run.115116## Notes117118- Findings cite `file:line`; verify them against the current build before acting119 (line numbers drift as the draft changes).120- Convergence across independent lenses is the strongest signal — the editor is121 told to elevate a multi-lens finding toward blocking.122- Re-run after major revisions; use `--lenses` to re-check only the lenses whose123 findings you addressed.