Agent skill

Research Integrity Audit

by xuzhougeng in xuzhougeng/wisp-science

学术审查 / research-integrity screening of a manuscript's figures and reported numbers.

AGPL-3.0Auto-check passedDocuments & Office

Install Research Integrity Audit

skills CLI
$ npx skills add xuzhougeng/wisp-science --skill research-integrity-audit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install xuzhougeng/wisp-science research-integrity-audit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/xuzhougeng/wisp-science.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/research-integrity-audit .claude/skills/research-integrity-audit && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
research-integrity-audit
GitHub stars
1k
Token cost
~2.6k tokens
SKILL.md length
1,246 words
Files
8 (incl. scripts, references)
Skills in repo
25
Repo updated
First seen
Licence
AGPL-3.0

At a glance

学术审查 / research-integrity screening of a manuscript's figures and reported numbers.

  • Works in 7 steps: exact inputs, page scope, figure/source… → number of reviewed panels and series,… → methods, whether the SIFT pass actually… → …
  • The user attaches a PDF
  • SKILL.md covers Inputs and workspace, F1. Prepare sources, F2. Verify panel boundaries and F3. Run all-pairs screening, plus 6 more sections
  • Runs Python scripts from its folder

What it does

Research Integrity Audit is an agent skill from xuzhougeng/wisp-science. 学术审查 / research-integrity screening of a manuscript's figures and reported numbers. Finds duplicated, reused, or transformed image panels and data anomalies: copied value blocks, fixed differences/ratios between groups, digit patterns, Benford deviations, GRIM/GRIMMER-inconsistent means and SDs, p-values mismatching their statistics. Use for 学术诚信, 图片查重, 论文图像重复, 数据造假筛查, Source Data 审查, 末位数字, 本福特, GRIM, statcheck, p 值核对, or when the user attaches a PDF, image directory, or CSV/Excel source data to audit.

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including scripts and reference files (for example `references/data-protocol.md`, `references/review-protocol.md` and `scripts/audit_data.py`). Compatibility notes: Python 3.10+. Figure track needs Pillow, NumPy, pypdf, and pypdfium2, plus OpenCV with SIFT for the full feature-matching pass. Data track is standard library…

It sits in Documents & Office, covering Statistics, Excel spreadsheets and CSV and tabular files. It works with Microsoft Excel. The repository describes itself as: Open-source, local-first desktop AI research workbench for scientific computing with Python/R, MCP bioinformatics tools, SSH/WSL/GPU runtimes, and OpenAI/Anthropic models. The licence is AGPL-3.0.

When your agent uses it

  • The user attaches a PDF
  • Image directory
  • CSV/Excel source data to audit

Example prompts

  • “/research-integrity-audit”

Requirements

  • Python 3
  • Compatibility (from SKILL.md): Python 3.10+. Figure track needs Pillow, NumPy, pypdf, and pypdfium2, plus OpenCV with SIFT for the full feature-matching pass. Data track is standard library only, plus openpyxl for .xlsx input.

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. exact inputs, page scope, figure/source and table counts, and unreadable or
  2. number of reviewed panels and series, all-pairs comparisons, and means,
  3. methods, whether the SIFT pass actually ran, and which data checks were
  4. one verdict table covering both tracks: confirmed duplicate,
  5. for figures: panel IDs, source/page, bounding boxes, metrics, and evidence
  6. separately listed quality/uninformative image findings;
  7. limitations, especially uncertain panel boundaries, unsplit lanes,

What it can do on your machine

Read from SKILL.md and the folder at commit 565deb1. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Python), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Python 3.10+. Figure track needs Pillow, NumPy, pypdf, and pypdfium2, plus OpenCV with SIFT for the full feature-matching pass. Data track is standard library only, plus openpyxl for .xlsx input.

    From compatibility in the SKILL.md frontmatter.

Context cost

Research Integrity Audit loads about 2.6k tokens when it runs, and up to ~6k if it reads all its reference files. Until then it costs about 133 tokens; SKILL.md has 1,246 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~133
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from xuzhougeng/wisp-science at commit 565deb1, republished under its AGPL-3.0 licence (© xuzhougeng). 1,246 words, ~2,615 tokens.

