Unified paper audit skill supporting Chinese & English academic papers.
Supports LaTeX (.tex), Typst (.typ), and PDF (.pdf) input formats.
Three modes: self-check (pre-submission), review (peer review simulation),
gate (quality gate pass/fail).
Use when user mentions: audit, review, check paper, paper quality,
pre-submission check, score paper, or any paper auditing task,
polish paper, deep polish, adversarial review, refine writing,
caption audit, 图表标题审查.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
Unified paper audit skill supporting Chinese & English academic papers.
Supports LaTeX (.tex), Typst (.typ), and PDF (.pdf) input formats.
Three modes: self-check (pre-submission), review (peer review simulation),
gate (quality gate pass/fail).
Use when user mentions: audit, review, check paper, paper quality,
pre-submission check, score paper, or any paper auditing task,
polish paper, deep polish, adversarial review, refine writing,
caption audit, 图表标题审查.
Script-evaluable dimensions (Soundness, Clarity, Presentation, partial Reproducibility) are scored automatically. For complete assessment, supplement with LLM evaluation of Novelty, Significance, Ethics, and Reproducibility. See SCHOLAR_EVAL_GUIDE.md.
CLI: python scripts/audit.py paper.tex --mode polish --style A --journal neurips
Supported Formats
Format
Parser
Notes
LaTeX (.tex)
LatexParser
Full support — all checks available
Typst (.typ)
TypstParser
Full support — all checks available
PDF (.pdf) basic
PdfParser (pymupdf)
Text extraction with font-size heading detection
PDF (.pdf) enhanced
PdfParser (pymupdf4llm)
Structured Markdown with table/header preservation
PDF Limitations: Math formulas may be lost; some checks (format, figures) skip for PDF. Recommend providing source files (.tex/.typ) for maximum accuracy.
Read .polish-state/precheck.json from the paper's directory.
Check hard blockers
If precheck.json["blockers"] is non-empty, display them and STOP.
Say: "Fix these Critical issues before polish can proceed:" + list.
Do NOT spawn any agent until user confirms fixes.
Handle non-IMRaD structure (if precheck.json["non_imrad"] == true)
Show detected sections, ask user: "Proceed with polish on these sections?"
Spawn Critic Agent via Task:
Subagent type: general-purpose
Prompt template:
You are an adversarial academic reviewer.
Paper: {file_path} | Language: {lang} | Journal: {journal} | Style: {style}
Step 1: Read the paper using the Read tool (file: {file_path}).
Step 2: The rule-based precheck found these issues: {precheck_issues_summary}
Step 3: Produce a CRITIC REPORT as valid JSON (no markdown fencing):
{
"global_verdict": "ready_to_polish" | "needs_revision_first" | "major_restructure_needed",
"global_rationale": "2-3 sentences",
"section_verdicts": [
{
"section": "<name>",
"logic_score": 1-5,
"expression_score": 1-5,
"blocks_mentor": false,
"blocking_reason": "",
"top_issues": [{"type": "logic|expression|argument", "description": "..."}]
}
],
"cross_section_issues": ["..."]
}
blocks_mentor = true ONLY when logic_score <= 2 or section is structurally absent.
Save the Critic's JSON output to .polish-state/critic_report.json using Bash:
Display Critic Dashboard and gate
Render the Critic report as a markdown table (see dashboard format).
Show blocked sections. Ask:
"How to proceed?
[1] Polish all sections (override blocks)
[2] Skip blocked sections, polish the rest
[3] Stop and revise blocked sections first"
Wait for response.
Spawn Mentor Agents per section (sequential, one at a time):
For each approved section in IMRaD order:
Subagent type: general-purpose
Prompt template:
You are a writing mentor specializing in academic polish.
CRITICAL RULES (NEVER VIOLATE):
- Never modify \cite{}, \ref{}, \label{}, \eqref{} in LaTeX
- Never modify @cite, #cite(), #ref(), <label> in Typst
- Never modify math environments: $...$, \begin{equation}..., \begin{align}...
- Never add/remove citations
- Mark any domain terminology changes as [TERM CHANGE: confirm?]
Section: {section_name} (lines {start}-{end})
Target style: {style} ({style_description from POLISH_GUIDE.md})
Critic scores — Logic: {logic_score}/5, Expression: {expression_score}/5
Critic top issues: {top_issues}
Pre-check expression issues in this section: {filtered_expression_issues}
Read lines {start}-{end} of {file_path}:
Use Read tool with offset={start-1} and limit={end-start+1}.
Produce MENTOR REPORT in this format:
## Section: {section_name}
### Polish Suggestions
[MENTOR] (Line N) [Severity: Major|Minor] [Priority: P1|P2]: description
Original: <exact original text>
Revised: <revised text preserving all LaTeX/Typst commands>
Rationale: <one sentence>
### Section Summary
<2-3 sentences on overall quality and key improvements>
After each Mentor completes:
Display its output
Ask: "Section {name} polish done. Accept and continue to next section?"
Wait for confirmation before spawning next Mentor.
Final status dashboard (after all sections done):
See dashboard format below.