From paper-trail
Final authority on the truthfulness of references cited in State-of-the-Art reviews and academic papers. Activate this skill whenever the session involves auditing, correcting, or cleaning citations in a SOTA or article, or when responding to verdicts from `pdf-cascade` / `registry-doctor`. Triggers (FR + EN) : "audit SOTA", "corriger SOTA", "vérifier hallucinations", "purger refs", "déclarer une ref véridique ou hallucinée", "audit references", "verify citations", "purge hallucinations", "/paper-trail:audit-sota". Does NOT download (that's pdf-cascade) and does NOT write (that's sota-writer / paper-writer). Decides VRAI vs HALLUCINATION and applies consequences (correct attribution, transition to sota_cited_confirmed, or retract + purge from SOTA). Binary decision, no grey zone.
How this skill is triggered — by the user, by Claude, or both
Slash command
/paper-trail:sota-auditorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Citation hallucinations in academic publications (fabricated quotes,
Citation hallucinations in academic publications (fabricated quotes, inverted attributions, misidentified authors) are the failure mode this plugin exists to prevent. The plugin's mechanical guards (FSM, page 1 validation, cascade) reduce the surface area, but semantic decisions remain human-driven : « does this ref really exist ? Is this claim really in this paper ? Is this the right author ? »
sota-auditor is the role that makes those decisions. It is the
final authority on the truthfulness of references cited in SOTAs /
articles. It can :
page1_validated → sota_cited_confirmed)* → retracted with reason)pdf-cascade if a homonymy was
missedFor each problematic reference, the decision is binary :
sota_cited_confirmed once the specific claim has been validatedretracted with mandatory
WebSearch documenting the absence (≥ 2 independent sources
confirming inexistence or error), then purge the citation from
the SOTA(s) where it appearsNo grey zone. No "roughly correct that we can rephrase". No "keep it just in case". An unverifiable citation is a research debt that eventually explodes.
pipeline doctor reports invariant violations on cited refspdf-cascade returned blocked_human:title_mismatch or
blocked_human:cascade_exhausted on important refspipeline events --to retracted lists newly retracted refs/paper-trail:audit-sota command is invokedThe auditor has authority over these FSM transitions. Other transitions
are reserved for pdf-cascade (technical) or sota-writer (creation).
| Transition | Conditions |
|---|---|
page1_validated → sota_cited_confirmed | Section read, verb verified, verbatim quotes if present, verdict ∈ {CONFIRMED, NUANCED}, textual evidence cited |
* → retracted | WebSearch mandatory (≥ 2 independent sources confirming absence/error), retracted_reason ∈ {hallucination, homonymy_purged, off_topic, duplicate}, purge from ALL SOTAs (verifiable by absence in markdown files) |
Rollback of a pdf-cascade technical transition | If an invariant is violated downstream (late homonymy discovery, false attribution found, off-domain missed) |
The auditor never triggers ∅ → candidate (writer's job) nor the
technical transitions candidate → uid_resolved → pdf_acquired → page1_validated (pdf-cascade's job, invokable as sub-task).
Sources of « refs to audit » in the paper-trail workflow :
pipeline doctor invariants — violations on cited refs (especially
I11 cited_in orphans, I12 reciprocity broken, I14 transition from
terminal)pipeline events --to retracted or --to page1_validated — refs
that have moved recently and need attentionpdf-cascade blocked outputs — refs in blocked_human:title_mismatch
or blocked_human:cascade_exhausted/paper-trail:audit-sota <path> command outputpipeline doctor --correlate-rtfm — RTFM signals that an
acquired PDF has format/OCR issuesApply in order — don't skip steps.
grep -n or Read to find the exact line(s) where the ref is cited.
A ref is often cited multiple times — check each occurrence.
If the "ref" is cited nowhere in the actual SOTA (extraction false positive), it's a strong signal it was never a real citation.
Read the complete sentence(s) citing the ref. What does the SOTA claim about this reference ? What argument depends on it ? What's the nuance (verb used, type of argument) ?
This reading is crucial : context tells you whether a candidate matches or not, and how to cleanly rephrase if needed.
Choices depending on the case :
pdf-cascade (title-fallback returned
N matches) : compare each candidate's title to the SOTA context.
Pick the one matching the sentence meaning. If none matches → step 4
without candidate.pdf-cascade : read the top match's title. If
semantic overlap with context is strong → confirm. Otherwise → step 4.For verifications, use the paper-search MCP rather than inferring
from internal knowledge — the citation-receipts skill details that
protocol.
One of two outcomes :
VRAI : the ref exists, the SOTA can rely on it.
.md file). Keep the claim, fix the names/yearsota_cited_confirmed
via pipeline run --ref <slug> (with appropriate FSM
acknowledgment), or directly edit the frontmatter and run pipeline doctor to verifyHALLUCINATION : the ref doesn't exist (nothing found after serious searches) or isn't attributable to an identifiable author.
Edit the .md). Do not
rephrase, soften, or "[citation needed]" — remove the citation and
reword the sentence so it stands without it. If the entire sentence
depends on this ref, delete the entire sentence.state: retracted +
retracted_reason: hallucination (or homonymy_purged, duplicate,
off_topic, extraction_artifact_*)After any state change :
python -m pipeline doctor --severity warn
# Should report 0 violations on the touched refs
# I11/I12 reciprocity should be coherent
python -m pipeline events --since YYYY-MM-DD --ref <slug>
# Audit trail of the state change
If pipeline doctor reports a downstream violation (e.g., I12 SOTA still
cites a now-retracted ref), the audit is not complete : fix the SOTA
markdown until the doctor is clean.
/paper-trail:audit-sota --purge automationIf invoked with --purge, the auditor :
sota_cited_confirmed or page1_validated → KEEPretracted → AUTO-REMOVE the citation from the SOTA
blocked_human:cascade_exhausted → KEEP (the ref is
real but inaccessible, leave the citation but flag as INACCESSIBLE
in audit report)candidate / uid_resolved / etc. → KEEP + flag as
UNCONFIRMED in audit report--purge, applies the AUTO-REMOVE actions in a .bak copy firstpdf-cascade's job)blocked_human:pending_decision
and move on| Skill | Relationship |
|---|---|
citation-receipts | Complementary (downstream). Once a ref is declared VRAI, citation-receipts validates each individual citation (verbatim quote check, verb check, attribution check) |
sota-writer | Upstream. The writer creates new SOTAs ; the auditor audits what was written |
paper-writer | Upstream. Same for papers. Before submission, run a complete sota-auditor audit on the paper's bibliography |
pdf-cascade | Sub-task. If the auditor decides a ref is VRAI but not yet acquired, invokes pdf-cascade to download |
registry-doctor | Audit support. The auditor consults pipeline doctor to identify violations and confirms fixes by re-running doctor |
Before a paper is submitted, run a complete sota-auditor pass on all
source SOTAs of the paper :
pipeline doctor --severity error returns 0 violations on cited
refssota_cited_confirmedpipeline events --since <session_start> shows no surprising
transitionblocked_human:title_mismatch on refs cited
by the paperIf any of these conditions isn't met → the paper is not ready for submission.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub roomi-fields/paper-trail