Download SKILL.mdSave it as .claude/skills/research-integrity-audit/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
research-integrity-audit
description
学术审查 / research-integrity screening of a manuscript's figures and reported numbers. Finds duplicated, reused, or transformed image panels and data anomalies: copied value blocks, fixed differences/ratios between groups, digit patterns, Benford deviations, GRIM/GRIMMER-inconsistent means and SDs, p-values mismatching their statistics. Use for 学术诚信, 图片查重, 论文图像重复, 数据造假筛查, Source Data 审查, 末位数字, 本福特, GRIM, statcheck, p 值核对, or when the user attaches a PDF, image directory, or CSV/Excel source data to audit.
compatibility
Python 3.10+. Figure track needs Pillow, NumPy, pypdf, and pypdfium2, plus OpenCV with SIFT for the full feature-matching pass. Data track is standard library only, plus openpyxl for .xlsx input.

Research integrity audit

Screen a manuscript's evidence at the smallest meaningful unit: one experimental image panel, or one independently measured data series. Hashes, feature matches, and statistical tests find candidates; they do not establish misconduct, or even duplication, on their own.

Inputs and workspace

Accept a PDF, a directory of manuscript images, and/or source data (CSV, TSV, Excel, or a directory of them). Resolve tagged or attached paths before running anything. Choose tracks from the input and the request:

  • Figure track (scripts/audit_figures.py): PDFs and image directories.
  • Data track (scripts/audit_data.py): Source Data files, supplementary tables, and numeric tables transcribed from the PDF.

A PDF usually warrants both unless the user limits scope. Ask for a page range only when the user did not specify one and scanning the whole PDF would materially change scope.

Create a new analysis directory such as analysis/integrity-audit-YYYYMMDD-HHMM/ with figures/ and data/ as the two script workspaces. Never modify source files, overwrite a prior audit, or silently omit an unreadable file.

Locate both scripts from the resource paths returned by use_skill. If imports fail, load local-env-setup, create a project-local environment, and install the packages named in compatibility. Do not continue with the hash-only figure fallback when the user requested a strict or exhaustive review.

Figure track

F1. Prepare sources

For a PDF:

text
python audit_figures.py prepare --input PAPER.pdf --output AUDIT_DIR/figures --pages "1-40,49-54"

The script extracts qualifying embedded raster images first. It renders a page only when no large embedded image is available and the page looks like a figure page, or when --render-fallback all is explicitly used. Review sources.json, skipped.json, and sources-contact-sheet.png; confirm that every requested figure is represented. A page render still contains captions and page furniture, so crop the figure before panel splitting.

For a directory:

text
python audit_figures.py prepare --input FIGURE_DIR --output AUDIT_DIR/figures

The script recursively inventories supported images, normalizes EXIF orientation into audit copies, and records hashes and original paths. It does not alter the directory.

F2. Verify panel boundaries

prepare writes conservative panel proposals to panels.json. They are only proposals. View every source at full resolution and edit the manifest until:

  • every data-bearing photograph, microscopy field, histology tile, plate, wound, gel/blot region, or other experimental image has its own box;
  • repeated grids are split into individual experimental units, with stable labels such as Fig2-D-r1-c2 rather than anonymous indices;
  • labels, legends, scale bars, and axes are not mistaken for independent data panels;
  • adjacent boxes do not overlap accidentally;
  • expected derivatives share a derivation_group (for example raw channels and merge, overview and inset, or known longitudinal views);
  • kind records the modality when known (microscopy, histology, western-blot, gel, plate, wound, ivis, chart, or schematic).

Run:

text
python audit_figures.py materialize --workspace AUDIT_DIR/figures

Inspect panels-contact-sheet.png immediately. Fix bad crops and rerun. Do not scan until manifest-warnings.json has no unexplained out-of-bounds, duplicate-ID, or overlapping-box warning. Preserve parent/context crops when a tighter data-only crop is needed for matching.

F3. Run all-pairs screening

text
python audit_figures.py scan --workspace AUDIT_DIR/figures --features required

The scan combines exact pixel hashes, perceptual hashes, normalized correlation, and SIFT + RANSAC geometry. It writes candidates.csv, candidates.json, quality-flags.csv, and scan-summary.json. Review every candidate, not only the first page of the table. Re-scan after any crop change.

