Mmcp.market

integrity-forensics skill

by wanshuiyin·wanshuiyin/Auto-claude-code-research-in-sleep·17k stars·MIT

Run the Anti-Autoresearch integrity-forensics DETERMINISTIC slice (numeric core + rules-only reporter) against a paper via a SHA-pinned thin launcher, then convert the verdict into a typed policy gate (BLOCK/WARN/NO_NEW_BLOCKER) and an append-only obligations ledger. Codex-native limitation: upstream ships no Codex-native auditor pack, so the full nine-dimension semantic sweep requires a Claude Code session — this pack runs the honestly-scoped deterministic-only mode (it can flag, it can never say CLEAN). Use when user says \"integrity forensics\", \"forensic audit this paper\", \"投稿前自查诚信\".

A100/100content scan

Is the integrity-forensics skill safe?

Clean: nothing in its files matched our rules. We read 1 file in the folder on 2026-09-28.

No findings.

Install the integrity-forensics skill

A skill is a folder. Copy it into your agent's skills folder and the agent loads it when the task matches its description.

git clone --depth 1 https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git /tmp/Auto-claude-code-research-in-sleep
mkdir -p ~/.claude/skills
cp -r /tmp/Auto-claude-code-research-in-sleep/skills/skills-codex/integrity-forensics ~/.claude/skills/integrity-forensics
available in every project

In the Claude apps, zip the folder and upload it from the Skills settings. The folder on GitHub

The instructions your agent would load

SKILL.md as published, without the frontmatter. Read it on GitHub

Integrity Forensics — thin launcher (Codex-native: deterministic slice)

Audit target: $ARGUMENTS

Same launcher doctrine as the mainline skill: SHA-pin, upstream eval-gate

validation per pin, delegate unchanged, no vendoring, no forking, **no

reviewer knobs**. The one Codex-native difference: upstream's nine auditor

skills are Claude-Code contracts, so this pack runs upstream's

deterministic-only mode — the numeric forensic core (GRIM / GRIMMER /

statcheck / delta arithmetic) plus the rules-only reporter with an

all-review_unavailable coverage map. That mode is honestly scoped by

upstream: it can raise HARD/SOFT flags; it can NEVER return

CLEANGIVENEVIDENCE. Translating upstream's reviewer calls into

spawn_agent would REWRITE an upstream contract — forbidden.

Constants

tracks HEAD; bumping is a reviewed change (mainline Pin-bump checklist).

  • ANTIARREPO = https://github.com/wanshuiyin/Anti-Autoresearch.git
  • ANTIARCOMMIT = b47af6f983b38347b6d2110379e266400597cf66 — never

~/.claude/anti-autoresearch is unused; move it and its .arisevalok_* receipt to keep an offline deterministic-only run working — this pack's own mode — otherwise delete it whenever convenient.

  • CLONEDIR = ~/.aris/anti-autoresearch** — host-neutral. An older clone at
  • NO REVIEWER KNOBS — and no — effort: mapping onto upstream settings.

Step 0 — Bootstrap the pin (identical to mainline)

CLONE_DIR="$HOME/.aris/anti-autoresearch"
ANTI_AR_COMMIT="b47af6f983b38347b6d2110379e266400597cf66"
mkdir -p "$HOME/.aris"
if [ ! -d "$CLONE_DIR/.git" ]; then
    git clone --no-checkout https://github.com/wanshuiyin/Anti-Autoresearch.git "$CLONE_DIR"
fi
git -C "$CLONE_DIR" cat-file -e "$ANTI_AR_COMMIT^{commit}" 2>/dev/null \
    || git -C "$CLONE_DIR" fetch -q origin
