Not in the top 1,000 by GitHub stars
wanshuiyin/Anti-Autoresearch
Don't trust an autoresearch paper at face value. Reviewer-side integrity forensics (self-consistency + fabrication), deterministic verdict. 61 signals: 46 integrity hack-patterns (families A–H, verdict-bearing) + 13 zero-weight AI writing-style impressions (AIS) + 2 advisory. Not an opaque AI-text classifier. The dual of ARIS.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/adversarial-case-builder/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
45135aa38cbc → 014a1e7cd63f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 45135aa38cbc
No earlier version was observed for comparison.
skills/ai-style-impressions/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
45135aa38cbc → 014a1e7cd63f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 45135aa38cbc
No earlier version was observed for comparison.
skills/baseline-comparison-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
45135aa38cbc → 014a1e7cd63f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 45135aa38cbc
No earlier version was observed for comparison.
skills/citation-forensics/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
45135aa38cbc → 014a1e7cd63f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 45135aa38cbc
No earlier version was observed for comparison.
skills/consistency-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
45135aa38cbc → 014a1e7cd63f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 45135aa38cbc
No earlier version was observed for comparison.
skills/eval-design-forensics/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
45135aa38cbc → 014a1e7cd63f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 45135aa38cbc
No earlier version was observed for comparison.
skills/evidence-ledger/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
45135aa38cbc → 014a1e7cd63f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 45135aa38cbc
No earlier version was observed for comparison.
skills/experiment-forensics/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
45135aa38cbc → 014a1e7cd63f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 45135aa38cbc
No earlier version was observed for comparison.
skills/novelty-duplication-advisory/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
45135aa38cbc → 014a1e7cd63f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 45135aa38cbc
No earlier version was observed for comparison.
skills/presentation-signals/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
45135aa38cbc → 014a1e7cd63f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 45135aa38cbc
No earlier version was observed for comparison.
skills/proof-derivation-forensics/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
45135aa38cbc → 014a1e7cd63f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 45135aa38cbc
No earlier version was observed for comparison.
workflows/anti-autoresearch/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
45135aa38cbc → 014a1e7cd63f
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 45135aa38cbc
No earlier version was observed for comparison.
Heat
4.7- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- adversarial-case-builder
skills/adversarial-case-builder - ai-style-impressions
skills/ai-style-impressions - baseline-comparison-audit
skills/baseline-comparison-audit - citation-forensics
skills/citation-forensics - consistency-audit
skills/consistency-audit - eval-design-forensics
skills/eval-design-forensics - evidence-ledger
skills/evidence-ledger - experiment-forensics
skills/experiment-forensics - novelty-duplication-advisory
skills/novelty-duplication-advisory - presentation-signals
skills/presentation-signals - proof-derivation-forensics
skills/proof-derivation-forensics - anti-autoresearch
workflows/anti-autoresearch
How it works
adversarial-case-builder
When your agent uses it
Synthesize the single strongest EVIDENCE-BOUND reviewer case to reject a paper, built ONLY from the evidence ledger (claims.json) + the other auditors' confirmed findings — never free-floating LLM critique. Two fresh cross-model codex threads: an attack writes the ~200-word rejection paragraph (every accusation tagged to an existing claim_id/finding_id), a defense decomposes it and rules each point against the anchored evidence. MEMO-ONLY: emits adversarial-case-builder.memo.md (fed to the adjudicator via --memo) and carries NO verdict weight — tools/adjudicate_findings.py lists it in ZERO_WEIGHT_SKILLS and caps it at info. Honest-null allowed (the paper may survive). Run LAST. Detect-only. Adapted from ARIS kill-argument. Triggers: "adversarial case", "strongest objection", "rejection memo", "kill argument", "最强拒稿点".
What it loads into context
Frontmatter
228 tokensAlways available to the agent
SKILL.md
11,691 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this exists
- Core principle
- How this differs from the other auditors (route correctly)
- How this differs from ARIS `kill-argument` (the parent)
- Constants & Reviewer Calling Convention
- Step 0 — Preconditions: locate the ledger + the upstream findings, read the level
- Step 1 — Attack (Thread 1, fresh codex, evidence-bound ~200 words)
- Step 2 — Defense (Thread 2, fresh codex, decompose + classify)
- Step 3 — Validate + anchor, then render the memo (the anti-slop gate)
- Step 4 — Trace (forensic; never silently dropped)
- Step 5 — Hand off, or adjudicate standalone
- Output contract
- Key rules
- When NOT to use this skill
- Review tracing
Scripts executed separately
../../tools/adjudicate_findings.py
Files
SKILL.mdcore45,832 bytesSKILL.mdcore45,832 bytesSKILL.mdcore45,832 bytesSKILL.mdcore45,832 bytesSKILL.mdcore45,832 bytesSKILL.mdcore45,832 bytesSKILL.mdcore45,832 bytes../../tools/adjudicate_findings.pyruns46,536 bytes
Read SKILL.md
# Adversarial Case Builder — the strongest *evidence-bound* objection
Build the single strongest evidence-bound case to reject **$ARGUMENTS**, then defend
it point-by-point. Emit `adversarial-case-builder.memo.md`. Run **LAST**, AFTER
`/evidence-ledger` (so `claims.json` exists) and AFTER the auditor skills (so the
merged `*.findings.json` exist).
> 🔒 **Do not wrap this skill in `/loop`, `/schedule`, or `CronCreate`.** It runs
> LAST and synthesizes the ledger + the other auditors' findings into one memo. Even
> though it is **memo-only** (the adjudicator caps it at `info`, so it adds no verdict
> weight), the no-new-signal cadence rule still applies: its output changes only when
> the **ledger / the findings / the paper** change, never with the wall clock.
> Schedule the *work that precedes it* — ledger + auditors done → run this **once**.
> (Mirrors ARIS's external-cadence doctrine.)View the complete source on GitHubai-style-impressions
When your agent uses it
Transparent, itemized impressions of AI-generated WRITING STYLE — the repo's ONLY non-integrity track. Two passes: a deterministic defensive-hedge density screen (tools/check_ai_style.py, AIS-DEFENSIVE-HEDGE) plus a fresh cross-model GROSS-cases-only semantic pass over the 13 AIS-* style tells (broken narrative arc, LLM phrase tics, jargon-stuffing, invented codenames, clause/formula walls, gratuitous pseudocode, bullet overuse, bold-module spam, restatement loops, focus drift, single-style figures, appendix dumping). Every finding is named, LOCATED, span-anchored to the evidence ledger (claims.json), carries not_integrity_finding:true + false_positive_risk:high + an fp_case, and gets ZERO verdict weight: the adjudicator forces it to info, excludes it from overall_verdict, and renders it in a SEPARATE report section. NOT an AI-text classifier — no scores, no "this is AI-written", no authorship probability; a paper can be CLEAN_GIVEN_EVIDENCE and still list many. Emits ai-style-impressions.findings.json; computes NO verdict; if a tell is actually substantive it routes to the integrity auditor. Triggers: "AI style", "vibe check", "writing fingerprint", "AI 文风", "vibe paper".
What it loads into context
Frontmatter
319 tokensAlways available to the agent
SKILL.md
13,319 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this exists
- Core doctrine (the non-negotiables)
- How this differs from the other auditors (route correctly)
- What this skill REFUSES to emit (even as an impression)
- Constants & Reviewer Calling Convention
- Step 0 — Preconditions: locate the ledger, read the level, find the PDF
- Step 1 — Deterministic impression check (no LLM): `AIS-DEFENSIVE-HEDGE`
- Step 2 — Cross-model GROSS-cases-only semantic pass (the 13 impressions; reviewer ≠ adjudicator)
- Step 3 — Validate + anchor + tag (keep only `AIS-*`; never cap; never let integrity through)
- Step 4 — Emit (two files, no merge)
- Step 5 — Trace (forensic; never silently dropped)
- Step 6 — Hand off, or adjudicate standalone
- Output contract
- Key rules
- When NOT to use this skill
- Review tracing
Scripts executed separately
../../tools/adjudicate_findings.py../../tools/check_ai_style.py
Files
SKILL.mdcore53,199 bytesSKILL.mdcore53,199 bytesSKILL.mdcore53,199 bytesSKILL.mdcore53,199 bytesSKILL.mdcore53,199 bytesSKILL.mdcore53,199 bytesSKILL.mdcore53,199 bytesSKILL.mdcore53,199 bytesSKILL.mdcore53,199 bytesSKILL.mdcore53,199 bytesSKILL.mdcore53,199 bytesSKILL.mdcore53,199 bytesSKILL.mdcore53,199 bytes../../tools/adjudicate_findings.pyruns46,536 bytes../../tools/check_ai_style.pyruns9,111 bytes
Read SKILL.md
# AI Writing-Style Impressions — itemized, located, ZERO verdict weight (NOT integrity findings)
Surface AI writing-**style** impressions for: **$ARGUMENTS** (requires `claims.json`
from `/evidence-ledger`). Emit span-anchored `ai-style-impressions.findings.json`.
Every finding here is an **impression** with **ZERO verdict weight** — this skill
proposes **no integrity finding** and computes **no verdict**.
> ⚠<U+FE0F> **This is the repo's ONLY non-integrity output, and it is non-integrity by
> construction.** AIS findings are transparent, itemized impressions of AI-generated
> *writing style*. The adjudicator (`tools/adjudicate_findings.py`) gives **every** AIS
> finding **ZERO verdict weight** — it is forced to `info`, excluded from
> `overall_verdict`, and rendered in a **separate** report section,
> *"AI Writing-Style Impressions — NOT integrity findings · ZERO verdict weight"*. **A
> paper can be `CLEAN_GIVEN_EVIDENCE` and still list many AIS impressions.** These areView the complete source on GitHubbaseline-comparison-audit
When your agent uses it
Audit whether a paper's baseline comparisons are COMPLETE, FAIR, and SIGNIFICANT: a required recent SOTA baseline is missing while 'best/SOTA' is claimed (HP-MISSING-BASELINE); a baseline is undertuned / given less compute-tuning-data, run at a mismatched config, or the equal-budget ablation-as-baseline is absent (HP-WEAK-BASELINE); 'outperforms' is asserted over overlapping error bars or with no variance/seeds (HP-SIG-OVERLAP); and a cross-row 'improves over baseline by X%' is arithmetically wrong (HP-DELTA-ERROR, cross-row form only). A versioned per-domain baseline profile + a live leaderboard/recency search are assembled by the EXECUTOR as structured facts; a fresh cross-model reviewer (gpt-5.6-sol xhigh, read-only, fresh thread per dimension) PROPOSES findings, each span-anchored to a ledger claim_id; tools/adjudicate_findings.py DECIDES the verdict. Works at L0 (stated comparisons) and deepens at L2 (configs/result files). A completeness question it cannot settle internally becomes needs_external_check, never a guessed missing baseline. Emits baseline-comparison-audit.findings.json; computes NO verdict. Detect-only. Triggers: "baseline audit", "missing baselines", "is the comparison fair", "weak baseline", "baseline 误报", "SOTA earned?".
What it loads into context
Frontmatter
357 tokensAlways available to the agent
SKILL.md
15,911 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this exists
- Core principle
- How this differs from the other auditors (route correctly)
- Per-domain baseline profile (`PROFILE_VERSION = 0.1` — a SEED prior, always verified live)
- Constants & Reviewer Calling Convention
- Step 0 — Preconditions: locate the ledger, read the run level
- Step 1 — Extract the comparison surface from the ledger (decide whether to run)
- Step 2 — Assemble the candidate expected-baseline set (profile + live search + recency guard)
- Step 3 — Completeness pass (cross-model, fresh thread) → HP-MISSING-BASELINE
- Step 4 — Fairness + Significance + cross-row Delta pass (cross-model, fresh thread; L2 deepen)
- Step 5 — Validate + anchor + dedup (the anti-hallucination gate)
- Step 6 — Emit (one file)
- Step 7 — Trace (forensic; never silently dropped)
- Step 8 — Hand off, or adjudicate standalone
- Output contract
- Key rules
- When NOT to use this skill
- Review tracing
Scripts executed separately
../../tools/adjudicate_findings.py../../tools/check_numeric_consistency.py
Files
SKILL.mdcore62,322 bytesSKILL.mdcore62,322 bytesSKILL.mdcore62,322 bytesSKILL.mdcore62,322 bytesSKILL.mdcore62,322 bytesSKILL.mdcore62,322 bytesSKILL.mdcore62,322 bytesSKILL.mdcore62,322 bytesSKILL.mdcore62,322 bytesSKILL.mdcore62,322 bytesSKILL.mdcore62,322 bytesSKILL.mdcore62,322 bytesSKILL.mdcore62,322 bytes../../tools/adjudicate_findings.pyruns46,536 bytes../../tools/check_numeric_consistency.pyruns7,927 bytes
Read SKILL.md
# Baseline Comparison Audit — is the comparison complete, fair, and significant?
Audit baseline-comparison integrity for: **$ARGUMENTS** (requires `claims.json`
from `/evidence-ledger`). Emit span-anchored `baseline-comparison-audit.findings.json`.
This skill computes **no verdict**.
> 🔒 **Do not wrap this skill in `/loop`, `/schedule`, or `CronCreate`.** It is
> verdict-bearing input — it proposes the findings the deterministic adjudicator
> turns into the report. Re-firing it on a wall-clock timer adds no signal: its
> output changes only when the **paper / ledger** (or the live leaderboard it
> cross-checks) changes, not with the clock. Schedule the *external wait that
> precedes it* — ledger built → audit **once**. (Mirrors ARIS's external-cadence
> doctrine.)
View the complete source on GitHubcitation-forensics
When your agent uses it
Citation-integrity forensics: is every reference real, correctly attributed, and used in a context the cited work actually supports? Catches hallucinated references (no paper at the claimed arXiv id/DOI/venue, fabricated authors/year), metadata drift (wrong year/venue/version), and wrong-context citations (a real paper cited for a claim it never makes — or argues against). A hot zone for machine-generated papers. Decidable at L0 (text + canonical sources). Span-anchored to the evidence ledger (claims.json); the executor gathers canonical facts (DBLP / arXiv / DOI), then one FRESH cross-model thread per cited key proposes findings; reviewer != adjudicator. Emits citation-forensics.findings.json; NEVER computes the verdict. Triggers: "citation forensics", "check the references", "hallucinated citations", "wrong-context citation", "verify references", "引用核对".
What it loads into context
Frontmatter
278 tokensAlways available to the agent
SKILL.md
12,884 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this exists
- Core principle
- How this differs from the other auditors (route correctly)
- Constants & Reviewer Calling Convention
- Step 0 — Preconditions: locate the ledger, read the level, find the bib, set the run dir
- Step 1 — Build the per-key citation dossier (deterministic; no judgment)
- Step 2 — Canonical-source resolution (executor gathers FACTS; non-blocking)
- Step 3 — Per-entry cross-model audit (existence → metadata → context)
- Step 4 — Validate + anchor + emit (the anti-hallucination gate)
- Step 5 — Trace (forensic; never silently dropped)
- Step 6 — Hand off, or adjudicate standalone
- Output contract
- Key rules
- When NOT to use this skill
- Review tracing
Scripts executed separately
../../tools/adjudicate_findings.py../../tools/build_claim_ledger.py
Files
SKILL.mdcore49,541 bytesSKILL.mdcore49,541 bytesSKILL.mdcore49,541 bytesSKILL.mdcore49,541 bytesSKILL.mdcore49,541 bytesSKILL.mdcore49,541 bytesSKILL.mdcore49,541 bytesSKILL.mdcore49,541 bytesSKILL.mdcore49,541 bytesSKILL.mdcore49,541 bytesSKILL.mdcore49,541 bytesSKILL.mdcore49,541 bytes../../tools/adjudicate_findings.pyruns46,536 bytes../../tools/build_claim_ledger.pyruns12,662 bytes
Read SKILL.md
# Citation Forensics — are the references real and honestly used?
Audit citation integrity for: **$ARGUMENTS** (requires `claims.json` from
`/evidence-ledger`; reasons over its `type:"citation"` claims). Emit span-anchored
`citation-forensics.findings.json`. This skill computes **no verdict**.
> 🔒 **Do not wrap this skill in `/loop`, `/schedule`, or `CronCreate`.** It is
> verdict-bearing input — it proposes the citation findings the deterministic
> adjudicator turns into the report. Re-firing it on a wall-clock timer adds no
> signal: its output changes only when the **paper / ledger / bibliography**
> changes, not with the clock, and each run spends real cross-model + lookup budget
> per cited key. Schedule the *external wait that precedes it* — bibliography
> finalized → ledger rebuilt → audit **once**. (Mirrors ARIS's external-cadence
> doctrine.)View the complete source on GitHubconsistency-audit
When your agent uses it
Flagship intra-paper self-consistency forensics: does the paper contradict ITSELF across abstract/intro/tables/body/appendix, and does the method DESCRIBED match the method EVALUATED? Needs no external ground truth — works PDF-only (L0). Runs a deterministic arithmetic pass + a fresh cross-model semantic pass, every finding span-anchored to the evidence ledger (claims.json), reviewer≠adjudicator. Emits consistency-audit.findings.json; NEVER computes the verdict. Triggers: "consistency audit", "check the paper against itself", "self-consistency", "内部自洽".
What it loads into context
Frontmatter
167 tokensAlways available to the agent
SKILL.md
10,604 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this exists
- Core principle
- How this differs from the other auditors (route correctly)
- Constants & Reviewer Calling Convention
- Step 0 — Preconditions: locate the ledger, read the run level
- Step 1 — Deterministic arithmetic pass (no LLM)
- Step 2 — Cross-model semantic pass (reviewer ≠ adjudicator)
- Step 3 — Validate + anchor (the anti-hallucination gate)
- Step 4 — Emit (two files, no merge)
- Step 5 — Trace (forensic; never silently dropped)
- Step 6 — Hand off, or adjudicate standalone
- Output contract
- Key rules
- When NOT to use this skill
Scripts executed separately
../../tools/adjudicate_findings.py../../tools/check_numeric_consistency.py../../tools/check_stat_consistency.py
Files
SKILL.mdcore41,692 bytesSKILL.mdcore41,692 bytesSKILL.mdcore41,692 bytesSKILL.mdcore41,692 bytesSKILL.mdcore41,692 bytesSKILL.mdcore41,692 bytesSKILL.mdcore41,692 bytesSKILL.mdcore41,692 bytesSKILL.mdcore41,692 bytesSKILL.mdcore41,692 bytesSKILL.mdcore41,692 bytesSKILL.mdcore41,692 bytesSKILL.mdcore41,692 bytes../../tools/adjudicate_findings.pyruns46,536 bytes../../tools/check_numeric_consistency.pyruns7,927 bytes../../tools/check_stat_consistency.pyruns25,059 bytes
Read SKILL.md
# Consistency Audit — the paper vs itself
Audit intra-paper self-consistency for: **$ARGUMENTS** (requires `claims.json`
from `/evidence-ledger`). Emit span-anchored `consistency-audit.findings.json`;
the deterministic adjudicator — not this skill — computes the verdict.
> 🔒 **Do not wrap this skill in `/loop`, `/schedule`, or `CronCreate`.** It is
> verdict-bearing input — it proposes the findings the deterministic adjudicator
> turns into the report. Re-firing it on a wall-clock timer adds no signal: its
> output changes only when the **paper / ledger** changes, not with the clock.
> Schedule the *external wait that precedes it* — ledger built → audit **once**.
> (Mirrors ARIS's external-cadence doctrine.)
> The flagship instrument. Internal contradiction is the single most defensibleView the complete source on GitHubeval-design-forensics
When your agent uses it
Audit whether a paper's EVALUATION DESIGN actually measures what it claims and whether its reporting is complete — the validity layer family D (experiment-forensics) cannot reach. Three patterns: train/test leakage means the reported score may not measure generalization (HP-EVAL-LEAKAGE — adopts the Kapoor & Narayanan 8-type / 3-category leakage taxonomy; the illegitimate-proxy / sampling-bias / pretraining-contamination subtypes hand off as needs_external_check, naming but NEVER running Oren-2023 exchangeability / Shi-2023 Min-K% / Golchin-2023 Time-Travel / BIG-bench canary); a load-bearing LLM judge is conflicted (same model/family as a compared system) or unvalidated (no human-agreement, no bias control) (HP-JUDGE-VALIDITY); a declared condition/metric is dropped or switched to favor the method, or 'best' is chosen with no held-out set (HP-SELECTIVE-REPORTING). Verdict-bearing at L0/L1 from the DESCRIBED protocol — NOT repo-gated like experiment-forensics; L2 only CONFIRMS against split/preprocessing/result files. A fresh cross-model reviewer (gpt-5.6-sol xhigh, read-only, fresh thread per pass) PROPOSES findings, each span-anchored to a ledger claim_id; tools/adjudicate_findings.py DECIDES the verdict. Leakage and under-reporting are usually HONEST methodological errors — every finding describes a discrepancy to CHECK, never an accusation. An LLM generating GROUND-TRUTH labels is HP-FAKE-GT (experiment-forensics) — routed there, not here. Emits eval-design-forensics.findings.json; computes NO verdict. Detect-only. Triggers: "eval design audit", "evaluation validity", "train/test leakage", "data leakage", "is the score measuring generalization", "LLM judge bias", "is the judge validated", "selective reporting", "cherry-picked results", "评估设计审计", "评测有效性", "数据泄漏", "训练测试集泄漏", "裁判模型有没有验证", "选择性报告".
What it loads into context
Frontmatter
504 tokensAlways available to the agent
SKILL.md
16,764 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this exists
- Core principle
- How this differs from the other auditors (route correctly)
- The Kapoor & Narayanan leakage taxonomy (adopted — paraphrased)
- Constants & Reviewer Calling Convention
- Step 0 — Preconditions: locate the ledger, read the run level
- Step 1 — Extract the evaluation surface from the ledger (decide whether to run)
- Step 2 — Gather mechanical facts (L2 split/preprocessing/judge/result; optional date fact)
- Step 3 — Leakage pass (cross-model, fresh thread) → HP-EVAL-LEAKAGE
- Step 4 — Judge-validity + Selective-reporting pass (cross-model, fresh thread)
- Step 5 — Validate + anchor (the anti-hallucination gate)
- Step 6 — Emit (one file)
- Step 7 — Trace (forensic; never silently dropped)
- Step 8 — Hand off, or adjudicate standalone
- Output contract
- Key rules
- When NOT to use this skill
- Review tracing
- Acknowledgements
Scripts executed separately
../../tools/adjudicate_findings.py
Files
SKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytesSKILL.mdcore63,506 bytes../../tools/adjudicate_findings.pyruns46,536 bytes
Read SKILL.md
# Eval-Design Forensics — does the evaluation measure what the paper claims?
Audit evaluation-design and reporting validity for: **$ARGUMENTS** (requires
`claims.json` from `/evidence-ledger`). Emit span-anchored
`eval-design-forensics.findings.json`. This skill computes **no verdict**.
> 🔒 **Do not wrap this skill in `/loop`, `/schedule`, or `CronCreate`.** It is
> verdict-bearing input — it proposes the findings the deterministic adjudicator
> turns into the report. Re-firing it on a wall-clock timer adds no signal: its
> output changes only when the **paper / ledger** changes (or a repo arrives,
> raising the observability level), not with the clock. Schedule the *external wait
> that precedes it* — ledger built (or artifacts released → L2) → audit **once**.
> (Mirrors ARIS's external-cadence doctrine.)
View the complete source on GitHubevidence-ledger
When your agent uses it
Build the deterministic evidence ledger (artifact_manifest.json + claims.json) that every other Anti-Autoresearch auditor reads. One pass inventories artifacts, derives the observability level (L0 PDF-only / L1 +LaTeX / L2 +repo+results) by fixed rule, and extracts span-anchored, hashed, checkable claims (numbers, comparisons, scope, method, baselines, citations, captions, table cells) into claims.json. An OPTIONAL additive cross-model pass ADDS span-anchored semantic claims — method, theorem statements with their assumptions, definitions, proof/derivation steps and equations, scope, baselines, conclusions, the motivation span, and reproducibility-artifact references (the proof, derivation, and structure anchors the family B/D/G auditors need) — it never invents a number, emits a finding, or computes a verdict. Run FIRST, before any audit skill. Triggers: "build the ledger", "extract claims", "prep for integrity audit", "evidence ledger", "建证据账本".
What it loads into context
Frontmatter
264 tokensAlways available to the agent
SKILL.md
11,987 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this exists
- Role in the pipeline (what this skill does and does NOT do)
- Core principle
- Constants
- Step 0 — Resolve the input & set up the run
- Step 1 — Artifact manifest + observability level (deterministic)
- Step 2 — Extract the deterministic ledger (no LLM)
- Step 3 — Optional additive semantic enrichment (cross-model, fresh thread)
- Step 4 — Validate + merge enrichment (the anti-hallucination gate)
- Step 5 — Self-check the ledger (it is the spine, so verify it)
- Output contract
- What consumes the ledger downstream (integration)
- Key rules
- When NOT to use (and limits)
- Review tracing
Scripts executed separately
../../tools/adjudicate_findings.py../../tools/build_claim_ledger.py../../tools/build_manifest.py../../tools/check_numeric_consistency.py../../tools/check_presentation.py../../tools/select_primary_pdf.py
Files
SKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytesSKILL.mdcore45,299 bytes../../tools/adjudicate_findings.pyruns46,536 bytes../../tools/build_claim_ledger.pyruns12,662 bytes../../tools/build_manifest.pyruns4,317 bytes../../tools/check_numeric_consistency.pyruns7,927 bytes../../tools/check_presentation.pyruns11,566 bytes../../tools/select_primary_pdf.pyruns3,955 bytes
Read SKILL.md
# Evidence Ledger — the spine every auditor reads
> Infrastructure skill, **not an auditor**. It produces the *only* structure the
> auditor skills are allowed to reason over, so they don't each re-read the PDF and
> hallucinate a different table and a different list of numbers. It emits **no
> findings and no verdict** — only `artifact_manifest.json` + `claims.json`. See
> `references/integrity-forensics-contract.md` §"The pipeline" (stages [1]–[2]).
Build the ledger for: **$ARGUMENTS**
> 🔁 **Not verdict-bearing — but not a polling skill either.** The deterministic
> backbone (Steps 1–2) is a *pure function of the hashed sources*: same source bytes
> → byte-identical `claims.json`. Re-run it only when the sources change, never on a
> wall-clock timer. The only non-deterministic part is the optional enrichment passView the complete source on GitHubexperiment-forensics
When your agent uses it
Audit experiment integrity against the evidence ledger. At L2 (repo + result files present) a fresh cross-model reviewer reads the eval code line-by-line for fake/derived ground truth, score self-normalization, phantom results (a paper number with no backing file/key), dead/uncalled metric code, verified-scope inflation, method-described ≠ method-evaluated drift, synthesized-looking results, placeholder/fake data still wired into a released result, code-output ≠ reported-number mismatch, and missing reproducibility artifacts (an empirical/agent/LLM paper shipping neither code nor the prompts/configs its results need) — every finding span-anchored to a ledger claim_id. At L0/L1 (PDF / source only) the same patterns are surfaced as info-level 'could-not-verify' signals where the ledger gives an anchor (observability_level_required:2) — NEVER a fraud verdict from a PDF. The reviewer PROPOSES findings; tools/adjudicate_findings.py computes the verdict. Detect-only. Triggers: "experiment forensics", "audit the results", "check the eval code", "实验诚实度".
What it loads into context
Frontmatter
277 tokensAlways available to the agent
SKILL.md
13,915 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this exists
- Core principle (two independence axes)
- How this differs from the other auditors (route correctly)
- Pipeline role + the anchoring model (read before running)
- Constants & Reviewer Calling Convention
- Step 1 — Preflight: resolve root, level, paper_id (self-contained)
- Step 2 — L0 / L1: info-only "could-not-verify" signals (the honesty backbone)
- Step 3 — L2: collect artifacts (executor — paths + mechanical FACTS only)
- Step 4 — L2: cross-model code audit (reviewer ≠ adjudicator)
- Step 5 — Validate every reviewer finding (the executor gate)
- Step 6 — Emit, cross-reference, trace
- Output contract
- Key rules
- When NOT to use this skill
- Review tracing
- Acknowledgements
Scripts executed separately
../../tools/adjudicate_findings.py../../tools/build_manifest.py
Files
SKILL.mdcore52,773 bytesSKILL.mdcore52,773 bytesSKILL.mdcore52,773 bytesSKILL.mdcore52,773 bytesSKILL.mdcore52,773 bytesSKILL.mdcore52,773 bytesSKILL.mdcore52,773 bytesSKILL.mdcore52,773 bytesSKILL.mdcore52,773 bytesSKILL.mdcore52,773 bytesSKILL.mdcore52,773 bytesSKILL.mdcore52,773 bytes../../tools/adjudicate_findings.pyruns46,536 bytes../../tools/build_manifest.pyruns4,317 bytes
Read SKILL.md
# Experiment Forensics — are the reported results what the code computes?
Audit experiment integrity for: **$ARGUMENTS** (a paper-dir or repo-dir; use an
ABSOLUTE path — it is referred to as `TARGET` below). Emit span-anchored
`experiment-forensics.findings.json`.
> 🔒 **Do not wrap this skill in `/loop`, `/schedule`, or `CronCreate`.** It is
> verdict-bearing input — it proposes the findings the deterministic adjudicator
> turns into the report. Re-firing it on a wall-clock timer adds no signal: what
> unlocks new conclusions is a higher **observability level** (a repo / result
> files arriving → L2), not elapsed time. Schedule the *external wait that precedes
> it* — artifacts released → run **once** at the new level. (Mirrors ARIS's
> external-cadence doctrine.)
View the complete source on GitHubnovelty-duplication-advisory
When your agent uses it
MEMO-ONLY prior-work overlap advisory: surfaces the two ADVISORY taxonomy signals neither a tool nor a model can decide from the paper alone — ADV-TRIVIAL-COMBINATION (standard A+B+C / 缝合 stapling) and ADV-DUPLICATE-PUBLICATION (repackaged / duplicate submission). The executor RETRIEVES candidate prior work (DBLP fuzzy-title + boolean · WebSearch · WebFetch) from the paper's own title + contribution spans in the evidence ledger; TWO fresh cross-model codex reviewers (one per axis) LAY OUT the overlap side-by-side against each anchored contribution claim. It NEVER rules 'trivial' or 'duplicate' (that is a human judgment) and absence of a match is NOT evidence of originality. Emits novelty-duplication-advisory.memo.md + an info-only findings mirror; carries NO verdict weight — tools/adjudicate_findings.py lists it in ZERO_WEIGHT_SKILLS and caps it at info. Detect-only. Adapted from ARIS novelty-check, reframed from 'is MY idea novel' to 'here is the overlap a reviewer should weigh'. Triggers: "novelty advisory", "duplication check", "prior-work overlap", "is this stapling", "缝合", "查重", "重复发表", "duplicate submission".
What it loads into context
Frontmatter
348 tokensAlways available to the agent
SKILL.md
18,206 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this exists
- Core principle
- How this differs from the other auditors (route correctly)
- How this differs from ARIS `novelty-check` (the parent)
- Constants & Reviewer Calling Convention
- Step 0 — Preconditions: locate the ledger, read the run level, open the trace
- Step 1 — Build the retrieval profile from the ledger (executor, deterministic)
- Step 2 — Retrieve candidate prior work (executor; real records only)
- Step 3 — Cross-model overlap mapping (TWO fresh per-axis threads; never rules)
- Step 4 — Validate + anchor, render the memo + the info-only findings mirror
- Step 5 — Trace (forensic; never silently dropped)
- Step 6 — Hand off, or adjudicate standalone
- Output contract
- Key rules
- When NOT to use this skill
- Review tracing
Scripts executed separately
../../tools/adjudicate_findings.py
Files
SKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytesSKILL.mdcore70,850 bytes../../tools/adjudicate_findings.pyruns46,536 bytes
Read SKILL.md
# Novelty & Duplication Advisory — the overlap a reviewer should weigh
Lay out, for **$ARGUMENTS** (a paper-dir or a `claims.json` from `/evidence-ledger`), the
candidate prior-work overlap a human reviewer should weigh for two reviewer-judgment signals
— **trivial combination** ("standard A+B+C") and **duplicate publication** ("repackaged prior
work"). Retrieve candidates, map them side-by-side against the paper's ledger-anchored
contribution, and emit `novelty-duplication-advisory.memo.md`. Run AFTER `/evidence-ledger`
(so `claims.json` exists). This skill **decides nothing** — it never rules "trivial" or
"duplicate", and the deterministic adjudicator caps it at `info`.
> 🔒 **Do not wrap this skill in `/loop`, `/schedule`, or `CronCreate`.** It retrieves
> external prior work once and synthesizes it into one advisory memo. Even though it is
> **memo-only** (the adjudicator caps it at `info`, so it adds no verdict weight), the
> no-new-signal cadence rule still applies: its output changes only when the **ledger / theView the complete source on GitHubpresentation-signals
When your agent uses it
Checkable-ish surface presentation signals a reviewer notices first — duplicate/near-identical tables, leftover pipeline/template strings, too-few or LLM-looking figures, and page-padding. AUXILIARY ONLY and weak by design: a deterministic pass (tools/check_presentation.py — dup-table + pipeline-artifact) plus a fresh cross-model GROSS-cases-only semantic pass (thin-float, LLM-figure, page-padding), every above-info finding span-anchored to the evidence ledger (claims.json). The adjudicator CAPS everything at minor (SURFACE_ONLY_SKILLS + SURFACE_PATTERNS) — these contribute at most SOFT_FLAGS, never a HARD verdict — default false_positive_risk:high. NOTE: the pure AI writing-STYLE impressions (AI-flavor prose, defensive 'not-X-but-Y' hedging, narrative-arc, jargon-stuffing, invented codenames) MOVED to the zero-verdict-weight AIS track — for those use skills/ai-style-impressions, NOT this. Emits presentation-signals.findings.json; NEVER computes the verdict. Triggers: "presentation signals", "surface check", "duplicate tables", "排版信号".
What it loads into context
Frontmatter
281 tokensAlways available to the agent
SKILL.md
10,241 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this exists
- Core principle
- How this differs from the other auditors (route correctly)
- Constants & Reviewer Calling Convention
- Step 0 — Preconditions: locate the ledger, read the level, find the PDF
- Step 1 — Deterministic surface check (no LLM)
- Step 2 — Cross-model GROSS-cases-only semantic pass (reviewer ≠ adjudicator)
- Step 3 — Validate + anchor + cap (the anti-detector gate)
- Step 4 — Emit (two files, no merge)
- Step 5 — Trace (forensic; never silently dropped)
- Step 6 — Hand off, or adjudicate standalone
- Output contract
- Key rules
- When NOT to use this skill
- Review tracing
Scripts executed separately
../../tools/adjudicate_findings.py../../tools/check_presentation.py
Files
SKILL.mdcore40,102 bytesSKILL.mdcore40,102 bytesSKILL.mdcore40,102 bytesSKILL.mdcore40,102 bytesSKILL.mdcore40,102 bytesSKILL.mdcore40,102 bytesSKILL.mdcore40,102 bytesSKILL.mdcore40,102 bytesSKILL.mdcore40,102 bytesSKILL.mdcore40,102 bytesSKILL.mdcore40,102 bytesSKILL.mdcore40,102 bytesSKILL.mdcore40,102 bytes../../tools/adjudicate_findings.pyruns46,536 bytes../../tools/check_presentation.pyruns11,566 bytes
Read SKILL.md
# Presentation Signals — the surface tells (auxiliary, never a verdict)
Run surface signal checks for: **$ARGUMENTS** (requires `claims.json` from
`/evidence-ledger`). Emit span-anchored `presentation-signals.findings.json`. This
skill computes **no verdict**.
> ⚠<U+FE0F> **This skill is deliberately weak by design.** A polished paper can be
> fraudulent and a rough paper can be honest, so surface signals must **never** drive
> a verdict. Everything here is emitted under skill `presentation-signals`, which the
> adjudicator **caps at `minor`** (`SURFACE_ONLY_SKILLS` + `SURFACE_PATTERNS` in
> `tools/adjudicate_findings.py`) — at most `SOFT_FLAGS`, **never** `HARD_FLAGS`. This
> is **not an AI-text classifier**; for authorship detection use a dedicated tool
> (Pangram / GPTZero / Binoculars). Our only job is to add *"combine with the
> substantive findings and look closer"* context. SeeView the complete source on GitHubproof-derivation-forensics
When your agent uses it
Family-G proof & derivation integrity forensics: does a THIRD PARTY's written proof/derivation actually establish its theorem, or does it skip an obligation, assume its own conclusion, take an invalid step, drift a symbol's meaning, or smuggle an unstated assumption? Decides from the WRITTEN proof/derivation — verdict-bearing at L1 (the LaTeX source; PDF-extracted math is unreliable, so an L0 PDF-only run surfaces info only) — never asserts 'fabricated', only that the step shown does not hold. A fresh cross-model reviewer reads the theorem/proof + an extraction-only obligation scaffold and proposes per-obligation findings, each span-anchored to the evidence ledger (claims.json); reviewer≠adjudicator. Emits proof-derivation-forensics.findings.json; NEVER computes the verdict. dimension=proof, can be critical. Triggers: "proof forensics", "check this proof", "derivation integrity", "audit the math", "证明审计", "推导有没有漏洞".
What it loads into context
Frontmatter
257 tokensAlways available to the agent
SKILL.md
13,881 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this exists
- Core principle
- How this differs from the other auditors (route correctly)
- Constants & Reviewer Calling Convention
- Step 0 — Preconditions: locate the ledger, read the level, confirm proofs exist
- Step 1 — Build the proof-obligation scaffold (EXTRACTION ONLY — never a verdict)
- Step 2 — Cross-model per-obligation review (reviewer ≠ adjudicator)
- Step 3 — Validate + anchor (the anti-hallucination gate)
- Step 4 — Emit (one file)
- Step 5 — Trace (forensic; never silently dropped)
- Step 6 — Hand off, or adjudicate standalone
- Output contract
- Key rules
- When NOT to use this skill
- Review tracing (`.aris/traces/proof-derivation-forensics/<date>_run<NN>/`)
Scripts executed separately
../../tools/adjudicate_findings.py
Files
SKILL.mdcore54,047 bytesSKILL.mdcore54,047 bytesSKILL.mdcore54,047 bytesSKILL.mdcore54,047 bytesSKILL.mdcore54,047 bytesSKILL.mdcore54,047 bytesSKILL.mdcore54,047 bytesSKILL.mdcore54,047 bytesSKILL.mdcore54,047 bytesSKILL.mdcore54,047 bytesSKILL.mdcore54,047 bytesSKILL.mdcore54,047 bytes../../tools/adjudicate_findings.pyruns46,536 bytes
Read SKILL.md
# Proof & Derivation Forensics — does the written proof hold?
Audit family **G (proof & derivation integrity)** for: **$ARGUMENTS** (requires
`claims.json` from `/evidence-ledger`). A fresh cross-model reviewer reads each
theorem/proof and proposes span-anchored findings; this skill writes
`proof-derivation-forensics.findings.json`. The deterministic adjudicator — not this
skill — computes the verdict.
> 🔒 **Do not wrap this skill in `/loop`, `/schedule`, or `CronCreate`.** It is
> verdict-bearing input — it proposes the findings the deterministic adjudicator
> turns into the report. Re-firing it on a wall-clock timer adds no signal: its
> output changes only when the **paper / ledger** changes, not with the clock.
> Schedule the *external wait that precedes it* — ledger built → audit **once**.
> (Mirrors ARIS's external-cadence doctrine.)View the complete source on GitHubanti-autoresearch
When your agent uses it
End-to-end substantive-integrity forensic sweep of a research paper (especially autoresearch / AI-Scientist-style output). Orchestrates the whole pipeline: ingest (arxiv-id | pdf | dir → working dir + pdftotext for L0) → /evidence-ledger (artifact manifest + observability level L0/L1/L2 + span-anchored claims.json) → fan out the integrity auditor skills (consistency, citation, baseline, experiment, presentation, proof-derivation, eval-design — each reads the ledger, emits span-anchored findings) + the zero-verdict-weight AIS writing-style track → advisory memos (/adversarial-case-builder + /novelty-duplication-advisory, no verdict weight) → deterministic tools/adjudicate_findings.py (--ledger REQUIRED) → reviewer-ready Integrity Forensics Report. Cross-model (fresh codex per dimension) and reviewer≠adjudicator: the model proposes findings, the deterministic adjudicator decides the verdict. Observability-aware, detect-only, never an opaque AI-text classifier (a separate zero-weight AIS section lists AI writing-style impressions, never moving the verdict). Triggers: "anti-autoresearch", "integrity audit this paper", "forensic review", "audit a submission", "审一篇投稿的诚信".
What it loads into context
Frontmatter
366 tokensAlways available to the agent
SKILL.md
18,985 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why this exists
- Pipeline role (what this run does, and never does)
- Constants & conventions
- Execution modes & the Reviewer Calling Convention
- Re-entrancy: resuming a partial / re-run sweep
- Step 0 — Ingest: resolve the input to a working dir
- Step 1 — Build the evidence ledger (always first; the spine)
- Step 2 — Fan out the six auditors (breadth; the verdict is NOT decided here)
- Step 3 — Advisory memos (last; memo-only, no verdict weight)
- Step 3.5 — Critical-refutation pass (CONTESTED marking; never severity-moving)
- Step 4 — Adjudicate (deterministic — this is the verdict)
- Step 5 — Present
- Deterministic-only fallback (no model in the loop)
- Output contract
- Key rules
- When NOT to use (and routing to standalone skills)
- Typical run profile
- Review tracing
Scripts executed separately
../../tools/adjudicate_findings.py../../tools/attach_refutation.py../../tools/build_claim_ledger.py../../tools/build_manifest.py../../tools/check_ai_style.py../../tools/check_numeric_consistency.py../../tools/check_presentation.py../../tools/check_stat_consistency.py../../tools/select_primary_pdf.py
Files
../../tools/adjudicate_findings.pyruns46,536 bytes../../tools/attach_refutation.pyruns6,238 bytes../../tools/build_claim_ledger.pyruns12,662 bytes../../tools/build_manifest.pyruns4,317 bytes../../tools/check_ai_style.pyruns9,111 bytes../../tools/check_numeric_consistency.pyruns7,927 bytes../../tools/check_presentation.pyruns11,566 bytes../../tools/check_stat_consistency.pyruns25,059 bytes../../tools/select_primary_pdf.pyruns3,955 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytesSKILL.mdcore70,765 bytes
Read SKILL.md
# /anti-autoresearch — the orchestrator
Run a full substantive-integrity forensic pass on **$ARGUMENTS** and hand a human
reviewer / area chair an evidence-first Integrity Forensics Report.
> 🔒 **External cadence: the verdict is not a poll.** The pipeline is the
> verdict-producing path — its output changes only when the **paper / repo / ledger**
> changes, not with the clock. **Do not** wrap `/anti-autoresearch` (or any auditor
> sub-skill) in `/loop` / `/schedule` / `CronCreate` to "re-check". A heartbeat may
> only *wait on* the **external** steps that precede the verdict (an arXiv download, a
> citation web lookup) — never re-fire the adjudicated verdict, and never "decide the
> paper is fine now." Re-run the sweep when the inputs change; that is the only honest
> trigger.
View the complete source on GitHubSkills included
- adversarial-case-builder
- ai-style-impressions
- baseline-comparison-audit
- citation-forensics
- consistency-audit
- eval-design-forensics
- evidence-ledger
- experiment-forensics
- novelty-duplication-advisory
- presentation-signals
- proof-derivation-forensics
- anti-autoresearch
Repository facts
- License
- MIT
- Created
- Jun 26, 2026
- Last pushed
- Nov 6, 2026
- Forks
- 9
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 7, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 206 notes
skills/adversarial-case-builder/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/adversarial-case-builder/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/adversarial-case-builder/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/adversarial-case-builder/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/adversarial-case-builder/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/adversarial-case-builder/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-style-impressions/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-style-impressions/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-style-impressions/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-style-impressions/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-style-impressions/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-style-impressions/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-style-impressions/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-style-impressions/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-style-impressions/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-style-impressions/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-style-impressions/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ai-style-impressions/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/baseline-comparison-audit/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/baseline-comparison-audit/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- 12 broad permissionsin 12 files: adversarial-case-builder/SKILL.md:1 ai-style-impressions/SKILL.md:1 baseline-comparison-audit/SKILL.md:1 and 9 more
- 5 dangerous shell commandsin 4 files: tools/check_stat_consistency.py:89 experiment-forensics/SKILL.md:34 novelty-duplication-advisory/SKILL.md:740 and 1 more
- 25 network referencesin 4 files: citation-forensics/SKILL.md:308 anti-autoresearch/SKILL.md:278 evidence-ledger/SKILL.md:118 and 1 more
- No hidden or obfuscated text
- No instruction overrides
- 32 executable scriptsin 9 files: tools/adjudicate_findings.py:1 tools/check_numeric_consistency.py:1 tools/build_claim_ledger.py:1 and 6 more
- 2 references to secretsin 1 file: tools/attach_refutation.py:70
- No requests to vote in Hot
Show all 76 signals by file
skills/adversarial-case-builder/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, mcp__codex__codex
skills/ai-style-impressions/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, mcp__codex__codex
skills/baseline-comparison-audit/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, Grep, Glob, WebSearch, WebFetch, mcp__codex__codex - Network accessline 320
"profile_version": "0.1", "profile_hit": true, "leaderboard_source": "https://paperswithcode.com/sota/arithmetic-reasoning-on-gsm8k (read <UTC date>)", - Network accessline 321
"profile_hit": true, "leaderboard_source": "https://paperswithcode.com/sota/arithmetic-reasoning-on-gsm8k (read <UTC date>)", "expected_baselines": [ - Network accessline 322
"leaderboard_source": "https://paperswithcode.com/sota/arithmetic-reasoning-on-gsm8k (read <UTC date>)",
skills/citation-forensics/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, Grep, Glob, WebSearch, WebFetch, mcp__codex__codex, mcp__mcp-dblp__search, mcp__mcp-dblp__fuzzy_title_search, mcp__mcp-dblp__get_venue_info - Network accessline 308
Journal / Repository). - **arXiv / DOI resolve + content** — `WebFetch` the arXiv abstract page built from the bib `eprint`/`arxiv` id (`https://arxiv.org/abs/<id>`) and capture the returned - Network accessline 309
- **arXiv / DOI resolve + content** — `WebFetch` the arXiv abstract page built from the bib `eprint`/`arxiv` id (`https://arxiv.org/abs/<id>`) and capture the returned title + authors **and the abstract text** (the abstract is what lets - Network accessline 310
the bib `eprint`/`arxiv` id (`https://arxiv.org/abs/<id>`) and capture the returned - Network accessline 311
title + authors **and the abstract text** (the abstract is what lets the reviewer judge *context*); `WebFetch https://doi.org/<doi>` to confirm the DOI resolves to this work. Use `WebSearch` as a fallback for very recent papers (< ~2 we - Network accessline 312
judge *context*); `WebFetch https://doi.org/<doi>` to confirm the DOI resolves to - Network accessline 322
"smith2024bar": { "dblp_fuzzy_top": [{"title": "...", "authors": ["..."], "venue": "...", "year": 2024, "doi": "...", "url": "https://dblp.org/..."}], - Network accessline 323
"dblp_fuzzy_top": [{"title": "...", "authors": ["..."], "venue": "...", "year": 2024, "doi": "...", "url": "https://dblp.org/..."}], "venue_info": {"venue": "...", "type": "Conference or Workshop"}, - Network accessline 324
"year": 2024, "doi": "...", "url": "https://dblp.org/..."}], - Network accessline 493
"finding_id": "F001", "skill": "citation-forensics", "pattern_id": "HP-CITE-CONTEXT", "title": "Self-refinement work cited for the opposite of what it shows", "description": "The sentence cites \\cite{madaan2023selfrefine} to support th - Network accessline 494
"title": "Self-refinement work cited for the opposite of what it shows", "description": "The sentence cites \\cite{madaan2023selfrefine} to support that self-feedback yields correlated errors. The cited paper (Self-Refine, NeurIPS 2023; D - Network accessline 495
"description": "The sentence cites \\cite{madaan2023selfrefine} to support that self-feedback yields correlated errors. The cited paper (Self-Refine, NeurIPS 2023; DBLP https://dblp.org/... confirms title/venue/authors; abstract in resoluti
skills/consistency-audit/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, mcp__codex__codex
skills/eval-design-forensics/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, Grep, Glob, WebSearch, WebFetch, mcp__codex__codex
skills/evidence-ledger/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, Grep, Glob, mcp__codex__codex - Network accessline 118
PAPER_ID="${ARG//./_}" PAPER_DIR="$(pwd)/.aa_work/$PAPER_ID"; mkdir -p "$PAPER_DIR" ( curl -fsSL "https://arxiv.org/e-print/$ARG" -o "$PAPER_DIR/src.tar" \ - Network accessline 119
PAPER_DIR="$(pwd)/.aa_work/$PAPER_ID"; mkdir -p "$PAPER_DIR" ( curl -fsSL "https://arxiv.org/e-print/$ARG" -o "$PAPER_DIR/src.tar" \ && tar -xf "$PAPER_DIR/src.tar" -C "$PAPER_DIR" 2>/dev/null ) \ - Network accessline 120
( curl -fsSL "https://arxiv.org/e-print/$ARG" -o "$PAPER_DIR/src.tar" \ - Network accessline 121
&& tar -xf "$PAPER_DIR/src.tar" -C "$PAPER_DIR" 2>/dev/null ) \ || curl -fsSL "https://arxiv.org/pdf/$ARG.pdf" -o "$PAPER_DIR/paper.pdf" # source preferred (better spans) else - Network accessline 122
|| curl -fsSL "https://arxiv.org/pdf/$ARG.pdf" -o "$PAPER_DIR/paper.pdf" # source preferred (better spans)
skills/experiment-forensics/SKILL.md
skills/novelty-duplication-advisory/SKILL.md
skills/presentation-signals/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, mcp__codex__codex
skills/proof-derivation-forensics/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, mcp__codex__codex
tools/adjudicate_findings.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3
tools/attach_refutation.py
tools/build_claim_ledger.py
tools/build_manifest.py
tools/check_ai_style.py
tools/check_numeric_consistency.py
tools/check_presentation.py
tools/check_stat_consistency.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Dangerous shell operationline 89
r"|\b(?:test|eval(?:uation)?|held[- ]?out|dev|validation)\s*set\s*of\s*(\d{1,7})\b" - Dangerous shell operationline 89
r"|\b(?:test|eval(?:uation)?|held[- ]?out|dev|validation)\s*set\s*of\s*(\d{1,7})\b"
tools/select_primary_pdf.py
workflows/anti-autoresearch/SKILL.md
- Broad permissionsline 1
Bash(*), Read, Write, Grep, Glob, Skill, WebSearch, WebFetch, mcp__codex__codex, mcp__mcp-dblp__search, mcp__mcp-dblp__fuzzy_title_search, mcp__mcp-dblp__get_venue_info - Network accessline 278
PAPER_DIR="$(pwd)/aar-$ID"; mkdir -p "$PAPER_DIR" # LaTeX source first (best spans → L1). e-print may be a tarball OR a single gzipped .tex. if curl -fsSL "https://arxiv.org/e-print/$ID" -o "$PAPER_DIR/src.tgz"; then - Network accessline 279
# LaTeX source first (best spans → L1). e-print may be a tarball OR a single gzipped .tex. if curl -fsSL "https://arxiv.org/e-print/$ID" -o "$PAPER_DIR/src.tgz"; then tar -xzf "$PAPER_DIR/src.tgz" -C "$PAPER_DIR" 2>/dev/null \ - Network accessline 280
if curl -fsSL "https://arxiv.org/e-print/$ID" -o "$PAPER_DIR/src.tgz"; then - Network accessline 283
fi if ! ls "$PAPER_DIR"/*.tex >/dev/null 2>&1; then # fallback: PDF → text (L0) curl -fsSL "https://arxiv.org/pdf/$ID.pdf" -o "$PAPER_DIR/paper.pdf" \ - Network accessline 284
if ! ls "$PAPER_DIR"/*.tex >/dev/null 2>&1; then # fallback: PDF → text (L0) curl -fsSL "https://arxiv.org/pdf/$ID.pdf" -o "$PAPER_DIR/paper.pdf" \ && pdftotext -layout "$PAPER_DIR/paper.pdf" "$PAPER_DIR/paper.txt" - Network accessline 285
curl -fsSL "https://arxiv.org/pdf/$ID.pdf" -o "$PAPER_DIR/paper.pdf" \ - Dangerous shell operationline 479
from a PDF. Its full line-by-line code audit only fires at **L2**; the eval `file:line`
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 76 facts
- Broad permissions in the frontmatter of the SKILL.mdadversarial-case-builder/SKILL.md:1High confidence
- Broad permissions in the frontmatter of the SKILL.mdai-style-impressions/SKILL.md:1High confidence
- Broad permissions in the frontmatter of the SKILL.mdbaseline-comparison-audit/SKILL.md:1High confidence
- Network access in code of the SKILL.mdbaseline-comparison-audit/SKILL.md:320High confidence
- Network access in code of the SKILL.mdbaseline-comparison-audit/SKILL.md:321High confidence
- Network access in code of the SKILL.mdbaseline-comparison-audit/SKILL.md:322High confidence
- Broad permissions in the frontmatter of the SKILL.mdcitation-forensics/SKILL.md:1High confidence
- Network access in prose of the SKILL.mdcitation-forensics/SKILL.md:308Low confidence
- Network access in prose of the SKILL.mdcitation-forensics/SKILL.md:309Low confidence
- Network access in prose of the SKILL.mdcitation-forensics/SKILL.md:310Low confidence
- Network access in prose of the SKILL.mdcitation-forensics/SKILL.md:311Low confidence
- Network access in prose of the SKILL.mdcitation-forensics/SKILL.md:312Low confidence
- Network access in code of the SKILL.mdcitation-forensics/SKILL.md:322High confidence
- Network access in code of the SKILL.mdcitation-forensics/SKILL.md:323High confidence
- Network access in code of the SKILL.mdcitation-forensics/SKILL.md:324High confidence
- Network access in code of the SKILL.mdcitation-forensics/SKILL.md:493High confidence
- Network access in code of the SKILL.mdcitation-forensics/SKILL.md:494High confidence
- Network access in code of the SKILL.mdcitation-forensics/SKILL.md:495High confidence
- Broad permissions in the frontmatter of the SKILL.mdconsistency-audit/SKILL.md:1High confidence
- Broad permissions in the frontmatter of the SKILL.mdeval-design-forensics/SKILL.md:1High confidence
- Broad permissions in the frontmatter of the SKILL.mdevidence-ledger/SKILL.md:1High confidence
- Network access in code of the SKILL.mdevidence-ledger/SKILL.md:118High confidence
- Network access in code of the SKILL.mdevidence-ledger/SKILL.md:119High confidence
- Network access in code of the SKILL.mdevidence-ledger/SKILL.md:120High confidence
- Network access in code of the SKILL.mdevidence-ledger/SKILL.md:121High confidence
- Network access in code of the SKILL.mdevidence-ledger/SKILL.md:122High confidence
- Broad permissions in the frontmatter of the SKILL.mdexperiment-forensics/SKILL.md:1High confidence
- Dangerous shell operation in prose of the SKILL.mdexperiment-forensics/SKILL.md:34Low confidence
- Broad permissions in the frontmatter of the SKILL.mdnovelty-duplication-advisory/SKILL.md:1High confidence
- Dangerous shell operation in code of the SKILL.mdnovelty-duplication-advisory/SKILL.md:740High confidence
- Broad permissions in the frontmatter of the SKILL.mdpresentation-signals/SKILL.md:1High confidence
- Broad permissions in the frontmatter of the SKILL.mdproof-derivation-forensics/SKILL.md:1High confidence
- Executable script in code of a file that runstools/adjudicate_findings.py:1High confidence
- Executable script in code of a file that runstools/adjudicate_findings.py:1High confidence
- Executable script in code of a file that runstools/adjudicate_findings.py:1High confidence
- Executable script in code of a file that runstools/adjudicate_findings.py:1High confidence
- Executable script in code of a file that runstools/adjudicate_findings.py:1High confidence
- Executable script in code of a file that runstools/adjudicate_findings.py:1High confidence
- Executable script in code of a file that runstools/adjudicate_findings.py:1High confidence
- Executable script in code of a file that runstools/adjudicate_findings.py:1High confidence
- Executable script in code of a file that runstools/adjudicate_findings.py:1High confidence
- Executable script in code of a file that runstools/adjudicate_findings.py:1High confidence
- Executable script in code of a file that runstools/adjudicate_findings.py:1High confidence
- Executable script in code of a file that runstools/adjudicate_findings.py:1High confidence
- Executable script in code of a file that runstools/attach_refutation.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuetools/attach_refutation.py:70Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuetools/attach_refutation.py:71Low confidence
- Executable script in code of a file that runstools/build_claim_ledger.py:1High confidence
- Executable script in code of a file that runstools/build_claim_ledger.py:1High confidence
- Executable script in code of a file that runstools/build_claim_ledger.py:1High confidence
and 26 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Frontmatter field argument-hint in skills/adversarial-case-builder/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/adversarial-case-builder/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/adversarial-case-builder/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/adversarial-case-builder/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/adversarial-case-builder/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/adversarial-case-builder/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.