Automatic scores are triage signals. Repeated labels, axes, membrane grids, plate rims, scale bars, and regular tissue texture often produce false matches. Conversely, different crops, contrast changes, rotation, mirroring, or recompression can hide a duplicate from hashes and global correlation.

F4. Confirm or exclude candidates

Generate evidence for selected pairs or the highest-ranked unresolved pairs:

text
python audit_figures.py evidence --workspace AUDIT_DIR/figures --pair PANEL_A,PANEL_B
python audit_figures.py evidence --workspace AUDIT_DIR/figures --top 20

Inspect the full panels, data-only crops, match-line view, registered red/green overlay, and metrics together. For circular plates or other strong borders, repeat with a tighter interior crop. For blots, compare both whole blot context and protein-by-lane crops. For microscopy, distinguish same-field channel derivation from cross-condition reuse. Consult references/review-protocol.md for modality-specific checks and verdicts.

Never call a pair confirmed from an inlier count or NCC alone. Confirmation requires geometrically consistent correspondence across independent random details in the data region, a plausible transform, visual agreement after registration, and review of the experimental relationship. Record strong negative controls from visually similar nonmatching panels when possible.

F5. Review uninformative images

Treat automated quality flags as prompts. Mark a panel uninformative only for a specific reason such as blank/placeholder content, corruption, unreadably low resolution, a caption mismatch, or unrelated residual artwork. A negative result, schematic, control, or visually sparse field is not "useless" merely because it contains little signal.

Data track

Read references/data-protocol.md before reviewing data findings.

Show full SKILL.md (533 more words)Show less

D1. Collect the numbers

Prefer Source Data and supplementary files over values read from plots. For tables that exist only in the PDF, transcribe them into a CSV exactly as printed: keep trailing zeros and signs, one column per group, and verify the transcription against the rendered page. Do not read values off charts unless the user asks; if you do, say so and skip digit-level checks for those values. Also collect every reported mean with its SD and n, and every test reported with statistic, degrees of freedom, and p (t, F, χ², r, z).

text
python audit_data.py prepare --input SOURCE_DATA_DIR --output AUDIT_DIR/data

--input may be repeated and accepts files or directories. prepare dumps every sheet to tables/ with the precision the authors displayed, and writes series.json with one proposed series per vertical block of numeric cells. Obvious index columns are proposed with "include": false. When the paper has no tables of raw values, skip prepare: create AUDIT_DIR/data/ and write series.json with only means and tests.

D2. Verify the series manifest

Proposals are only a starting point. Edit series.json until every included series is one independently measured variable, design and summary columns are excluded, expected derivations share a derivation_group, and each label names figure, panel, group, and variable. Add reported means and percentages with their SD and n to means (GRIM, GRIMMER), and reported test results to tests in APA form (t(18) = 2.31, p = .032) for p-value recomputation. The manifest rules are in references/data-protocol.md.

D3. Run all-pairs screening

text
python audit_data.py scan --workspace AUDIT_DIR/data

The scan runs repeated-run detection and fixed-relation checks across all series pairs, decimal and terminal-digit tests per series and pooled per source, Benford where applicable, GRIM and GRIMMER on means, and p-value recomputation on tests. It writes findings.csv, findings.json, and scan-summary.json. The distributional tests share one Benjamini-Hochberg family. Rescan after any manifest change.

D4. Confirm or exclude findings

Review every flagged row, not only the first. For each, confirm the cells in tables/, locate the series in the paper, and look for a declared shared control, normalization, formula, or unit conversion. Weigh shared runs and exact fixed relations far above distributional anomalies; a single digit or Benford deviation is not a concern on its own. Record negative controls.

Report

The final report must include:

  1. exact inputs, page scope, figure/source and table counts, and unreadable or skipped files;
  2. number of reviewed panels and series, all-pairs comparisons, and means, SDs, and tests checked or untestable;
  3. methods, whether the SIFT pass actually ran, and which data checks were applicable;
  4. one verdict table covering both tracks: confirmed duplicate, high-confidence concern, needs raw data, expected derivative/longitudinal view, and excluded false positive;
  5. for figures: panel IDs, source/page, bounding boxes, metrics, and evidence paths; for data: series IDs and labels, cell ranges, the relation or statistic, p and q with the family size, and the paper location;
  6. separately listed quality/uninformative image findings;
  7. limitations, especially uncertain panel boundaries, unsplit lanes, transcribed rather than source values, and inapplicable tests.

