Empirical Paper Writer
Use this skill for novel experimental research papers after the topic and contribution have already been framed.
This skill is the empirical counterpart to ../arxiv-paper-writer.
It reuses the same high-value paper-engine pieces—citation discipline, LaTeX
compilation, source policy, and QA—but changes the paper logic from review to
experiment-driven writing.
When to Use
- The user wants a method/experiment paper rather than a review.
- The contribution requires experiments, ablations, or quantitative comparisons.
- The user wants a near-submission draft with explicit placeholders where evidence is not yet verified.
When NOT to Use
- Pure surveys, taxonomies, or literature syntheses.
- Non-academic reports.
- Cases where the user only wants experiment design and no paper draft.
Inputs
- Topic / research direction
- Handoff artifacts from
../paper-from-zerowhen available:brief/topic-brief.mdbrief/contribution-map.yamlbrief/evidence-matrix.csvplan/outline-contract.md
- Optional user-provided innovation, baselines, datasets, or results
Outputs
main.tex(placeholder-safe draft)ref.bibpaper.config.yaml(includesruntime.*for experiment execution)plan/<timestamp>-<slug>.mdissues/<timestamp>-<slug>.csv- Optional
notes/literature-notes.md - Recommended
notes/innovation/(candidates + decision log + evidence links) notes/design/CSV artifacts (baselines.csv,method-components.csv,experiment-matrix.csv)- Figures/tables/result placeholders in the LaTeX draft (hypothesis-safe)
- Optional
experiments/code scaffold (PyTorch skeleton; not executed by this skill) main.pdfafter compile/QA when LaTeX is available
Non-Negotiable Rules
- No prose in
main.texuntil plan approved and issues CSV exists. - Do not fabricate results, numbers, or significance claims.
- Every experimental claim must map to an evidence item or explicit placeholder.
- Mark result status explicitly as one of
planned,placeholder, orverified. - Reuse the existing paper-engine scripts for citation verification, compile, source ranking, and QA whenever possible.
Workflow
Gate 0: Scaffold + Research Contract
- Confirm venue, page target, datasets/baselines if already known, and any user-provided innovation.
- Search literature and gather only enough papers to frame the problem, baselines, and closest related methods.
- Create or refine:
- contribution map
- experiment/evidence matrix
- outline contract
- Scaffold the project:
bash
python3 scripts/bootstrap_ieee_empirical_paper.py --stage kickoff --topic "<topic>" --layout project--layout projectcreates<project>/paper/(LaTeX + issues) and<project>/experiments/(code scaffold). For a lighter entrypoint with an outline-only plan:bashpython3 scripts/bootstrap_ieee_empirical_paper.py --stage outline --topic "<topic>" --layout project - Create a skeleton-only
main.texwith headings, bullet placeholders, experiment slots, and seed citations. - STOP until the user approves the plan.
Phase 0.5: Method & Experiment Design
After the user approves the initial plan, design the method and experiments before creating the issues CSV. This phase produces structured CSV artifacts.
Step 1: Systematic Baseline Identification
- From the contribution-map primary claim, search for baselines in 3 categories:
- Direct competitors: SOTA methods on the same task (last 2 years).
- Foundational methods: well-known classics that anchor the field.
- Ablation anchors: our method minus its core innovation.
- Record 10-20 candidates in
notes/design/baselines.csv(seeassets/baselines-template.csv). - Select 4-8 baselines for final comparison. Mark
selected=yeswith reason. - See
references/experiment-design.mdSection 1 for selection criteria.
Step 2: Innovation Module Design
- From the gap analysis (nearest prior work weaknesses × improvable directions):
- Design a minimum viable innovation: one core change that is clearly testable.
- Make the innovation modular (pluggable component, supports ablation).
- Define clear input/output interfaces for reproducibility.
- Record all pipeline components in
notes/design/method-components.csv(seeassets/method-components-template.csv). - Mark
is_novel=yesfor novel components; definereplaceable_byfor ablation.
Step 3: Pipeline Architecture Design
- Design the overall flow: input → preprocessing → core module(s) → postprocessing → output.
- For each component: function, input/output format, replaceability.
- Training flow: loss function rationale, optimizer, tuning strategy.
- Inference flow: runtime cost estimate.
- Sketch a pipeline architecture diagram placeholder for the Method section.
Step 4: Comparison Experiment Matrix
- Design the baselines × datasets × metrics matrix.
- Fair comparison rules:
- Same data splits, preprocessing, and evaluation protocol for all methods.
- Use official implementations or paper-reported results (annotate source).
- Plan ≥3 runs with different seeds; report mean ± std.
- Record all experiment rows in
notes/design/experiment-matrix.csvwithtype=main_comparison(seeassets/experiment-matrix-template.csv).
Step 5: Ablation Experiment Design
- From
method-components.csv, identify factors byablation_priority:- High: core innovation components (must ablate).
- Medium: architecture choices (ablate if space allows).
- Low: hyperparameter choices (include only if impact is significant).
- For each factor: define removal/degradation/random-replacement strategy.
- Record in
experiment-matrix.csvwithtype=ablation. - Minimum 4 ablation factors.
Step 6: Robustness & Efficiency Analysis Plan
- Robustness: noise levels, distribution shift, domain transfer scenarios.
- Error analysis: failure case categories, sampling protocol.
- Efficiency: parameter count, FLOPs, inference latency vs baselines.
- Record in
experiment-matrix.csvwithtype=robustnessandtype=efficiency.
Phase 0.5 outputs (saved in notes/design/):
baselines.csv— baseline & SOTA competitive landscapeexperiment-matrix.csv— full experiment design matrixmethod-components.csv— pipeline component inventory
STOP until the user confirms the design artifacts before proceeding to Gate 1.
Gate 1: Create Issues CSV
- Check the kickoff gate in the plan.
- Create issues CSV:
bash
python3 scripts/bootstrap_ieee_empirical_paper.py --stage issues --topic "<topic>" --with-literature-notes --layout project - Validate:
Forbashpython3 scripts/validate_empirical_paper_issues.py <paper_dir>/issues/<timestamp>-<slug>.csv--layout project,<paper_dir>is<project>/paper.
Phase 1.5: Literature Enrichment Gate
Before starting the writing loop, ensure citation coverage is adequate.
- Count check: total unique entries in
ref.bib. If < 25, trigger enrichment. - Cluster search: for each Related Work sub-area (from the RW taxonomy), search for 3-5 additional relevant papers beyond the initial spine set.
- Baseline citations: every selected baseline in
baselines.csvmust have at least one corresponding entry inref.bib. - Method motivation: for each novel component in
method-components.csv, find 1-2 papers that motivate the design choice (prior art or the gap it fills). - Verify all new citations via the standard verification pipeline.
- Gate: do not start W1 until
ref.bibhas ≥ 25 verified entries. Target 30-40 for the finished paper (empirical papers need fewer than reviews, but 14 is universally too low).
Phase 2: Execution Loop
For each issue:
- Research the exact claim, baseline, or related-work gap.
- Draft the assigned section or experiment block.
- Keep results explicit:
verified: backed by real evidenceplaceholder: reserved for future real evidenceplanned: the experiment is designed but not yet filled in
- Prefer hypothesis-safe writing for any unverified outcome (e.g.,
(hypothesis)/[Pending: ...]tags). - Never write deterministic superiority claims without verified evidence.
- Run citation audit / compile / QA before marking DONE.
- Dependency enforcement: Before marking any issue DONE, verify that ALL issues listed in its
Depends_Oncolumn are already DONE or SKIP. If any dependency is still TODO or DOING, the current issue MUST NOT be marked DONE. This rule is non-negotiable.
Phase 2.2: Issue Execution Helpers
- Use
python3 ../arxiv-paper-writer/scripts/issue_workflow.py --project-dir <paper_dir> render-skeleton --issues <issues.csv> --issue-id <Wx>to render a LaTeX section skeleton for a Writing issue. - Add
--apply-if-missingonly when the full section path is entirely absent frommain.tex; nested insertion under an existing parent stays manual. - Before QA or after a batch of edits, run
python3 ../arxiv-paper-writer/scripts/issue_workflow.py --project-dir <paper_dir> audit --issues <issues.csv>to check section-path consistency, citation counts, placeholders, and lightweight figure/page signals.
Phase 2.3: Experiment Execution Checkpoint
After all experiment design issues (E0-E4) and experiment code issues (E5-E7) are DONE:
- Check runability: Verify that the experiment runner script exists and is syntactically valid.
- STOP and instruct the user:
- Tell the user to run experiments in their configured environment:
conda activate <runtime.conda_env> cd <project_dir>/experiments python run_all.py --config configs/<config>.yaml - Tell the user to invoke
results-backfillSKILL after experiments complete.
- Tell the user to run experiments in their configured environment:
- Do NOT attempt to run long experiments within the AI session.
- Mark experiment execution issues (E8-E10) as TODO with note "awaiting user execution".
Phase 2.4: Structural Figure Generation
After all writing issues (W1-W7) reach DONE, resolve structural diagrams. These are non-result figures—architecture, pipeline, formulation diagrams that depend on method design, not on experiment outcomes.
Step 1: Identify required figures
Scan main.tex for \fbox{...placeholder...}. Classify each:
- Structural (derivable from method-components.csv / problem formulation): generate now.
- Result-dependent (needs experiment data): keep as placeholder until Phase 2.5.
Step 2: Generate structural TikZ figures For each structural placeholder:
- Read
notes/design/method-components.csvto extract component names, is_novel flags, and data-flow edges. - Select a pattern from
references/figure-generation-guide.md. - Generate a
.tikzfile underpaper/figures/and replace the\fboxwith\input{figures/<name>.tikz}. - Standard figures for empirical papers (generate at least 2 of 3):
- System overview / teaser (
fig:teaser): problem setting + where the method fits. Place in Introduction. - Method architecture (
fig:method): pipeline with components, novel parts highlighted. Place in Method. - Formulation diagram (optional,
fig:formulation): MDP / state machine / optimization flow. Place in Problem Formulation or Method.
- System overview / teaser (
Step 3: Visual issues tracking Use V-prefixed issues (V1, V2, ...) in the issues CSV for each figure. Mark DONE only when the TikZ compiles and is referenced in text.
See references/figure-generation-guide.md for TikZ patterns and style rules.
Gate: All structural \fbox placeholders must be resolved before
Phase 2.5. Result-dependent \fbox pass through to Phase 2.5.
Phase 2.5: Claim Upgrade & Placeholder Resolution
After experiment issues (E*) reach verified status, perform a systematic
upgrade pass. This phase has four mandatory steps.
Step 1: Claim Analysis (mandatory)
For each contribution claim (C0, C1, C2, ...):
- Map the claim to its supporting experiments in
experiment-matrix.csv. - Check
result_statusfor ALL supporting experiment rows. - Apply the upgrade decision:
| Evidence state | Action |
|---|---|
| ALL experiments verified | Upgrade (hypothesis) → bounded factual claim with specific numbers |
| SOME verified, SOME planned | Upgrade the verified part; note remaining gaps explicitly |
| NONE verified | Keep as (hypothesis) |
- When upgrading, write with the verified numbers:
- BAD: "Our method improves the tradeoff (hypothesis)."
- GOOD: "Our method achieves 0.27% violation rate, a 58% reduction vs. the nearest constrained baseline (0.65%), while maintaining comparable cost (0.8% higher than MPC)."
- Update contribution list in Introduction to reflect upgrades.
See references/abstract-conclusion-guide.md for the claim-upgrade
decision tree and safe-language patterns.
Step 2: Result-dependent Figure Resolution (mandatory)
For each remaining \fbox{...placeholder...} in main.tex:
- Check whether the required data exists in
paper/results/. - If data exists: generate figure (TikZ plot, table, or pgfplots).
- If data does not exist: replace
\fboxwith an explicit text marker[Figure pending: <experiment_id> not yet verified].
Step 3: Section Back-fill (mandatory)
For each experiment-matrix.csv row with result_status=verified:
- Check whether the corresponding section in
main.texcontains actual results or is still a skeleton. - If skeleton: fill with verified results, tables, and analysis text.
- For sections where only SOME experiments are verified: write verified
portions and mark remaining as
[Results pending: <experiment_id>].
Step 4: Abstract & Conclusion Completion (mandatory)
-
Abstract (see
references/abstract-conclusion-guide.md):- Sentence 1: Problem statement
- Sentence 2-3: Method core idea
- Sentence 3-4: Experimental setting
- Sentence 4-5: Key verified result (specific numbers)
- Sentence 5: Implication
- Constraint: ≤250 words, no citations, no unexpanded acronyms.
- If main results are verified, the abstract MUST contain specific numbers. Do not write a vague abstract when data exists.
-
Conclusion (see
references/abstract-conclusion-guide.md):- Paragraph 1: Problem restatement + method summary (2-3 sentences)
- Paragraph 2: Key verified findings with specific numbers from results tables/figures. One sentence per major finding.
- Paragraph 3: Limitations (brief) + concrete future work items (tied to planned/placeholder experiments)
- If a claim is still
(hypothesis), state it as future work, not as a finding.
Gate: Do not proceed to Rhythm Refinement (Phase 2.7) until:
- All
\fboxplaceholders are resolved or explicitly marked pending. - No
(hypothesis)tags remain for claims with verified evidence. - Abstract is substantive (not a stub).
- Conclusion contains specific numbers from verified results.
Phase 2.7: 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
../arxiv-paper-writer/references/quality-report.md). - Audit source quality and venue policy:
python3 ../arxiv-paper-writer/scripts/issue_workflow.py --project-dir <paper_dir> audit --issues <issues.csv> --fail-on-issuespython3 ../arxiv-paper-writer/scripts/source_ranker.py --project-dir <paper_dir> rankpython3 ../arxiv-paper-writer/scripts/citation_policy.py --project-dir <paper_dir> audit-bibpython3 ../arxiv-paper-writer/scripts/citation_policy.py --project-dir <paper_dir> audit-tex --issues <issues.csv>python3 ../arxiv-paper-writer/scripts/style_profile.py --project-dir <paper_dir> check-draft(if usingstyle_mode=target_venue)python3 ../arxiv-paper-writer/scripts/compile_paper.py --project-dir <paper_dir> --check-warnings --fail-on-warningspython3 ../arxiv-paper-writer/scripts/citation_policy.py --project-dir <paper_dir> lint-bib --fail-on-lint
- Compile; ensure no
Overfull \hboxwarnings inmain.log. - Deliver
main.tex,ref.bib, figures, andmain.pdf.
Runtime Environment
Before running any experiment or utility script:
- Read
paper.config.yaml→runtime.conda_envorruntime.python. - If
conda_envis set, activate it:conda activate <env_name>. - If
pythonis set, use that interpreter directly. - If neither is set, ask the user which conda environment to use.
- All subprocess calls should use the configured interpreter, not the system default.
Success Criteria
Compilation: python3 ../arxiv-paper-writer/scripts/compile_paper.py --project-dir <paper_dir> --check-warnings --fail-on-warnings (exit 0).
Quality Metrics:
- 6-10 pages of main text (references excluded)
- 30-60 total citations (fewer than review; experiment evidence replaces some citations)
- 100% citation verification rate
- 5+ visualization types (including result tables/figures)
- ≥2 structural TikZ figures (system overview + method architecture)
- 0 remaining
\fboxplaceholders inmain.tex - Abstract is substantive (≤250 words, contains verified key result)
- Conclusion contains specific numbers from verified experiments
- All issues
DONEorSKIP - All result statements either
verifiedor explicitlyplaceholder - No
(hypothesis)tags for claims with verified evidence
Safety & Guardrails
- Never fabricate citations, results, numbers, or significance claims; add TODO and ask user if evidence missing.
- Result status must be accurate: never write
verifiedfor a result that is actuallyplaceholder. - 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
DONEonly 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 tofigure*+\textwidthif needed - Tables: prefer
p{...}column widths /\tabcolsepover\resizebox - Equations: use
split,multline,aligned, orIEEEeqnarrayfor line-breaking
Issues CSV Schema
The empirical issues CSV uses an 18-column schema with experiment-specific fields.
| Column | Purpose |
|---|---|
| ID | Issue identifier with phase prefix (R/E/W/RF/Q + number) |
| Phase | One of: Research, Experiment, Writing, Refinement, QA |
| Title | Short description of the deliverable |
| Section_Path | Target section in main.tex (e.g., Introduction > Contributions) |
| Claim_ID | Links to evidence-matrix claim (e.g., C1, C2) |
| Evidence_Type | n/a, citation, experiment, figure, table, mixed |
| Experiment_ID | Links to experiment matrix (e.g., EXP-1) |
| Result_Status | n/a, planned, placeholder, verified |
| Description | Detailed scope of the issue |
| Source_Policy | core, standard, frontier (for citation sourcing) |
| Target_Citations | Minimum citations expected for this issue |
| Visualization | Required figure/table description |
| Acceptance | Criteria for marking DONE |
| Status | TODO, DOING, DONE, SKIP |
| Verified_Citations | Actual verified citation count |
| Depends_On | Semicolon-separated issue IDs that must complete first |
| Must_Verify | yes/no: whether this issue requires evidence verification |
| Notes | Free-form notes |
Phase prefixes: R (Research), E (Experiment), W (Writing), RF (Refinement), Q (QA).
Schema validated by scripts/validate_empirical_paper_issues.py.
../arxiv-paper-writer/scripts/arxiv_registry.py../arxiv-paper-writer/scripts/compile_paper.py../arxiv-paper-writer/scripts/citation_policy.py../arxiv-paper-writer/scripts/source_ranker.py../arxiv-paper-writer/scripts/style_profile.py
References to Read
references/experiment-design.md(baseline selection, experiment matrix patterns, ablation design, statistical rigor)references/figure-generation-guide.md(TikZ patterns for structural diagrams)references/abstract-conclusion-guide.md(abstract template, conclusion template, claim upgrade decision tree)references/research-workflow.mdreferences/experiment-evidence.mdreferences/results-writing.mdreferences/reviewer-loop.mdreferences/reproducibility-checklist.mdreferences/fork-extend-workflow.md- Also reuse common references from
../arxiv-paper-writer/references/:bibtex-guide.mdcitation-workflow.mdquality-report.mdtemplate-usage.mdvisual-templates.mdwriting-style.md


