section-writing-agent
Step 4 of the PaperOrchestra pipeline (arXiv:2604.05018). ONE single multimodal LLM call that drafts the remaining paper sections (Abstract, Methodology, Experiments, Conclusion), extracts numeric values from experimental_log.md into LaTeX booktabs tables, splices the generated figures from Step 2, and merges everything into the template that already contains Intro + Related Work from Step 3. TRIGGER when the orchestrator delegates Step 4 or when the user asks to "write the methodology and experiments sections" or "fill in the rest of the paper".
npx skills add Ar9av/PaperOrchestra --skill section-writing-agent --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# Section Writing Agent (Step 4) Faithful implementation of the Section Writing Agent from PaperOrchestra (Song et al., 2026, arXiv:2604.05018, §4 Step 4, App. F.1 pp. 47–49). **Cost: ONE LLM call** (App. B: "Section Writing Agent (1 call): A single, comprehensive multimodal call to draft and compile the complete LaTeX manuscript"). Do NOT split this into per-section calls — the paper explicitly designs it as one comprehensive call so the model can maintain global coherence across sections. ## Inputs - `workspace/outline.json` — the master plan - `workspace/inputs/idea.md` — technical details - `workspace/inputs/experimental_log.md` — raw data for tables and qualitative analysis - `workspace/drafts/intro_relwork.tex` — the template **with Intro + Related Work already filled in by Step 3**. This is your starting point. The preamble, package list, style, and the two pre-filled sections must be preserved verbatim. - `workspace/citation_pool.json` — the citation map (`{key, title, abstract}` for each verified paper) - `workspace/refs.bib` — the BibTeX file - `workspace/inputs/conference_guidelines.md` — formatting rules - `workspace/figures/` — the actual PNG files from Step 2 (used as
- Inputs
- Output
- How to do it
- 0.5. Read texprofile.json and select LaTeX patterns
- 1. Pre-extract metrics from the experimental log
- 2. Compose the prompt and make ONE multimodal call
- 3. Save the output
- 4. Run the deterministic gates
- Critical rules from the prompt
- Existing-content preservation
- Data and tables
- Citations
- Writing content
- Figures and visual fidelity
python skills/section-writing-agent/scripts/extract_metrics.py \
Orphan citation gate: every \cite{KEY} must exist in refs.bib
python skills/section-writing-agent/scripts/orphan_cite_gate.py \
workspace/drafts/paper.tex workspace/refs.bib
Latex sanity: matched braces, matched begin/end, no unescaped specials
python skills/section-writing-agent/scripts/latex_sanity.py \
workspace/drafts/paper.tex
Anti-leakage post-check: no author names, emails, affiliations
python skills/paper-orchestra/scripts/anti_leakage_check.py \What does the section-writing-agent skill do?
Step 4 of the PaperOrchestra pipeline (arXiv:2604.05018). ONE single multimodal LLM call that drafts the remaining paper sections (Abstract, Methodology, Experiments, Conclusion), extracts numeric values from experimental_log.md into LaTeX booktabs tables, splices the generated figures from Step 2, and merges everything into the template that already contains Intro + Related Work from Step 3. TRIGGER when the orchestrator delegates Step 4 or when the user asks to "write the methodology and experiments sections" or "fill in the rest of the paper".
How do I install it?
Run `npx skills add Ar9av/PaperOrchestra --skill section-writing-agent --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From Ar9av/PaperOrchestra, a repository with 627 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