Use neutral language: the audit identifies reuse, similarity, and numerical inconsistency, not intent. Never compute or report a composite fraud or risk score. Do not claim the review is exhaustive unless coverage accounting shows that every in-scope source, experimental-image unit, and data series was inspected.

© xuzhougeng, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 7 other files (scripts, references) in skills/research-integrity-audit of xuzhougeng/wisp-science.

  • SKILL.md
  • references/data-protocol.md
  • references/review-protocol.md
  • scripts/audit_data.py
  • scripts/audit_figures.py
  • tests/fixtures/known-reuse-panels.json
  • tests/test_audit_data.py
  • tests/test_audit_figures.py

Open the folder on GitHubat commit 565deb1

Compare with similar skills

Research Integrity Audit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Research Integrity Audit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Research Integrity Audit this skillxuzhougeng/wisp-science1k—~2.6kAutomated safety check: PassAGPL-3.0
Instrument Data To Allotropeaws-samples/amazon-bedrock-agents-healthcare-lifesciences2742 repos~2.7kAutomated safety check: PassApache-2.0
File ReadingWide-Moat/open-computer-use1261 repos~3.1kAutomated safety check: PassProprietary
Compdf Documents To PDFComPDFKit/compdf-skills109—~850Automated safety check: PassNone
Multi Source Data Integration ExtractionDrchronx/ai-agent-research-starter-kit139—~671Automated safety check: PassCustom licence
Light File ReadingLight0305/Light-skills640—~4.1kAutomated safety check: PassMIT

Similar skills

  • Instrument Data To Allotrope

    aws-samples/amazon-bedrock-agents-healthcare-lifesciences

    Official

    Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.

    274 GitHub starsUsed in 2 repos~2.7k tokens
    Documents & OfficeAuto-check passed
  • File Reading

    Wide-Moat/open-computer-use

    A skill your agent uses when a file has been uploaded but its content is NOT in your context — only its path at /mnt/user-data/uploads/ is listed in an uploadedfiles block.

    126 GitHub starsUsed in 1 repo~3.1k tokens
    Documents & OfficeAuto-check passed
  • Compdf Documents To PDF

    ComPDFKit/compdf-skills

    Convert Word, Excel, PPT, HTML, TXT, CSV, RTF, PNG, and JPG files into PDF with ComPDF.

    109 GitHub stars~850 tokensUpdated 2 mo ago
    Documents & OfficeAuto-check passed
  • Multi Source Data Integration Extraction

    Drchronx/ai-agent-research-starter-kit

    Automatically merge scattered Excel and CSV files, normalize column names, and extract structured tables from PDF, HTML, TXT, or Markdown documents.

    139 GitHub stars~671 tokensUpdated 4 mo ago
    Documents & OfficeAuto-check passed
  • Light File Reading

    Light0305/Light-skills

    Light 多格式文件深度理解常驻技能:强大地读 Word / PDF / PPTX / Excel / CSV / 图片 / 视频 / 代码 / 压缩包,不只提取文字,而是理解结构 / 图表 / 数据 / 格式要求 / 隐含意图,产结构化"理解笔记"五面 (结构逻辑·关键内容·格式约束·视觉风格·可复用)并映射到下游技能动作(这个文件→接下来能做什么)。

    640 GitHub stars~4.1k tokensUpdated 3 mo ago
    Documents & OfficeAuto-check passed
  • Heavy File Ingestion Claude Code

    NateBJones-Projects/OB1

    Use in Claude Code when a user asks to read, analyze, summarize, or extract from a heavyweight file such as PDF, DOCX, PPTX, XLSX, CSV, or TSV.

    4.7k GitHub stars~614 tokensUpdated 2 days ago
    Documents & OfficeAuto-check passed

More from xuzhougeng/wisp-science

