Skip to main content

sub-checker

PyPI version Python versions CI License: MIT

繁體中文 | English

Pre-submission manuscript checker powered by Claude agents with a Plan-Execute-Verify harness. Each check is performed by a specialized AI agent, then validated by deterministic checks and a reviewer agent to eliminate false positives.

What it checks

Agent What it does
typo_grammar Spelling, grammar, awkward phrasing (skips reference list)
figure_table Figure/table references exist, numbering is sequential, files present
citation_exist In-text citations match the reference list (deterministic pre-scan + agent)
citation_format Reference list follows target journal's citation style (APA, Vancouver, AMA, etc.)
journal_guidelines Word count, required sections, abstract format, required statements (COI, ethics, data availability)
logic Contradictions, unsupported claims, methods-results mismatches
citation_claim Multi-source verification (PubMed + Semantic Scholar + Crossref), then verifies claims against abstracts

Install

pip install sub-checker

Setup

You need an Anthropic API key:

export ANTHROPIC_API_KEY=sk-ant-...

Or create a .env file in your working directory:

ANTHROPIC_API_KEY=sk-ant-...

Usage

CLI

# Full check with target journal
sub-check paper.docx -j "The Lancet"

# Chinese report output
sub-check paper.docx -j "Nature Medicine" --lang zh-TW

# Only run specific checkers (cheaper & faster)
sub-check paper.docx --only figure,citation

# Skip expensive checkers
sub-check paper.docx --skip claim,logic

# Output as styled HTML report (includes COT viewer + confidence scores)
sub-check paper.docx -o html --output-file report.html

# Output as JSON (for programmatic use)
sub-check paper.docx -o json --output-file report.json

# Dry run (just parse, no agents)
sub-check paper.docx --dry-run

Web GUI

The GUI needs the source repo (the React frontend is not shipped on PyPI), plus the optional web backend dependencies:

git clone https://github.com/odafeng/sub-checker.git
cd sub-checker
pip install -e ".[web]"          # backend: FastAPI + uvicorn

# Start backend
uvicorn sub_checker.api:app --reload

# Start frontend (in another terminal)
cd frontend && npm install && npm run dev

Open http://localhost:5173 — upload a .docx, pick a journal, run, and view the report with confidence badges and filtered false positives.

CLI options

sub-check [OPTIONS] MANUSCRIPT_PATH

Arguments:
  MANUSCRIPT_PATH    Path to .docx file or directory containing one (optional with --init)

Options:
  -j, --journal      Target journal name (e.g. "The Lancet")
  -c, --config       Path to a config file (default: ./.sub-checker.yaml if present)
  -o, --output       terminal | json | markdown | html (default: terminal)
  --output-file      Write report to file
  --lang             Report language: en (default) or zh-TW
  --only             Comma-separated: typo,logic,figure,citation,format,guidelines,claim
  --skip             Comma-separated checkers to skip
  -v, --verbose      Show agent tool calls in real-time
  --dry-run          Only parse .docx, don't run agents
  --init             Generate default .sub-checker.yaml

Pipeline (Plan-Execute-Verify)

Checkers   │  7 agents run concurrently (global concurrency cap, default 3 at a time)
Validate   │  Deterministic post-validation (date math, citation cross-check)
Review     │  Reviewer agent scores every surviving finding → confidence
Dedup      │  Same issue from multiple checkers collapsed to the highest-confidence one
  • Pre-execution: deterministic citation pre-scan + multi-source reference verification
  • Post-validation: false positives filtered, remaining findings get confidence scores (0-100%), cross-checker duplicates merged
  • See harness-architecture.md for full technical details

HTML report features

  • Dark-themed styled report with severity badges
  • Confidence scores — each finding shows reviewer-assigned confidence (%)
  • False positive filtering — deterministic + reviewer agent removes incorrect findings
  • Chain of Thought viewer — expand to see every API call, tool use, and reasoning step
  • Model display — shows which Claude model generated the report
  • i18n support (English / Traditional Chinese)

Cost estimate

By default judgment-heavy checkers (logic, citation_claim, journal_guidelines) and the reviewer run on Claude Opus 4.8, while mechanical checkers (typo, figure, citation_exist, citation_format) run on the cheaper Claude Sonnet 4.6. Per-checker effort is tuned to keep token use low. Measured on a real ~5,000-word, 25-reference manuscript:

Scope Agents Time Cost
Quick check --only figure,citation ~3 min ~$1
Standard --skip claim ~6 min ~$2–3
Full check all 7 agents + harness ~10–12 min ~$3–5

Cost scales with manuscript length and reference count (citation_claim verifies each reference against PubMed/Semantic Scholar/Crossref). Override any model in .sub-checker.yaml (e.g. set everything to claude-sonnet-4-6 for cheaper runs).

Logging

All logs are stored in ~/.sub-checker/:

  • logs/sub-checker.log — application log (auto-rotated, 10MB x 5)
  • logs/sub-checker.error.log — errors only
  • cot/ — agent chain-of-thought JSON logs (every tool call, every response)

Set cot_dir: "disabled" in .sub-checker.yaml to turn off COT file logging (entries still appear in HTML reports).

Architecture

  • Plan-Execute-Verify harness: concurrent checkers → deterministic validation → reviewer → dedup (ADR-0010)
  • 7 agents + reviewer agent, each with system prompt + curated tools + agentic loop (ADR-0002)
  • Parser provides raw data; agents judge document structure (ADR-0009)
  • Multi-source citation verification: PubMed + Semantic Scholar + Crossref (ADR-0005)
  • FastAPI + React + TypeScript GUI (ADR-0006)
  • Benchmark comparison | Harness architecture

License

MIT

Metadata

Release files for sub-checker 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sub-checker 0.1.1
File Size Uploaded
sub_checker-0.1.1.tar.gz 78.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sub-checker 0.1.1
File Interpreter ABI Platform
sub_checker-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 164.4 kB

Release files / sub_checker-0.1.1.tar.gz

Download URL sub_checker-0.1.1.tar.gz
Size 78.0 kB
Tags Source
SHA-256 checksum
How to use checksums
b40d6e559a4251dc0186444787a5b2f5add1c74f6e864def6ff5b23c03b0d236
BLAKE2b-256 checksum
How to use checksums
50eb89fb028a318f1cc0c225d155a9443fdf262a1f0a6c576b82a9b42238a9c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.

Transparency log

Release files / sub_checker-0.1.1-py3-none-any.whl

Download URL sub_checker-0.1.1-py3-none-any.whl
Size 86.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9a5be2b043024cee6c4c523bc95edf45c1a39740d8fa3dd567c93e818803bf33
BLAKE2b-256 checksum
How to use checksums
1a0642e1f955f9cc240c091f648a375de4eed508df253ad30ae87c69747b946c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page