academic-writing-skills/paper-audit/SKILL.md
Reviewer-style audit and submission gate for academic papers in .tex, .typ, or .pdf. Use for peer-review critique, readiness/gate decisions, blocker triage, revision roadmaps, journal-style reports, and re-audits. Do not use for source editing, sentence polishing, bibliography search, or compile repair.
npx skillsauth add bahayonghang/academic-writing-skills paper-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
paper-audit is deep-review-first. Its core job is to behave like a
serious reviewer: find technical, methodological, claim-level, and
cross-section issues; keep script-backed findings separate from reviewer
judgment; and return a structured issue bundle plus a revision roadmap.
This version ships a script-backed PRESUBMISSION layer for final-week
mechanical checks (em dashes, AI-tone term frequency, abstract completeness,
LaTeX citation/label/equation hygiene, paragraph-shape weak signals, concrete
captions). It plugs into existing modes; it is not a separate public mode.
See references/PRESUBMISSION_GUIDE.md for mode integration.
Use it for audit and review. Do not use it as the first tool for source editing, sentence rewriting, or build fixing.
quick-audit: fast submission-readiness screen with script-backed findings,
including PRESUBMISSIONdeep-review: reviewer-style structured issue bundle with major/moderate/
minor findingsgate: PASS/FAIL decision calibrated for submission blockers;
PRESUBMISSION Major/Minor findings remain advisoryre-audit: compare current issue bundle against a previous audit, including
mechanical regression findingspolish: precheck-only handoff into a polishing workflowThe primary product is no longer just a score. For deep-review, the
workspace root contains exactly four files for the reader:
review_report.md — the primary deep-review reportrevision_suggestions.md — concrete fix recommendations for each
Major/Moderate issue, including suggested rewrites (when applicable)review_report.html — HTML twin of the primary reportrevision_suggestions.html — HTML twin of the suggestionsEverything else lives under artifacts/ for verification and tooling:
artifacts/summary/ — paper_summary.md, overall_assessment.txt,
peer_review_report.mdartifacts/data/ — final_issues.json, all_comments.json,
claim_map.json, section_index.json, revision_suggestions.json,
revision_trajectory.mdartifacts/meta/ — metadata.json, checkpoint.json,
phase0_context.md, full_text.mdartifacts/sections/, artifacts/comments/, artifacts/committee/,
artifacts/references/The report language is controlled by --lang en|zh (default: auto-detect
from metadata.json, fallback en). The language switch only affects
report headings, labels, and table headers — issue quotes, source tags
([Script], [LLM]), and structured field values stay in their original
form.
.tex / .typcover-letterpaper-audit is a reviewer, not an editor; switch skills explicitly if the user wants prose changes, so review evidence stays separable from edits.[Script] from [LLM] findings — script-backed items have a deterministic anchor the user can rerun, while LLM findings need a quote or section to be falsifiable.paper-audit — keep prose rewrites in the format-specific writing skills where they can be reviewed in isolation.PRESUBMISSION, map CRITICAL / MAJOR / MINOR to Critical / Major / Minor script severities; only Critical or failed checklist items can fail gate — otherwise mechanical findings drown out the substantive ones.
Full mode-integration matrix lives in references/PRESUBMISSION_GUIDE.md.--online or --literature-search unless the user explicitly
requested external verification/search or confirmed that sending title,
abstract, citation metadata, or queries to third-party APIs is acceptable.| Requested intent | Mode |
|---|---|
| "check my paper", "quick audit", "submission readiness", "pre-submission review", "投稿前检查" | quick-audit |
| "review my paper", "simulate peer review", "harsh review", "deep review" | deep-review |
| "is this ready to submit", "gate this submission", "blockers only" | gate |
| "did I fix these issues", "re-audit", "compare against old review" | re-audit |
| "polish the writing, but only if safe" | polish |
Legacy aliases still work for one compatibility cycle:
self-check -> quick-auditreview -> deep-reviewFor per-mode workflow steps, input resolution rules, presentation surface
rules, and committee focus routing, see references/MODE_GUIDE.md.
Read these references before running reviewer-style work:
references/REVIEW_CRITERIA.mdreferences/DEEP_REVIEW_CRITERIA.mdreferences/CHECKLIST.mdreferences/CONSOLIDATION_RULES.mdreferences/ISSUE_SCHEMA.mdreferences/PRE_SUBMISSION_RULES.mdreferences/PRESUBMISSION_GUIDE.mdreferences/CLAIM_EVIDENCE_CONTRACT.mdreferences/DATA_AVAILABILITY_ADVISORY.mdreferences/MODE_GUIDE.mdreferences/editorial_decision_standards.mdreferences/quality_rubrics.mdThe deep-review workflow uses a 16-part issue taxonomy:
Each mode has the same shape: parse $ARGUMENTS, lock the paper path, infer
mode/report-style/focus/language if not provided, then run the canonical
command. Detailed phase steps are in references/MODE_GUIDE.md.
quick-audituv run python -B "$SKILL_DIR/scripts/audit.py" <paper> --mode quick-audit ...
Present Submission Blockers -> Quality Improvements -> checklist; call
out PRESUBMISSION mechanical findings with [Script] provenance. Escalate
to deep-review when the user wants reviewer-depth critique.
deep-reviewFive phases (see references/MODE_GUIDE.md for full detail):
uv run python -B "$SKILL_DIR/scripts/prepare_review_workspace.py" <paper> --output-dir ./review_results
If the target review workspace already exists, stop and ask before replacing
it. Use --overwrite only after the user confirms the existing artifacts can
be discarded; for the all-in-one audit.py --mode deep-review path, use
--overwrite-workspace after the same confirmation.uv run python -B "$SKILL_DIR/scripts/audit.py" <paper> --mode deep-review ...
committee/consensus.md.uv run python -B "$SKILL_DIR/scripts/consolidate_review_findings.py" <review_dir>
uv run python -B "$SKILL_DIR/scripts/verify_quotes.py" <review_dir> --write-back
uv run python -B "$SKILL_DIR/scripts/render_deep_review_report.py" <review_dir> --lang $LANG
uv run python -B "$SKILL_DIR/scripts/render_html_report.py" <review_dir> --lang $LANG
When the user explicitly asks for journal-review prose, set
--report-style peer-review. review_report.md remains the primary
artifact in the workspace root; peer_review_report.md is generated as
a companion under artifacts/summary/ for that style.
After consolidation, the deep-review workflow optionally invokes
agents/revision_suggestion_agent.md to produce
artifacts/data/revision_suggestions.json with concrete original/suggested
text pairs and additional actions. When the file is present,
revision_suggestions.md and its HTML twin pick it up automatically; when
absent, both fall back to the priority/section roadmap skeleton.
gateuv run python -B "$SKILL_DIR/scripts/audit.py" <paper> --mode gate ...
Run EIC Screening (Phase 0.5) using agents/editor_in_chief_agent.md
first; report PASS/FAIL; verdict -> EIC -> blockers -> advisory. A desk-reject
verdict is a gate blocker. Critical PRESUBMISSION only blocks the gate.
re-auditRequires --previous-report PATH.
uv run python -B "$SKILL_DIR/scripts/audit.py" <paper> --mode re-audit --previous-report <path> ...
uv run python -B "$SKILL_DIR/scripts/diff_review_issues.py" <old_final_issues.json> <new_final_issues.json>
Present root-cause-aware status labels: FULLY_ADDRESSED,
PARTIALLY_ADDRESSED, NOT_ADDRESSED, NEW.
polishuv run python -B "$SKILL_DIR/scripts/audit.py" <paper> --mode polish ...
If blockers exist, stop and report them. Only proceed into polishing if the precheck is safe.
For deep-review, the final issue schema is:
{
"title": "short issue title",
"quote": "exact quote from paper",
"explanation": "why this matters and what remains problematic",
"comment_type": "methodology|claim_accuracy|presentation|missing_information",
"severity": "major|moderate|minor",
"confidence": "high|medium|low|unverified",
"source_kind": "script|llm",
"source_section": "methods",
"related_sections": ["results", "appendix"],
"root_cause_key": "shared-normalized-key",
"review_lane": "claims_vs_evidence",
"evidence_anchor": [
{"type": "citation|figure_or_table|metric|section|analysis_artifact", "text": "visible anchor"}
],
"claim_strength": "unsupported|observed|supported|strong",
"missing_evidence": ["specific support that is absent or unverified"],
"allowed_wording": "bounded wording that stays within the evidence",
"forbidden_wording": ["unbounded wording that would require stronger evidence"],
"gate_blocker": false,
"quote_verified": true
}
Always prefer:
| File | Purpose |
|---|---|
| references/MODE_GUIDE.md | per-mode workflow detail, phase steps, committee focus routing |
| references/PRESUBMISSION_GUIDE.md | PRESUBMISSION mode-integration behavior matrix |
| references/REVIEW_CRITERIA.md | top-level audit scoring and mapping |
| references/DEEP_REVIEW_CRITERIA.md | deep-review-specific issue taxonomy and leniency rules |
| references/CONSOLIDATION_RULES.md | deduplication and root-cause merge policy |
| references/ISSUE_SCHEMA.md | canonical JSON schema |
| references/CLAIM_EVIDENCE_CONTRACT.md | optional claim candidate / evidence anchor contract |
| references/DATA_AVAILABILITY_ADVISORY.md | source-data and FAIR metadata advisory boundary |
| references/REVIEW_LANE_GUIDE.md | section lanes and cross-cutting lanes |
| references/PRE_SUBMISSION_RULES.md | final-week mechanical audit rules and term list |
| references/SUBAGENT_TEMPLATES.md | reviewer task templates |
| references/QUICK_REFERENCE.md | CLI and mode cheat sheet |
| references/editorial_decision_standards.md | cross-reviewer arbitration rules and decision matrix |
| references/quality_rubrics.md | five-dimension scoring rubric with calibrated tiers |
| references/TROUBLESHOOTING.md | operational errors plus review-quality failure paths (F1-F8) |
| Script | Purpose |
|---|---|
| scripts/audit.py | Phase 0 audit and mode entrypoint |
| scripts/paths.py | WorkspaceLayout — single source of truth for artifact paths |
| scripts/i18n.py | English/Chinese string dictionary for report rendering |
| scripts/pre_submission_check.py | deterministic PRESUBMISSION mechanical audit layer |
| scripts/prepare_review_workspace.py | create deep-review workspace |
| scripts/build_claim_map.py | extract headline claims, closure targets, and additive claim_candidates |
| scripts/consolidate_review_findings.py | deduplicate comment JSONs |
| scripts/verify_quotes.py | verify exact quote presence |
| scripts/render_deep_review_report.py | render final Markdown report |
| scripts/render_html_report.py | render HTML twins of review_report and revision_suggestions |
| scripts/diff_review_issues.py | compare old vs new issue bundles |
Committee agents (deep-review default):
committee_editor_agent.mdcommittee_theory_agent.mdcommittee_literature_agent.mdcommittee_methodology_agent.mdcommittee_logic_agent.mdDefault deep-review lanes live in agents/:
section_reviewer_agent.mdclaims_evidence_reviewer_agent.mdnotation_consistency_reviewer_agent.mdevaluation_fairness_reviewer_agent.mdself_consistency_reviewer_agent.mdprior_art_reviewer_agent.mdsynthesis_agent.mdeditor_in_chief_agent.md — EIC desk-reject screener (used in gate mode)revision_coach_agent.md — parse free-form reviewer letters into a
structured roadmap (used in re-audit mode)revision_suggestion_agent.md — convert each Major/Moderate issue into
an original/suggested text pair plus additional actions; produces
artifacts/data/revision_suggestions.jsonSpecialized deep-review agents (read their files for activation criteria):
critical_reviewer_agent.md — devil's advocate with C3-C5 checksdomain_reviewer_agent.md — domain expertise with A1-A7 assessmentsmethodology_reviewer_agent.md — methodology rigor with B3-B10 checksliterature_reviewer_agent.md — evidence-based literature verification
(optional, --literature-search)paper.tex and tell me what blocks submission."testing
Submission cover-letter assistant for existing LaTeX manuscripts. Use to generate, optimize, align-check, preflight, and journal-fit-check cover letters against paper evidence, novelty claims, reviewer-facing framing, and target venue expectations. Do not use for editing main.tex, full manuscript audit, or bibliography search.
testing
Search and cite from local BibTeX/BibLaTeX .bib libraries, including Zotero exports. Use to find, filter, preview, export, or generate LaTeX/Typst citation snippets by topic, author, year, venue, DOI, arXiv ID, keywords, abstract, fields, recency, or claim support. Do not use for manuscript writing or polishing.
development
Typst paper assistant for existing .typ manuscripts in English or Chinese. Use for compile/export diagnosis, venue formatting, BibTeX/Hayagriva checks, grammar, logic, abstract/title, tables, pseudocode, related work, research-gap framing, adaptation, de-AI polish, translation, and submission readiness; use LaTeX skills for .tex.
testing
中文 LaTeX 学位论文助手,面向已有 .tex 硕博论文项目与高校模板。用于编译诊断、GB/T 7714、模板/章节结构、术语一致性、绪论/方法/实验/结论主线、文献综述、研究空白、摘要标题、三线表和去 AI 味;英文论文用 latex-paper-en,审稿总评用 paper-audit。