# Outline Agent

Step 1 of the PaperOrchestra pipeline (arXiv:2604.05018).

- Repository: https://github.com/Ar9av/PaperOrchestra (694 stars)
- Category: Writing
- License: see repository
- Last updated: 2026-10-11
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add Ar9av/PaperOrchestra --skill outline-agent -g -a claude-code -y`
Codex: `npx skills add Ar9av/PaperOrchestra --skill outline-agent -g -a codex -y`
Cursor: `npx skills add Ar9av/PaperOrchestra --skill outline-agent -g -a cursor -y`
Gemini CLI: `npx skills add Ar9av/PaperOrchestra --skill outline-agent -g -a gemini-cli -y`

## Description

Step 1 of the PaperOrchestra pipeline (arXiv:2604.05018). Convert (idea.md, experimental_log.md, template.tex, conference_guidelines.md) into a strict JSON outline containing a plotting plan, literature search plan (Intro + Related Work), and section-level writing plan with citation hints. TRIGGER when the orchestrator delegates Step 1 or when the user asks to "outline a paper from raw materials" or "generate the paper structure".

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Outline Agent (Step 1)

Faithful implementation of the Outline Agent from PaperOrchestra
(Song et al., 2026, arXiv:2604.05018, App. F.1, pp. 40, 44).

**Cost: 1 LLM call.**

## Your task

Read four input files from the workspace and produce a single JSON object at
`workspace/outline.json` with three top-level keys:

- `plotting_plan`, array of figure objects
- `intro_related_work_plan`, object with `introduction_strategy` and `related_work_strategy`
- `section_plan`, array of section objects, each with `section_title` and `subsections[]`

## How to do it

1. **Read the verbatim prompt at `references/prompt.md`.** This is the exact
   Outline Agent system prompt from the paper. Use it as your system message.
2. **Prepend the Anti-Leakage Prompt** from
   `../paper-orchestra/references/anti-leakage-prompt.md`.
3. **Read the four input files**:
   - `workspace/inputs/idea.md`
   - `workspace/inputs/experimental_log.md`
   - `workspace/inputs/template.tex`
   - `workspace/inputs/conference_guidelines.md`
4. **Synthesize across all four**, the global instruction in the prompt is
   "Do not analyze inputs in isolation. You must synthesize information across
   all provided documents for every step."
5. **Emit a single JSON object** following the schema in
   `references/outline-schema.md`. Cross-check against
   `references/outline_schema.json` (machine-readable).
6. **Save to** `workspace/outline.json`.
7. **Validate**:
   ```bash
   python skills/outline-agent/scripts/validate_outline.py workspace/outline.json
   ```
   If validation fails, fix the JSON and re-validate. Do not proceed to Step 2
   or Step 3 with an invalid outline, every downstream agent depends on this
   schema.

8. **Append §1 to research_brief.md** (see `skills/shared/research_brief_template.md`):

   After `outline.json` passes validation, append the §1 section to
   `workspace/research_brief.md` (create the file if absent). Template:

The rest: https://github.com/Ar9av/PaperOrchestra/blob/HEAD/skills/outline-agent/SKILL.md