git -C "$CLONE_DIR" checkout -qf "$ANTI_AR_COMMIT" || { echo "FATAL: cannot checkout pin"; exit 1; }
# pristine tree at the pin — local tampering (incl. nested-repo injections;
# hence double -f) must not run under the pin's name; verify, don't assume
git -C "$CLONE_DIR" reset --hard -q "$ANTI_AR_COMMIT" || { echo "FATAL: reset failed"; exit 1; }
git -C "$CLONE_DIR" clean -ffdxq || { echo "FATAL: clean failed"; exit 1; }
[ -z "$(git -C "$CLONE_DIR" status --porcelain)" ] || { echo "FATAL: tree not pristine"; exit 1; }
# marker OUTSIDE the clone (a marker inside a tamperable tree proves nothing)
MARKER="${CLONE_DIR}.aris_eval_ok_${ANTI_AR_COMMIT}"
if [ ! -f "$MARKER" ]; then
    ( cd "$CLONE_DIR" && python3 eval/run_eval.py ) || {
        echo "FATAL: upstream eval gate FAILED at pin — refusing an unvalidated pin"; exi

Step 1 — Delegate: upstream deterministic-only mode, unchanged

Open $CLONEDIR/workflows/anti-autoresearch/SKILL.md and follow its deterministic-only path (its own documented degraded mode): Step 0 ingest → Step 1 evidence ledger → deterministic auditors → adjudication with the generated all-reviewunavailable coverage map. Wrapper rules: run every upstream bash block with cd "$CLONE_DIR" (upstream self-locates via git rev-parse --show-toplevel); refer to the paper by ABSOLUTE path; never rewrite upstream outputs.

Expected outcome: report.json whose verdict is HARDFLAGS / SOFTFLAGS / REVIEWUNAVAILABLE — by construction never CLEANGIVEN_EVIDENCE.

Step 2 — Typed gate + obligations

Resolve forensics_gate.py via the canonical helper chain (shared-references/integration-contract.md §2, Policy A), then:

python3 "$GATE_HELPER" evaluate --report "$PAPER_DIR/report.json" --paper-dir "$PAPER_DIR" \
    --anti-ar-commit "$ANTI_AR_COMMIT" --executor-model "codex-gpt-6-astra"

Policy: HARDFLAGS → BLOCK · REVIEWUNAVAILABLE → BLOCK (which a deterministic-only run reports whenever it found no flags — the semantic dimensions never ran, so nothing may wave the paper through) · SOFTFLAGS → WARN. The gate records same-family proposal provenance for a Codex executor — informational: this gate only raises flags, it grants nothing. The downstream preflight is ONE command: python3 "$GATEHELPER" fresh --paper-dir "$PAPERDIR" --anti-ar-commit "$ANTIARCOMMIT" — exit 0 ⟺ produced at the current pin ∧ gate exists ∧ paper unchanged since ∧ gate matches the current ledger ∧ decision pass-capable (WARN/NONEW_BLOCKER), where the decision is RE-computed from the sha-verified archived report + live ledger (the stored token is display, not authority). Any ledger mutation deletes the standing gate.json, and evaluate refuses a report older than any paper file — neither a stale pass nor a stale report can be replayed.

Step 3 — Fix what it found

Identical obligations discipline to the mainline skill: append-only ledger, UNRESOLVEDDISAPPEARANCE on vanished-but-unresolved findings, typed + hashed resolve receipts (corrected-from-results | claim-narrowed | claim-withdrawn | citation-replaced; --verified-by must be typed provenance — human: / checker: / cross-family-review: — and the evidence file is RE-hashed on every later gate), human-only waive (never a resolution), and The One Forbidden Loop**: never "edit → re-sweep → repeat until it stops flagging". Numeric obligations route to the result files; the rest to the matching audit skill or the human.

More skills from wanshuiyin/Auto-claude-code-research-in-sleep

  • Aablation-plannerUse when main results pass result-to-claim (claim_supported=yes or partial) and ablation studies are needed for paper submission.
  • Aablation-plannerUse when main results pass result-to-claim (`claim_supported = yes` or `partial`) and ablation studies are needed for paper submission. A secondary Codex agent designs ablations from a reviewer's perspective; the local executor reviews feasibility and implements.
  • AalphaxivQuick single-paper lookup via AlphaXiv LLM-optimized summaries with tiered source fallback. Use when user says "explain this paper", "summarize paper", pastes an arXiv/AlphaXiv URL, or provides a bare arXiv ID for quick understanding - not for broad literature search.
  • AalphaxivQuick single-paper lookup via AlphaXiv LLM-optimized summaries with tiered source fallback. Use when user says "explain this paper", "summarize paper", pastes an arXiv/AlphaXiv URL, or provides a bare arXiv ID for quick understanding - not for broad literature search.
  • Aanalyze-resultsAnalyze ML experiment results, compute statistics, generate comparison tables and insights. Use when user says "analyze results", "compare", or needs to interpret experimental data.
  • Aanalyze-resultsAnalyze ML experiment results, compute statistics, generate comparison tables and insights. Use when user says \"analyze results\", \"compare\", or needs to interpret experimental data.
  • AarxivSearch, download, and summarize academic papers from arXiv. Use when user says "search arxiv", "download paper", "fetch arxiv", "arxiv search", "get paper pdf", or wants to find and save papers from arXiv to the local paper library.
  • AarxivSearch, download, and summarize academic papers from arXiv. Use when user says \"search arxiv\", \"download paper\", \"fetch arxiv\", \"arxiv search\", \"get paper pdf\", or wants to find and save papers from arXiv to the local paper library.
  • Aauto-paper-improvement-loopAutonomously improve a generated paper via GPT-6-Astra xhigh review → implement fixes → recompile, for 2 rounds. Use when user says \"改论文\", \"improve paper\", \"论文润色循环\", \"auto improve\", or wants to iteratively polish a generated paper.
  • Aauto-paper-improvement-loopAutonomously improve a generated paper via Claude review through claude-review MCP → implement fixes → recompile, for 2 rounds. Use when user says \"改论文\", \"improve paper\", \"论文润色循环\", \"auto improve\", or wants to iteratively polish a generated paper.
  • Aauto-paper-improvement-loopAutonomously improve a generated paper via Gemini review through gemini-review MCP → implement fixes → recompile, for 2 rounds. Use when user says \"改论文\", \"improve paper\", \"论文润色循环\", \"auto improve\", or wants to iteratively polish a generated paper.
  • Aauto-paper-improvement-loopAutonomously improve a generated paper via GPT-6-Astra xhigh review → implement fixes → recompile, for 2 rounds. Use when user says \"改论文\", \"improve paper\", \"论文润色循环\", \"auto improve\", or wants to iteratively polish a generated paper.

All agent skills → · MCP servers