integrity-auditor
论文诚信审计——对一篇论文(外部 PDF/DOI/arXiv 或本地写作产出)做图像误用、数值异常、逻辑缺口三轨证据审计,产出 Level 1–4 分级、可复核的 audit_report.md。用于投稿前自查、审稿前评估、对 AI 生成内容做"数字有没有来源、图表有没有被动过"级核验。触发:integrity…
Skill by deyi2026
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/deyi2026-integrity-auditor
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, security, research
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/integrity-auditor
What's inside
- Skill name
integrity-auditor- Description
- 论文诚信审计——对一篇论文(外部 PDF/DOI/arXiv 或本地写作产出)做图像误用、数值异常、逻辑缺口三轨证据审计,产出 Level 1–4 分级、可复核的 audit_report.md。用于投稿前自查、审稿前评估、对 AI 生成内容做"数字有没有来源、图表有没有被动过"级核验。触发:integrity audit、论文审计、查数据真实性、图表查重、数字对不上、诚信检查。
- License
- MIT
- Metadata
- adapted-for: llm-first-loop(2026-10-10) · vendored-from: ai4s-research/ai4s-skills@744ab20
- Instructions
- 213 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Instructions call the network
Files (22)
- LICENSE
- SKILL.md
- README.md · forensics_tools/
- bilingual_cn_geography.json · forensics_tools/
- channel_check.py · forensics_tools/
- decimal_match.py · forensics_tools/
- image_dup.py · forensics_tools/
- image_dup_orb.py · forensics_tools/
- magnitude_consistency.py · forensics_tools/
- panel_split.py · forensics_tools/
- requirements.txt · forensics_tools/
- xlsx_aggregate_consistency.py · forensics_tools/
- 00-incremental-execution.md · references/
- 01-image-evidence.md · references/
- 02-numerical-evidence.md · references/
- 02a-supplement-acquisition.md · references/
- 02b-ml-paper-arithmetic.md · references/
- 03-logical-evidence.md · references/
- 04-evidence-grading.md · references/
- 05-quality-gate.md · references/
- audit_report.md · templates/
- smoketest.sh · tests/
SKILL.md (first lines)
# Integrity Auditor
> **LFL 本地化说明(2026-10-10)**:源自 ai4s-research/ai4s-skills@744ab2049a7b52ae726c43313468fd518b330980(MIT,LICENSE 随附)。依赖事实:审计方法论(references/ 00–05)为核心、无外部依赖;forensics_tools/ 中 numpy / Pillow / openpyxl 本机已装,opencv-python 未装——涉及 ORB 图像查重的工具缺它时跳过并在报告中如实声明,不影响审计主体流程。
## Overview
Paper-integrity audit package. **Single stage, full quality from the start.** The agent reads each reference, then carries out three evidence tracks (image / numerical / logical) and produces a structured `audit_report.md` with Level 1–4 graded findings.
This skill ships no LLM SDK — it is the skill instructions, references, templates, and single-purpose `forensics_tools/` only.
The substantive work is decomposed into reference playbooks under `references/`:
| Reference | Topic |
|---|---|
| `references/00-incremental-execution.md` | how to do this without losing work: batches, persistence, resume — **read first** |
| `references/01-image-evidence.md` | image evidence: panel split, dup detection, rotate/flip alignment, Western-blot continuity |
| `references/02-numerical-evidence.md` | numerical evidence: n-consistency, mean/SD/SEM recompute, P-value sanity, decimal trail, Benford with caveats, deterministic-column-pair and last-digit chi-square sweepers, variance-reporting consistency |
| `references/02a-supplement-acquisition.md` | publisher CDN routes: how to get hi-res figures and source-data XLSXs even when the article PDF is paywalled |
| `references/02b-ml-paper-arithmetic.md` | ML / non-biology papers: arithmetic re-derivation of every quoted improvement against tabulated benchmark cells; leaderboard archive routes |
| `references/03-logical-evidence.md` | logical evidence: conclusion-chain compression, missing controls, replication gap |
| `references/04-evidence-grading.md` | 4-level finding grading + reviewable-evidence format (DOI / figure-id / pointer / transformation / requested raw data) |
| `references/05-quality-gate.md` | self-check before delivery |
Also:
- `templates/audit_report.md` — report skeleton the agent fills.
- `forensics_tools/image_dup.py` — perceptual-hash (dHash + aHash) duplicate detector for figure / panel PNGs. Single-purpose pure-Python utility (Pillow only). Catches untransformed dups.
- `forensics_tools/image_dup_orb.py` — ORB feature-matching duplicate detector with horizontal-flip augmentation. Catches **transformed** dups (rotation / flip / crop / brightness change) that perceptual hashing misses. Pair with `image_dup.py`: use phash first, escalate to ORB when phash distance is suspicious-but-inconclusive (16–60 range). Deps: OpenCV + NumPy.
- `forensics_tools/panel_split.py` — whitespace-gutter panel splitter. Pair with `image_dup.py` / `image_dup_orb.py` for cross-panel duplicate detection; whole-figure phash without panel splitting almost never finds anything.
- `forensics_tools/channel_check.py` — RGB channel-content classifier (DAPI / Flag / Merge / other) for fluorescence sub-images. Catches within-panel label swaps (e.g., a "DAPI" sub-image that is actually a Merge); cross-panel phash cannot catch this class.
- `forensics_tools/decimal_match.py` — cross-cell last-N-decimal matching sweeper for source-data XLSX. Detects fabrication where many distinct values share trailing decimal patterns (Kang Tiebang whistleblower class). Single-purpose pure-Python utility (openpyxl only). See `references/02-numerical-evidence.md` Check 1.5.
- `forensics_tools/magnitude_consistency.py` — supplement-text vs source-data XLSX unit/scale consistency. Catches unit-confusion (TWh vs GWh, mM vs µM, MHz vs Hz, etc.) and order-of-magnitude transcription errors via entity-overlap + literal-value matching across a generic SI-prefix-aware unit taxonomy covering energy / power / mass / length / area / volume / time / voltage / current / frequency / pressure / concentration / amount / force / dose / genomics-bp / CO2 / currency. Cross-family pairs (e.g., kV vs TWh) are automatically rejected. Pair with `bilingual_cn_geography.json` (or your own JSON map) for cross-language entity matching. Empirical baseline: Hu et al. 2026 Nature Tongyu county 1000× unit error. See `references/02-numerical-evidence.md` Check 1.6.
- `forensics_tools/xlsx_aggregate_consistency.py` — cross-XLSX same-quantity sum/row consistency. Detects when two source-data tables in the same paper purport to carry the same aggregate quantity but disagree by a small systematic margin (e.g., Hu et al. 2026 Nature MOESM3 vs MOESM6 1110.78 vs 1103.89 TWh, 0.62 percent diff, all 31 provinces same sign). Reuses the unit taxonomy from `magnitude_consistency.py`. Empirical baseline same paper Level 1 finding. See `references/02-numerical-evidence.md` Check 1.7.
- `tests/smoketest.sh` — < 30-second pre-commit gate. Compiles every script, runs every `--help` (catches argparse `%` bugs), and runs positive + negative controls for `decimal_match`, `magnitude_consistency`, and `xlsx_aggregate_consistency`. Run before every change.
- See `forensics_tools/README.md` for the design rule that distinguishes utility scripts from forbidden "skeleton → enrich" orchestration, and for the recommended pipeline.
**Read the relevant reference _before_ writing, not after.** The full audit does not fit in a single turn — `references/00-incremental-execution.md` is the only execution mode that completes.
## When to Use
- User hands you a paper (PDF / DOI / arXiv ID) and asks whether the figures / data / logic are trustworthy.
- User wants a quality gate on outputs from a local paper-writer run (slug-based).
- Reviewer / investigator wants a reviewable-evidence document to forward to authors or an integrity body.
## When NOT to Use
- User wants to write a paper → `paper-writer`.
- User wants to build / run an experiment → `experiment-suite`.
- User wants a literature survey → `literature-survey`.
- User wants a verdict ("is this fraud?") — this skill produces evidence and grading, never verdicts.
## Workflow
### Step 1 — Identify the input and set up the run
Detect input mode:
| Mode | Trigger | Acquisition |
|---|---|---|
| **PDF path** | local `*.pdf` argument | use directly |
| **DOI / arXiv ID** | `10.xxxx/...`, `arXiv:NNNN.NNNNN` | `WebFetch` landing page; record DOI / arXiv URL and abstract; download PDF if open-access |
| **Local paper-writer slug** | matches `output/paper-writer/<slug>/latest/` | use slug directly; also read `output/experiment-suite/<slug>/latest/` if present |
Compute slug:
```bash
TITLE_OR_ID="<input identifier>"
SLUG=$(python3 -c "import re,hashlib,sys; t=sys.argv[1]; n=re.sub(r'[\\s_]+','-',re.sub(r'[^\\w\\s-]','',t.lower().strip())).strip('-')[:40].rstrip('-'); h=hashlib.sha1(t.encode()).hexdigest()[:8]; print(f'{n}-{h}')" "$TITLE_OR_ID")
# For local-slug mode, set SLUG to the existing paper-writer slug directly.
TS=$(date +%Y-%m-%d_%H%M%S)
RUN=output/integrity-auditor/$SLUG/$TS
mkdir -p "$RUN/findings/image" "$RUN/findings/numerical" "$RUN/findings/logical"
ln -sfn "$TS" "output/integrity-auditor/$SLUG/latest"
```
In commands below `$RUN` = `output/integrity-auditor/<slug>/latest`.
### Step 2 — Gather materials into the run
**Open `references/02a-supplement-acquisition.md` first if the input is a DOI / arXiv ID / external PDF reference.** Many publishers (Nature / Springer being the canonical example) gate the article body behind a paywall while serving the supplementary tables, source data, and hi-res figures on **open CDN endpoints**. Never conclude "paywalled, audit blocked" before trying the supplement / figure CDN routes.
Acquisition order (try every step; do not stop early):
1. **Article HTML landing page** — usually open even when PDF is gated. `curl -sL -A "Mozilla/5.0" "<article URL>" -o $RUN/paper.html`. This page typically embeds the abstract, all main-figure captions, and direct CDN URLs for every supplementary file and high-resolution figure.
2. **Harvest CDN URLs from the HTML**: `grep -oE 'https?://[^"]*(MOESM|Fig[0-9]_HTML|mmc|MEDIA)\.(?:pdf|xlsx|docx|png)' $RUN/paper.html | sort -u`. Download every distinct URL into `$RUN/supplementary/` and `$RUN/figures_hires/`.
3. **Author Correction PDF** — `curl -sL -A "Mozilla/5.0" "<correction URL>.pdf" -o $RUN/correction.pdf` then `file $RUN/correction.pdf` to confirm it is a real PDF (not HTML auth wall).
3a. **CRITICAL — the correction's own supplementary** — fetch the correction's landing HTML, grep for its `MOESM` supplementary URLs (separate DOI namespace from the parent article), download every one. These often contain the **pre-correction** originals of replaced figures. See `references/02a-supplement-acquisition.md` for the exact recipe. Empirical baseline: the Wang Ping 2025 Nature audit only surfaced its image-track Level 4 finding because the correction's `MOESM1_ESM.pdf` carried the original (pre-correction) Fig 2 and Extended Data Figs 7, 10.
4. **Article PDF** — `curl -sL -A "Mozilla/5.0" "<article URL>.pdf" -o $RUN/paper.pdf` then `file $RUN/paper.pdf`. If gated, record that fact in the manifest and continue with whatever the earlier steps acquired.
5. **For a local paper-writer slug only**: read the matching `results.json`, `data_contract.md`, `figures/manifest.json`, `bibliography.bib`.
Write `$RUN/input_manifest.md` listing every artefact actually acquired. At minimum it must enumerate what was downloaded and what was attempted-but-blocked.
Extract structured material:
```bash
# Text (every numeric claim, caption, figure reference will be greppable later)
pdftotext -layout "$PDF" "$RUN/paper.txt"
# Panels (one .png / .ppm per embedded raster image)
mkdir -p "$RUN/panels"
pdfimages -all "$PDF" "$RUN/panels/page"
N_RASTER=$(ls "$RUN/panels" 2>/dev/null | wc -l)
# Fallback for vector-figure papers (e.g., paper-writer outputs):
# pdfimages only extracts embedded raster images; a paper built from matplotlib
# vector PDFs through \includegraphics will yield zero panels here. In that case,
# render each page to a PNG so visual inspection is still possible.
if [ "$N_RASTER" -eq 0 ]; then
pdftoppm -r 150 "$PDF" "$RUN/panels/page" -png
fi
# For a local paper-writer slug audit, also pull the production-side figure PDFs directly
# (these are the originals, before LaTeX embedding):
if [ "$INPUT_MODE" = "slug" ]; then
mkdir -p "$RUN/figures_from_suite"
cp output/experiment-suite/$SLUG/latest/figures/*.pdf "$RUN/figures_from_suite/" 2>/dev/null
cp output/experiment-suite/$SLUG/latest/figures/manifest.json "$RUN/figures_from_suite/" 2>/dev/null
fiFrom deyi2026/llm-first-loop, MIT.
More from deyi2026/llm-first-loop
- 0.589score
anonymize-paper
deyi2026
双盲匿名深扫 + camera-ready 干净还原——投稿前扫尽泄漏面(作者块/grant 致谢/PDF 元数据/第一人称自引/仓库与主页链接/LaTeX 注释/.bib 注释/主目录路径/补充材料),自带 stdlib…
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
fit-page-limit
deyi2026
篇幅达标规划——论文超页限或篇幅不足时,逐节量化"长度去哪了",给出优先级方案:压缩/移附录哪些低价值节、补实哪些薄弱节,同时保护贡献、结果与引用;不删证据、不为凑页注水。触发:超页限、页数超了、压缩论文、该删哪里、trim、over the page limit、too long、too short、fit…
SkillAFreshness: A★ 1Claude Code +9 - 0.588score
gzh-design
deyi2026
微信公众号文章排版引擎,将 Markdown 转换为可直接粘贴到公众号编辑器的 HTML。主题风格从 references/theme-index.md 注册的自定义主题库中选取,自动章节编号、关键词下划线标记、引言卡片、目录导航、代码块、图片/GIF、作者签名。支持 Markdown / Word(.docx)…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
assess-paper
deyi2026
论文整体健康度评估——"我这论文现在什么水平/能不能投/先改哪里/优缺点"时使用。编排本仓库已装的 preflight-check、verify-citations、anonymize-paper、fit-page-limit 做桌拒合规/引用/匿名/篇幅检查,汇总成一份先优点、再风险、带优先级修改清单的…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
method-ab-experiment
deyi2026
设计或审查模型、Agent、缓存、上下文、工具策略、runtime 优化的 A/B/qualification 实验时使用。用于锁唯一自变量、隔离 cache/session/evidence/model residency 等跨 run…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
method-candidate-ab-validity-trigger-confound
deyi2026
A/B qualification candidate distilled verbatim by Qwen3.8-27B from the working-set receipts teacher episode; experimental candidate only, not promoted.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
method-candidate-current-callsite-refresh
deyi2026
Repo/API candidate distilled verbatim by Qwen3.8-27B from the parallel-line stale-callsite teacher episode; experimental candidate only, not promoted.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
method-candidate-hydrate-trace
deyi2026
Qwen3.8-27B 从离线网页绕路 episode 经 teacher exemplar 蒸馏出的实验 candidate;仅用于独立 transfer qualification,不代表已 promotion。适用于当前页面是 loading shell 且显式引用可能负责加载目标内容的脚本时,测试是否应先沿…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
method-candidate-relative-clock-never-state
deyi2026
Root Cause candidate distilled verbatim by Qwen3.8-27B from the fresh-process relative-clock sentinel teacher episode; experimental candidate only, not…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
code-nav
deyi2026
使用仓库已有的 Pyright language server 做 Python 跨文件语义导航。用于改函数前确认调用者/被调用者、收敛 grep 结果到真实语义引用、检查符号爆炸半径,或在陌生模块里追踪引用链。必须通过 readiness gate 才接受语义结果;把 LSP semantic scope 与…
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
merge-review-gate
deyi2026
合并 main 审查闸(RULE-AI-34)——分支 Goal/任务收口前的专门合并审查子代理任务书:核完成证据、核分支卫生、核 main 基线、批准并入 main、落盘回执
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
humanizer-zh-next
deyi2026
编辑或审阅已有中文文本中的空话、重复和模板化表达,保留原意、事实、确定程度和作者声音。 主文件包含通用表达模式、中文句式、体裁判断、作者样本使用和文件保护,适用于去 AI 腔与自然化润色。 商务营销、论文与审稿回复、基金申请分别按需加载专用 reference。用于写作质量编辑,不判定作者身份。
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 10, 2026 (20 days ago)
- Last release
- Oct 22, 2026 (8 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/deyi2026/llm-first-loop
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from deyi2026
- 0.589score
fit-page-limit
deyi2026
篇幅达标规划——论文超页限或篇幅不足时,逐节量化"长度去哪了",给出优先级方案:压缩/移附录哪些低价值节、补实哪些薄弱节,同时保护贡献、结果与引用;不删证据、不为凑页注水。触发:超页限、页数超了、压缩论文、该删哪里、trim、over the page limit、too long、too short、fit…
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
anonymize-paper
deyi2026
双盲匿名深扫 + camera-ready 干净还原——投稿前扫尽泄漏面(作者块/grant 致谢/PDF 元数据/第一人称自引/仓库与主页链接/LaTeX 注释/.bib 注释/主目录路径/补充材料),自带 stdlib…
SkillAFreshness: A★ 1Claude Code +9 - 0.588score
gzh-design
deyi2026
微信公众号文章排版引擎,将 Markdown 转换为可直接粘贴到公众号编辑器的 HTML。主题风格从 references/theme-index.md 注册的自定义主题库中选取,自动章节编号、关键词下划线标记、引言卡片、目录导航、代码块、图片/GIF、作者签名。支持 Markdown / Word(.docx)…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
method-ab-experiment
deyi2026
设计或审查模型、Agent、缓存、上下文、工具策略、runtime 优化的 A/B/qualification 实验时使用。用于锁唯一自变量、隔离 cache/session/evidence/model residency 等跨 run…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
assess-paper
deyi2026
论文整体健康度评估——"我这论文现在什么水平/能不能投/先改哪里/优缺点"时使用。编排本仓库已装的 preflight-check、verify-citations、anonymize-paper、fit-page-limit 做桌拒合规/引用/匿名/篇幅检查,汇总成一份先优点、再风险、带优先级修改清单的…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
method-candidate-ab-validity-trigger-confound
deyi2026
A/B qualification candidate distilled verbatim by Qwen3.8-27B from the working-set receipts teacher episode; experimental candidate only, not promoted.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
integrity-auditor skill. Agent Mart. https://agentmart.dev/skills/deyi2026-integrity-auditor (last updated 2026-10-24)