hezaohezao/research-paper-writing
ML paper pipeline: experiment design to submission.
npx skills add https://github.com/HezaoHezao/poirot --skill research-paper-writing
End-to-end pipeline for producing publication-ready ML/AI research papers
targeting NeurIPS, ICML, ICLR, ACL, AAAI, COLM. Covers the full research
lifecycle: experiment design, execution, analysis, paper writing, review,
revision, and submission.
This is not a linear pipeline — it is an iterative loop. Results trigger
new experiments. Reviews trigger new analysis.
Phase 0: Project Setup → Phase 1: Literature Review
│ │
▼ ▼
Phase 2: Experiment Phase 5: Paper Drafting ◄──┐
Design │ │
│ ▼ │
▼ Phase 6: Self-Review │
Phase 3: Execution & Revision ───────────┘
& Monitoring │
│ ▼
▼ Phase 7: Submission
Phase 4: Analysis
project/
├── experiments/
├── data/
├── src/
├── paper/
│ ├── main.tex
│ ├── figures/
│ └── references.bib
└── README.md
arxiv skill to find related workweb_search for non-arXiv papers (Semantic Scholar, Google Scholar)browse_page to read key papers in fullreferences.bib with all cited works# Run experiments
python src/train.py --config configs/exp1.yaml
# Monitor with logging
python src/train.py --config configs/exp1.yaml --log-dir runs/exp1
# Track experiments
python src/eval.py --checkpoint runs/exp1/best.pt --eval-set test
python src/plot.py --results runs/ --output paper/figures/
Follow venue template structure:
Writing principles:
Use academic-paper-review skill to self-review:
# Multiple seeds — compute mean ± std
python3 -c "
import numpy as np
results = [0.85, 0.83, 0.86, 0.84, 0.82] # per-seed results
print(f'Mean: {np.mean(results):.4f} ± {np.std(results):.4f}')
"
# Paired t-test vs baseline
python3 -c "
from scipy import stats
baseline = [0.80, 0.79, 0.81, 0.78, 0.80]
ours = [0.85, 0.83, 0.86, 0.84, 0.82]
t, p = stats.ttest_rel(ours, baseline)
print(f't={t:.3f}, p={p:.4f}')
"
proactively.
This skill benefits from: numpy, scipy, matplotlib (analysis + plots).
Install via pip install numpy scipy matplotlib.
Take hezaohezao/research-paper-writing from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference pip.
Without those the skill loads but fails at the first command.