skills/67-econfin-workflow-toolkit/paper-polish/SKILL.md
Proofread and verify academic papers in LaTeX. Runs 19 sequential checks covering titles, consistency, citations, formatting, theoretical tension in motivation, concise results reporting, cross-section repetition, em-dash usage, and auxiliary-text-to-footnote conversion. Trigger when user says "check paper" / "proofread" / "paper-checker" / "校对" / "核查论文".
npx skillsauth add brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research paper-polishInstall 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.
This skill performs a comprehensive 19-step proofreading and verification of academic papers in LaTeX. Each step is run sequentially. Within each step, every individual issue found is presented to the user one at a time for approval before applying the change.
CRITICAL INTERACTION RULE: For every issue found in every check, you MUST:
All output must be in English unless the user specifies otherwise.
$ARGUMENTS or ask).main.tex)ref.bib or *.bib)Run these checks in order. For each check, present ALL findings, then ask the user to approve/reject each one individually.
Optimize all \section{} and \subsection{} titles to reflect full academic rigor. Modified titles must NOT use colons.
Output format (present one row at a time for approval):
## Check 1: Section & Subsection Titles
Issue 1/N:
| Original Title | Proposed Title |
|----------------|----------------|
| Robustness Checks | Sensitivity and Robustness Analyses |
Accept this change? (yes/no/edit)
Optimize all \caption{} in table/figure .tex files to reflect full academic rigor. Modified titles must NOT use colons.
Output format (one at a time):
## Check 2: Table & Figure Titles
Issue 1/N:
| Original Title | Proposed Title |
|----------------|----------------|
| Summary Statistics | Descriptive Statistics of Key Variables |
Accept this change? (yes/no/edit)
Check the entire paper for contradictory or inconsistent claims across sections.
Output format (one issue at a time):
## Check 3: Internal Consistency
Issue 1/N:
Location: [Section X, paragraph Y] vs. [Section Z, paragraph W]
Problem: [description of inconsistency]
| Original Text | Proposed Revision |
|---------------|-------------------|
| "...excerpt..." | "...**revised** excerpt..." |
Accept this change? (yes/no/edit)
Check whether the introduction's logic is tight and flows smoothly from motivation to findings to contributions.
Output format (one issue at a time):
## Check 4: Introduction Logic
Issue 1/N:
Location: [paragraph N of Introduction]
Problem: [e.g., abrupt transition, missing logical link, redundancy]
| Original Paragraph | Proposed Revision |
|---------------------|-------------------|
| "...excerpt..." | "...**revised** excerpt..." |
Accept this change? (yes/no/edit)
Evaluate whether the full paper's storyline is tight and coherent. If any table is not essential to the main story, suggest moving it to the appendix.
Output:
Table X: [name]
Recommendation: Move to appendix / Keep in main body
Rationale: [explanation]
Accept this recommendation? (yes/no)
Evaluate whether the motivation paragraphs of the introduction establish sufficient theoretical tension — i.e., competing economic forces or theoretical perspectives that make the central research question genuinely interesting ex ante. A motivation that points in only one direction reads as "the answer is obvious, so why run this regression?" and weakens the paper's contribution.
What to look for:
How to revise — apply these rules:
"On the one hand, [theory / mechanism A] predicts that $X$ should increase $Y$, because [reason]. On the other hand, [theory / mechanism B] predicts that $X$ should decrease $Y$ (or leave it unchanged), because [reason]. Which force dominates is ultimately an empirical question."
Severity assessment — flag the motivation as deficient in theoretical tension if any of the following hold:
Output format (one issue at a time):
## Check 6: Theoretical Tension in Introduction Motivation
Issue 1/N:
Location: Introduction, paragraph(s) [N]
Focal relationship: $X \to Y$ ([brief description of X and Y])
Problem: [e.g., "Only one mechanism is articulated; no countervailing force is acknowledged; prior literature framed as one-directional consensus."]
Proposed competing prediction: [one-sentence summary of the alternative force / theory and its source]
| Original Motivation Excerpt | Proposed Revision |
|------------------------------|-------------------|
| "...[single-directional motivation passage]..." | "**On the one hand, [mechanism A] suggests that $X$ raises $Y$, because [reason A] (Author, Year). On the other hand, [mechanism B] suggests that $X$ may instead lower $Y$, because [reason B] (Author, Year). Which force dominates is an empirical question.**" |
Accept this change? (yes/no/edit)
If the motivation already exhibits adequate theoretical tension (at least one explicitly stated, plausibly opposing prediction with a citation), report:
## Check 6: Theoretical Tension in Introduction Motivation
Assessment: The introduction's motivation establishes adequate theoretical tension between [mechanism A] and [mechanism B], with prior literature cited on both sides. No revision proposed.
Check whether the ordering of sections and subsections is logical and follows academic conventions for the target field.
Output: Assessment of current ordering with specific reordering suggestions if needed. Present each suggestion for approval.
Verify that every table and figure included in the paper is mentioned/referenced in the main text.
Output format:
## Check 8: Unreferenced Tables/Figures
| # | Table/Figure | File | Referenced in Text? |
|---|-------------|------|---------------------|
| 1 | Table X | results/xxx.tex | NOT referenced |
[If all referenced]: All tables and figures are referenced in the text.
For unreferenced items, suggest where to add a reference. Ask user for approval.
Check whether the variable definition table (if present) includes all key variables discussed in the text.
Output format:
## Check 9: Missing Variables in Definition Table
| # | Variable | Mentioned in Section | Missing from Definition Table |
|---|----------|---------------------|-------------------------------|
| 1 | FiscalTransparency | Section 6.3 | Yes |
Suggest adding these variables? (yes/no)
Check that all abbreviations/acronyms are defined on first use and used consistently throughout.
Output format (one issue at a time):
## Check 10: Abbreviation Issues
Issue 1/N:
| Abbreviation | Issue | Location | Suggested Fix |
|-------------|-------|----------|---------------|
| PSM | Used without definition | Section 6.2 | Define as "propensity score matching (PSM)" on first use |
Accept this fix? (yes/no/edit)
Check whether the paper's arguments, reasoning, and evidence are complete. Flag any gaps where claims lack support or transitions are missing.
Output format (one issue at a time):
## Check 11: Content/Logic Gaps
Issue 1/N:
Location: [Section, paragraph]
Gap: [description]
| Original Text | Proposed Addition/Revision |
|---------------|---------------------------|
| "...excerpt..." | "...**added/revised** text..." |
Accept this change? (yes/no/edit)
This is the most critical check. Verify that EVERY specific data point in the prose matches the corresponding table/figure.
Cross-check ALL of the following:
Output format (one issue at a time):
## Check 12: Text-Table Consistency
Issue 1/N:
Section: [section name], referencing Table X
| Original Text | Corrected Text |
|---------------|----------------|
| "the coefficient on AIHype is $0.3880$ ($t = 12.49$)" | "the coefficient on AIHype is **$0.3951$** ($t = **12.82**$)" |
Table value: Column (2), AIHype = 0.3951 (12.82)
Accept this correction? (yes/no/edit)
Extract all \cite{}, \citep{}, \citet{} keys from text. Verify each exists in ref.bib.
Output format:
## Check 13: Citations Missing from ref.bib
| # | Citation Key | Location |
|---|-------------|----------|
| 1 | smith2020 | Section 3, line 154 |
[If none]: All citations have corresponding ref.bib entries.
For each missing entry, offer to add it. Ask user for approval.
Check each ref.bib entry against the text. List any uncited references.
Output format:
## Check 14: Uncited References in ref.bib
| # | Citation Key | Reference |
|---|-------------|-----------|
| 1 | smith2020 | Smith, J. (2020). Title. Journal. |
Remove this entry from ref.bib? (yes/no)
Check each BibTeX entry for formatting correctness. Ignore italics requirements.
Verify:
Output format (one issue at a time):
## Check 15: Reference Format Issues
Issue 1/N:
| Citation Key | Issue | Current | Suggested Fix |
|-------------|-------|---------|---------------|
| chen2011 | Missing pages | — | pages={259--271} |
Accept this fix? (yes/no/edit)
Scan all empirical results sections for wordy, mechanical restatement of numbers that are already visible in the cited table. The prose should interpret the result, not transcribe the table cell.
What to look for:
How to revise — apply these rules:
Output format (one issue at a time):
## Check 16: Concise Results Reporting
Issue 1/N:
Location: [Section X, paragraph Y]
Problem: [e.g., "4 consecutive sentences each restate coefficient + t-stat already shown in Table 3"]
| Original Paragraph | Proposed Revision |
|---------------------|-------------------|
| "In column 1, the coefficient on $X$ is 0.035 ($t = 2.41$). In column 2, the coefficient on $X$ is 0.041 ($t = 2.78$). In column 3, the coefficient on $X$ is 0.038 ($t = 2.55$)..." | "**$X$ is positively associated with $Y$ across columns 1–3, with effects ranging from 0.035 to 0.041 and significant at the 5\% level or better.**" |
Accept this change? (yes/no/edit)
Detect content that is repeated across the introduction, literature review, and hypotheses development sections. These three sections typically restate the same motivation, the same prior findings, and the same theoretical mechanism, which inflates page count without adding information.
What to look for:
How to revise:
Rules:
Output format (one issue at a time):
## Check 17: Cross-Section Repetition
Issue 1/N:
Repeated content: [one-line description, e.g., "Mechanism by which X affects Y via channel Z"]
Locations: Introduction (paragraph 3) + Hypotheses Development (paragraph 1)
Recommendation: Keep full treatment in Hypotheses Development; shorten Introduction to a one-sentence preview.
| Original Introduction Excerpt | Proposed Revision |
|-------------------------------|-------------------|
| "...[long passage describing the mechanism in detail, citing Smith (2018) and Jones (2020)]..." | "**We argue that $X$ affects $Y$ through channel $Z$ (developed formally in Section 3).**" |
Accept this change? (yes/no/edit)
---) UsageScan the entire main.tex (and any included section .tex files) for the LaTeX em-dash symbol ---. Em-dashes are a common AI-writing tell and tend to clutter academic prose; replace each occurrence with a more precise punctuation choice that preserves the sentence's logic.
What to look for:
--- in body text (not inside comments, table column specifiers, or code/listings).clause---inserted phrase---rest of clause.result---we conclude X.pages={259--271} uses an en-dash --, not an em-dash; leave it untouched).How to revise — choose the replacement based on the dash's grammatical role:
A---B---C): replace with parentheses A (B) C, or with commas A, B, C if B is short and the sentence remains readable.X---namely Y / X---Y): replace with a colon X: Y, a semicolon X; Y, or split into two sentences....the result was clear---no effect): replace with a period and rewrite as two sentences, or with a comma if the clauses are tightly bound.A, B, C---all of which): replace with a comma plus connecting word, e.g., A, B, and C, all of which.Output format (one issue at a time):
## Check 18: Em-Dash Usage
Issue 1/N:
Location: [Section X, paragraph Y]
Role: [parenthetical / connector / abrupt shift / list-continuation]
| Original Text | Proposed Revision |
|---------------|-------------------|
| "the hub firm---unlike its peripheral suppliers---internalizes a larger share of rents" | "the hub firm (unlike its peripheral suppliers) internalizes a larger share of rents" |
Accept this change? (yes/no/edit)
Scan the entire paper for sentences and clauses that function as auxiliary explanation rather than as part of the main argumentative flow, and propose moving them into LaTeX \footnote{} commands. The goal is to keep the body text driving the argument while preserving secondary detail in footnotes.
What counts as "auxiliary" — flag candidates of any of these types:
Do NOT flag for footnote conversion:
Rules for the conversion:
\footnote{...} does not delete content.\footnote{} attached to the end of the preceding sentence.(... aside ...) with a \footnote{... aside ...} attached to the word before the parenthesis.\citep{}, \citet{}, \ref{}, \autoref{} should travel with the text into the footnote.Where to look — sweep these sections systematically:
Output format (one issue at a time):
## Check 19: Auxiliary Text → Footnote Conversion
Issue 1/N:
Location: [Section X, paragraph Y]
Type: [definitional aside / data detail / technical detail / example / caveat / cross-reference / institutional background / literature reconciliation / variable construction]
Rationale: [one-line explanation of why this is auxiliary; flag if borderline]
| Original (body text) | Proposed (footnote conversion) |
|----------------------|--------------------------------|
| "The Inflation Reduction Act (IRA), signed into law by President Biden in August 2022, allocates roughly \$370 billion to clean-energy tax credits over a decade. We exploit ..." | "The Inflation Reduction Act (IRA)\footnote{The IRA was signed into law by President Biden in August 2022 and allocates roughly \$370 billion to clean-energy tax credits over a decade.} allocates clean-energy tax credits that we exploit ..." |
Accept this change? (yes/no/edit)
If no auxiliary text warrants footnote demotion in a given section, state so briefly and move on. After all candidates across the paper have been resolved, announce completion of Check 19.
tools
Recommend AND run open-source AI tools, agents, Claude Code / Codex skills, and MCP servers for any stage of a literature review — searching, reading, extracting, synthesizing, screening, citation-checking, and paper writing. Use when the user asks "what tool should I use to..." OR "install/run/use <tool> to ..." for research/lit-review work: automating a survey or related-work section, PDF→Markdown extraction for LLMs (MinerU/marker/docling), PRISMA / systematic review (ASReview), citation-backed Q&A over PDFs (PaperQA2), wiring papers into Claude/Cursor via MCP (arxiv/paper-search/zotero servers), or chatting with a Zotero library. Ships a launcher (scripts/litrun.py) that installs each tool in an isolated venv and runs it. Curated catalog of 70+ vetted projects. 支持中英文(用于「文献综述工具选型」与「一键安装/运行」)。
development
Route empirical-research requests through the Auto-Empirical Research Skills catalog when this whole repository is installed as one skill in Codex, CodeBuddy, Claude Code, or another IDE. Use to choose and load the right vendored AERS skill for causal inference, econometrics, replication, data acquisition, manuscript writing, peer review and referee responses, citation checking, de-AIGC editing, or full empirical-paper workflows without reading the entire repository at once.
documentation
Use when the project collects primary data or runs a field, lab, or survey experiment, before the intervention begins — write the pre-analysis plan, size the sample from a power calculation, and register with the AEA RCT Registry. Apply after the design is chosen in aer-identification and before any outcome data are seen.
tools
Guide economists to authoritative data sources with explicit, confirmed data specifications before retrieval; interfaces with Playwright MCP to navigate portals and extract real data, not articles about data.