ML/AI Review Paper Workflow (IEEEtran template)
When to Use
- ML/AI review papers for arXiv (main text ~6-10 pages; references excluded)
- LaTeX + BibTeX workflow with verified citations
- Citation validation/repair on existing LaTeX projects
When NOT to Use
- Novel experimental research papers (this is a review workflow)
- Non-academic documents
Inputs
- Topic description (required)
- Constraints: venue, page limit, author/affiliations (optional)
- Existing project path for citation validation (optional)
Outputs
main.tex (LaTeX source)
ref.bib (verified BibTeX entries)
IEEEtran.cls
plan/<timestamp>-<slug>.md, issues/<timestamp>-<slug>.csv
- Figures/tables;
main.pdf
notes/literature-notes.md (optional per-citation notes)
notes/arxiv-registry.sqlite3 (arXiv metadata/BibTeX cache)
Conventions: run python3 scripts/... from this skill folder (where scripts/ lives); <paper_dir> is the paper/project root (contains main.tex, ref.bib, plan/, issues/, notes/). Paths like plan/... are under <paper_dir>. For arXiv discovery/metadata/BibTeX, use scripts/arxiv_registry.py (no ad-hoc curl/wget).
Gated Workflow
Tip: Run python3 scripts/<script>.py --help before use.
Open reference files only when a step calls them out.
Non-Negotiable Rules
- No prose in
main.tex until plan approved AND issues CSV exists.
- First deliverable: research snapshot + outline + clarification questions + draft plan.
- Use plan + issues tracking for all new papers; do not opt out.
- Issues CSV is the execution contract; update
Status and Verified_Citations per issue, and add/split/insert issue rows when scope grows (do not do untracked work).
- Template is fixed: use IEEEtran two-column layout (
assets/template/IEEEtran.cls).
Treat two-column width as a layout constraint (use two-column floats when needed).
Gate 0: Research Snapshot + Draft Plan
- Confirm constraints (venue, page limit, author block, date range).
- Translate the topic into search keywords and run a light discovery pass:
10-20 key papers (see
references/research-workflow.md). After step 4 (once <paper_dir> exists), cache arXiv discovery with arxiv_registry.py search.
- Propose 2-4 candidate titles aligned to the topic.
- Scaffold the project folder and draft plan:
python3 scripts/bootstrap_ieee_review_paper.py --stage kickoff --topic "<topic>"
This copies LaTeX templates from assets/template/; plan/issues are generated from templates in assets/.
Initialize arXiv registry (once): python3 scripts/arxiv_registry.py --project-dir <paper_dir> init.
- Create a framework skeleton in
main.tex
(section headings + 2-4 bullets per section + seed citations; no prose).
- Update the plan file to reflect the framework, proposed titles, and section/subsection plan.
- Compile early:
python3 scripts/compile_paper.py --project-dir <paper_dir>
Fix any Overfull \hbox warnings (see Layout Hygiene below).
- Return to user:
- Proposed outline (5-8 sections, 2-4 bullets each)
- Planned visualizations (5+) mapped to sections (see
references/visual-templates.md)
- Clarification questions
- STOP until user approves.
Gate 1: Create Issues CSV (after approval)
- Check kickoff gate in plan:
- [x] User confirmed scope + outline in chat.
- Create issues CSV (script refuses if gate unchecked):
python3 scripts/bootstrap_ieee_review_paper.py --stage issues --topic "<topic>" --with-literature-notes
- Validate:
python3 scripts/validate_paper_issues.py <paper_dir>/issues/<timestamp>-<slug>.csv
- If literature notes are enabled, keep short summaries and (optional) abstract snippets to avoid re-search.
- The plan may evolve; add/split/insert issues as needed, re‑validate after edits, and keep going until all issues (including inserted ones) are
DONE or SKIP (when feasible, in the same run).
Phase 2: Per-Issue Writing Loop
For each writing issue in the CSV:
- If an issue balloons (new figure, new subsection, new benchmark set, or a large QA fix), split/insert new issue row(s) (e.g.,
W6a, Q5) before proceeding; re-run python3 scripts/validate_paper_issues.py <issues.csv>; keep going until all issues are DONE/SKIP.
- Research: 8-12 section-specific papers.
- Write: Never 3 sentences without citations; varied paragraph rhythm
(see
references/writing-style.md).
For section intent and structure, use references/template-usage.md.
- Visualize: Match content triggers (see
references/visual-templates.md).
Prioritize single-column sizing; use double-column spans only when necessary (see Layout Hygiene).
Cite externally sourced figure content.
- Verify: Web search + open source page (and PDF if available) before adding to
ref.bib.
For arXiv entries, append BibTeX via python3 scripts/arxiv_registry.py --project-dir <paper_dir> export-bibtex <arxiv_id> --out-bib <paper_dir>/ref.bib.
- Update: Mark issue
DONE with Verified_Citations count.
- Compile after meaningful changes; fix
Overfull \hbox before marking DONE.
Phase 2.5: Rhythm Refinement
After all writing issues are DONE, refine prose section-by-section using the latex-rhythm-refiner skill. This step varies sentence/paragraph lengths and removes filler phrases while preserving all citations.
Phase 3: QA Gate
- Run internal QA checklist (see
references/quality-report.md).
- Compile; ensure no
Overfull \hbox warnings in main.log.
- Deliver
main.tex, ref.bib, figures, and main.pdf.
Existing Paper Workflow (No Re-Scaffold)
If a paper folder already exists, do NOT rerun scaffold:
# Create plan
python3 scripts/create_paper_plan.py --topic "<topic>" --stage plan --output-dir <paper_dir>
# STOP for approval, then check kickoff gate box
# Create issues (use timestamp/slug from plan filename/frontmatter)
python3 scripts/create_paper_plan.py --topic "<topic>" --stage issues --timestamp "<TS>" --slug "<slug>" --output-dir <paper_dir> --with-literature-notes
Citation-Validation Variant
- Treat provided path as LaTeX project root.
- Follow
references/citation-workflow.md.
- Use
references/bibtex-guide.md for BibTeX rules if entries need repair.
- Deliver validation report and corrected
ref.bib if requested.
Success Criteria
Compilation: python3 scripts/compile_paper.py --project-dir <paper_dir> (exit 0, no "Citation undefined" warnings). Use --report-page-counts for main-text page count.
Quality Metrics:
- 6-10 pages of main text (references excluded)
- 60-80 total citations (8+ per section)
- 100% citation verification rate
- 70%+ citations from last 3 years
- 5+ visualization types
- All issues
DONE or SKIP
Safety & Guardrails
- Never fabricate citations or results; add TODO and ask user if evidence missing.
- Verify every citation via web search + source page (and PDF if available) before adding to
ref.bib.
- Confirm before large literature searches.
- Do not overwrite user files without confirmation.
- Issues CSV is the contract; mark
DONE only when criteria met.
- No submission bundles unless user requests.
Layout Hygiene
Fix Overfull \hbox warnings before marking issues DONE:
- Figures: start with
figure + \columnwidth; switch to figure* + \textwidth if needed
- Tables: prefer
p{...} column widths / \tabcolsep over \resizebox
- Equations: use
split, multline, aligned, or IEEEeqnarray for line-breaking
Issues CSV Schema
| Phase |
Issues |
| Research |
Rx: discovery, scaffolding, framework, viz planning |
| Writing |
Wx: each section with target citations and visualization |
| Refinement |
RFx: apply latex-rhythm-refiner skill (after all Wx DONE) |
| QA |
Qx: citation verification, QA checklist, compilation, final review |
Status: TODO → DOING → DONE. Schema validated by validate_paper_issues.py.
1---2name: arxiv-paper-writer3description: Write LaTeX ML/AI review articles for arXiv using the IEEEtran template and verified BibTeX citations.4---5
6# ML/AI Review Paper Workflow (IEEEtran template)
7
8## When to Use
9- ML/AI review papers for arXiv (main text ~6-10 pages; references excluded)
10- LaTeX + BibTeX workflow with verified citations
11- Citation validation/repair on existing LaTeX projects
12
13## When NOT to Use
14- Novel experimental research papers (this is a review workflow)
15- Non-academic documents
16
17## Inputs
18- Topic description (required)
19- Constraints: venue, page limit, author/affiliations (optional)
20- Existing project path for citation validation (optional)
21
22## Outputs
23- `main.tex` (LaTeX source)
24- `ref.bib` (verified BibTeX entries)
25- `IEEEtran.cls`
26- `plan/<timestamp>-<slug>.md`, `issues/<timestamp>-<slug>.csv`
27- Figures/tables; `main.pdf`
28- `notes/literature-notes.md` (optional per-citation notes)
29- `notes/arxiv-registry.sqlite3` (arXiv metadata/BibTeX cache)
30
31**Conventions**: run `python3 scripts/...` from this skill folder (where `scripts/` lives); `<paper_dir>` is the paper/project root (contains `main.tex`, `ref.bib`, `plan/`, `issues/`, `notes/`). Paths like `plan/...` are under `<paper_dir>`. For arXiv discovery/metadata/BibTeX, use `scripts/arxiv_registry.py` (no ad-hoc curl/wget).
32
33---
34
35## Gated Workflow
36
37> Tip: Run `python3 scripts/<script>.py --help` before use.
38> Open reference files only when a step calls them out.
39
40### Non-Negotiable Rules
411. **No prose in `main.tex`** until plan approved AND issues CSV exists.
422. First deliverable: research snapshot + outline + clarification questions + draft plan.
433. **Use plan + issues tracking for all new papers; do not opt out.**
444. Issues CSV is the execution contract; update `Status` and `Verified_Citations` per issue, and add/split/insert issue rows when scope grows (do not do untracked work).
455. **Template is fixed**: use IEEEtran two-column layout (`assets/template/IEEEtran.cls`).
46 Treat two-column width as a layout constraint (use two-column floats when needed).
47
48### Gate 0: Research Snapshot + Draft Plan
491. Confirm constraints (venue, page limit, author block, date range).
502. Translate the topic into search keywords and run a light discovery pass:
51 10-20 key papers (see `references/research-workflow.md`). After step 4 (once `<paper_dir>` exists), cache arXiv discovery with `arxiv_registry.py search`.
523. Propose 2-4 candidate titles aligned to the topic.
534. Scaffold the project folder and draft plan:
54 ```bash
55 python3 scripts/bootstrap_ieee_review_paper.py --stage kickoff --topic "<topic>"
56 ```
57 This copies LaTeX templates from `assets/template/`; plan/issues are generated from templates in `assets/`.
58 Initialize arXiv registry (once): `python3 scripts/arxiv_registry.py --project-dir <paper_dir> init`.
595. Create a **framework skeleton** in `main.tex`
60 (section headings + 2-4 bullets per section + seed citations; **no prose**).
616. Update the plan file to reflect the framework, proposed titles, and section/subsection plan.
627. Compile early: `python3 scripts/compile_paper.py --project-dir <paper_dir>`
63 Fix any `Overfull \hbox` warnings (see Layout Hygiene below).
648. Return to user:
65 - Proposed outline (5-8 sections, 2-4 bullets each)
66 - Planned visualizations (5+) mapped to sections (see `references/visual-templates.md`)
67 - Clarification questions
689. **STOP** until user approves.
69
70### Gate 1: Create Issues CSV (after approval)
711. Check kickoff gate in plan: `- [x] User confirmed scope + outline in chat`.
722. Create issues CSV (script refuses if gate unchecked):
73 ```bash
74 python3 scripts/bootstrap_ieee_review_paper.py --stage issues --topic "<topic>" --with-literature-notes
75 ```
763. Validate:
77 ```bash
78 python3 scripts/validate_paper_issues.py <paper_dir>/issues/<timestamp>-<slug>.csv
79 ```
804. If literature notes are enabled, keep short summaries and (optional) abstract snippets to avoid re-search.
815. The plan may evolve; add/split/insert issues as needed, re‑validate after edits, and keep going until all issues (including inserted ones) are `DONE` or `SKIP` (when feasible, in the same run).
82
83### Phase 2: Per-Issue Writing Loop
84For each writing issue in the CSV:
85- If an issue balloons (new figure, new subsection, new benchmark set, or a large QA fix), split/insert new issue row(s) (e.g., `W6a`, `Q5`) before proceeding; re-run `python3 scripts/validate_paper_issues.py <issues.csv>`; keep going until all issues are `DONE`/`SKIP`.
861. **Research**: 8-12 section-specific papers.
872. **Write**: Never 3 sentences without citations; varied paragraph rhythm
88 (see `references/writing-style.md`).
89 For section intent and structure, use `references/template-usage.md`.
903. **Visualize**: Match content triggers (see `references/visual-templates.md`).
91 Prioritize single-column sizing; use double-column spans only when necessary (see Layout Hygiene).
92 Cite externally sourced figure content.
934. **Verify**: Web search + open source page (and PDF if available) before adding to `ref.bib`.
94 For arXiv entries, append BibTeX via `python3 scripts/arxiv_registry.py --project-dir <paper_dir> export-bibtex <arxiv_id> --out-bib <paper_dir>/ref.bib`.
955. **Update**: Mark issue `DONE` with `Verified_Citations` count.
966. Compile after meaningful changes; fix `Overfull \hbox` before marking `DONE`.
97
98### Phase 2.5: Rhythm Refinement
99After all writing issues are `DONE`, refine prose section-by-section using the `latex-rhythm-refiner` skill. This step varies sentence/paragraph lengths and removes filler phrases while preserving all citations.
100
101### Phase 3: QA Gate
1021. Run internal QA checklist (see `references/quality-report.md`).
1032. Compile; ensure no `Overfull \hbox` warnings in `main.log`.
1043. Deliver `main.tex`, `ref.bib`, figures, and `main.pdf`.
105
106---
107
108## Existing Paper Workflow (No Re-Scaffold)
109If a paper folder already exists, do NOT rerun scaffold:
110```bash
111# Create plan
112python3 scripts/create_paper_plan.py --topic "<topic>" --stage plan --output-dir <paper_dir>
113# STOP for approval, then check kickoff gate box
114# Create issues (use timestamp/slug from plan filename/frontmatter)
115python3 scripts/create_paper_plan.py --topic "<topic>" --stage issues --timestamp "<TS>" --slug "<slug>" --output-dir <paper_dir> --with-literature-notes
116```
117
118## Citation-Validation Variant
1191. Treat provided path as LaTeX project root.
1202. Follow `references/citation-workflow.md`.
1213. Use `references/bibtex-guide.md` for BibTeX rules if entries need repair.
1224. Deliver validation report and corrected `ref.bib` if requested.
123
124---
125
126## Success Criteria
127
128**Compilation**: `python3 scripts/compile_paper.py --project-dir <paper_dir>` (exit 0, no "Citation undefined" warnings). Use `--report-page-counts` for main-text page count.
129
130**Quality Metrics**:
131- 6-10 pages of main text (references excluded)
132- 60-80 total citations (8+ per section)
133- 100% citation verification rate
134- 70%+ citations from last 3 years
135- 5+ visualization types
136- All issues `DONE` or `SKIP`
137
138---
139
140## Safety & Guardrails
141- **Never fabricate** citations or results; add TODO and ask user if evidence missing.
142- **Verify every citation** via web search + source page (and PDF if available) before adding to `ref.bib`.
143- **Confirm before** large literature searches.
144- **Do not overwrite** user files without confirmation.
145- **Issues CSV** is the contract; mark `DONE` only when criteria met.
146- **No submission bundles** unless user requests.
147
148## Layout Hygiene
149Fix `Overfull \hbox` warnings before marking issues `DONE`:
150- Figures: start with `figure` + `\columnwidth`; switch to `figure*` + `\textwidth` if needed
151- Tables: prefer `p{...}` column widths / `\tabcolsep` over `\resizebox`
152- Equations: use `split`, `multline`, `aligned`, or `IEEEeqnarray` for line-breaking
153
154---
155
156## Issues CSV Schema
157| Phase | Issues |
158|-------|--------|
159| Research | Rx: discovery, scaffolding, framework, viz planning |
160| Writing | Wx: each section with target citations and visualization |
161| Refinement | RFx: apply `latex-rhythm-refiner` skill (after all Wx DONE) |
162| QA | Qx: citation verification, QA checklist, compilation, final review |
163
164Status: `TODO` → `DOING` → `DONE`. Schema validated by `validate_paper_issues.py`.