All 25 skills in this repo
  • Singlecell Qc

    xuzhougeng/wisp-science

    A skill your agent uses when designing, reviewing, or implementing single-cell RNA-seq QC in Python or R with a human-in-the-loop, data-driven approach.

    1k GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Distill Concept Books

    xuzhougeng/wisp-science

    将概念、理论或分析方法类图书蒸馏为证据可追溯、经人工门禁审核且不暴露书名、作者、出版社等来源身份的任务型 Skill 候选。用于新建或恢复图书蒸馏、以本地 Tesseract 扫描 DOCX 全部内嵌图像或 Poppler 渲染的扫描 PDF 全页、建立 source map 与 evidence/claim/relation/capability…

    1k GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Skill Creator

    xuzhougeng/wisp-science

    Create, update, validate, and evaluate Wisp skills. An agent skill from xuzhougeng/wisp-science.

    1k GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Word Zotero Citations

    xuzhougeng/wisp-science

    Build, audit, authorize, recover, or finalize dynamic Zotero citations and bibliographies in Microsoft Word DOCX files with a protected-source, digest-bound workflow.

    1k GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • Compute Env Setup

    xuzhougeng/wisp-science

    Set up and validate a reproducible Python or R environment on a Wisp execution context.

    1k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Indication Dossier

    xuzhougeng/wisp-science

    Build a sourced research dossier for one therapeutic indication — patient population, epidemiology, disease biology, standard of care, regulatory path, and landmark trials.

    1k GitHub stars~1k tokensUpdated today
    Auto-check passed

Works with

Questions about Research Integrity Audit

What does Research Integrity Audit do?

学术审查 / research-integrity screening of a manuscript's figures and reported numbers. Research Integrity Audit is an agent skill from xuzhougeng/wisp-science. 学术审查 / research-integrity screening of a manuscript's figures and reported numbers.

When should I use Research Integrity Audit?

Research Integrity Audit fits situations like: the user attaches a PDF; image directory; CSV/Excel source data to audit.

How do I install Research Integrity Audit in Claude Code?

Run `npx skills add xuzhougeng/wisp-science --skill research-integrity-audit -a claude-code`. Or copy the skill folder (skills/research-integrity-audit in xuzhougeng/wisp-science) into .claude/skills/research-integrity-audit in your project. Claude Code loads it when a task matches its description.

How do I install Research Integrity Audit in Codex?

Run `npx skills add xuzhougeng/wisp-science --skill research-integrity-audit -a codex`. Or copy the skill folder (skills/research-integrity-audit in xuzhougeng/wisp-science) into .agents/skills/research-integrity-audit in your project. Codex loads it when a task matches its description.

Can I use Research Integrity Audit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add xuzhougeng/wisp-science --skill research-integrity-audit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/research-integrity-audit, .gemini/skills/research-integrity-audit, .github/skills/research-integrity-audit and .opencode/skills/research-integrity-audit in your project.

What does Research Integrity Audit need to run?

Going by SKILL.md and its folder, Research Integrity Audit needs Python for the scripts in its folder. Our summary lists: Python 3. Compatibility (from SKILL.md): Python 3.10+. Figure track needs Pillow, NumPy, pypdf, and pypdfium2, plus OpenCV with SIFT for the full feature-matching pass. Data track is standard library only, plus openpyxl for .xlsx input..

Does Research Integrity Audit access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Research Integrity Audit safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Research Integrity Audit use?

Research Integrity Audit is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Research Integrity Audit use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.4k tokens, read only when the agent opens those files.

What are the alternatives to Research Integrity Audit?

Skills that share tags, products or a category with Research Integrity Audit: Instrument Data To Allotrope (aws-samples/amazon-bedrock-agents-healthcare-lifesciences, 274 stars), File Reading (Wide-Moat/open-computer-use, 126 stars), Compdf Documents To PDF (ComPDFKit/compdf-skills, 109 stars) and Multi Source Data Integration Extraction (Drchronx/ai-agent-research-starter-kit, 139 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Research Integrity Audit?

xuzhougeng (a GitHub user) maintains it in xuzhougeng/wisp-science, which has 1,027 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on October 11, 2026.

Source: xuzhougeng/wisp-science on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.