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
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.
Prepend the Anti-Leakage Prompt from
../paper-orchestra/references/anti-leakage-prompt.md.
Read the four input files:
workspace/inputs/idea.md
workspace/inputs/experimental_log.md
workspace/inputs/template.tex
workspace/inputs/conference_guidelines.md
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."
Emit a single JSON object following the schema in
references/outline-schema.md. Cross-check against
references/outline_schema.json (machine-readable).
Save to workspace/outline.json.
Validate:
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.
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:
## §1 · Core Claim and Narrative
_Written by: outline-agent, Step 1_
**Core claim:** <one-sentence contribution>
**Narrative tension:** <gap this paper resolves>
**Key novelty framing:** <how the contribution is framed relative to prior work>
**Outline decisions:**
- Plotting plan: <N> figures
- Related Work clusters: <names>
- Section structure: <section titles>
**Potential weaknesses flagged at outline stage:**
- <any claim in idea.md that may be hard to support>
This is a free-form prose append; no machine-readable schema required.
Hard rules from the prompt (do not violate)
These are excerpted from references/prompt.md. The validator enforces them.
Plotting plan (Directive 1)
plot_type MUST be exactly one of "plot" or "diagram".
data_source MUST be exactly one of "idea.md", "experimental_log.md",
or "both".
aspect_ratio MUST be exactly one of:
"1:1", "1:4", "2:3", "3:2", "3:4", "4:1", "4:3", "4:5",
"5:4", "9:16", "16:9", "21:9".
figure_id MUST be a semantically meaningful snake_case identifier
(e.g., fig_framework_overview, fig_ablation_study_parameter_sensitivity).
figure_id MUST NOT contain the word "Figure".
Intro / Related Work strategy (Directive 2)
- Strictly separate Introduction (macro-level context, 10-20 papers,
foundational + survey + impact) from Related Work (micro-level technical
baselines, 30-50 papers, divided into 2-4 methodology clusters that
directly compete with or precede the proposed approach).
- For each Related Work cluster: provide
methodology_cluster,
sota_investigation_mission, limitation_hypothesis,
limitation_search_queries, bridge_to_our_method.
- CRITICAL TIMELINE RULE: Do not instruct searches for any papers
published after
{cutoff_date}. Derive cutoff_date from
conference_guidelines.md (e.g., "ICLR 2025 → cutoff October 2024",
"CVPR 2025 → cutoff November 2024"). If unspecified, default to one month
before today's date.
Section plan (Directive 3)
- Structural hierarchy: if Subsection X.1 is created, X.2 is mandatory.
No orphaned subsections. Omit subsections entirely if a section does not
require division.
- Content specificity: each
content_bullets entry must reference source
materials concretely. AVOID "Describe the model". REQUIRE "Formalize the
Temporal-Aware Attention mechanism using Eq. 3 from idea.md."
- Mandatory citations: every dataset, optimizer, metric, and
foundational architecture/model mentioned in
idea.md or
experimental_log.md MUST have a citation hint, no matter how ubiquitous
(e.g., AdamW, ResNet, ImageNet, CLIP, Transformer, LLaMA, GPT, LLaVA).
- Citation hint format:
- If you know the exact author and title:
"Author (Exact Paper Title)"
- Otherwise:
"research paper or technical report introducing '[Exact Model/Dataset/Metric Name]'"
- Do NOT guess or hallucinate authors.
Output
Exactly one file: workspace/outline.json. No prose, no code blocks, no
markdown. The Section Writing Agent and Literature Review Agent will parse
this JSON directly.
See references/example-output.json for a complete worked example from the
paper (App. F.1, pp. 43–44).
Resources
references/prompt.md — verbatim Outline Agent prompt from App. F.1
references/outline-schema.md — prose explanation of the schema
references/outline_schema.json — machine-readable JSON Schema
references/example-output.json — example output from the paper
references/allowed-values.md — enumerated allowed values for each enum field
scripts/validate_outline.py — JSON Schema validator
skills/shared/research_brief_template.md — NEW §1 schema; append after outline.json passes validation
1---2name: outline-agent3description: 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".4---56# Outline Agent (Step 1)78Faithful implementation of the Outline Agent from PaperOrchestra9(Song et al., 2026, arXiv:2604.05018, App. F.1, pp. 40–44).1011**Cost: 1 LLM call.**1213## Your task1415Read four input files from the workspace and produce a single JSON object at16`workspace/outline.json` with three top-level keys:1718- `plotting_plan` — array of figure objects19- `intro_related_work_plan` — object with `introduction_strategy` and `related_work_strategy`20- `section_plan` — array of section objects, each with `section_title` and `subsections[]`2122## How to do it23241. **Read the verbatim prompt at `references/prompt.md`.** This is the exact25 Outline Agent system prompt from the paper. Use it as your system message.262. **Prepend the Anti-Leakage Prompt** from27 `../paper-orchestra/references/anti-leakage-prompt.md`.283. **Read the four input files**:29 - `workspace/inputs/idea.md`30 - `workspace/inputs/experimental_log.md`31 - `workspace/inputs/template.tex`32 - `workspace/inputs/conference_guidelines.md`334. **Synthesize across all four** — the global instruction in the prompt is34 "Do not analyze inputs in isolation. You must synthesize information across35 all provided documents for every step."365. **Emit a single JSON object** following the schema in37 `references/outline-schema.md`. Cross-check against38 `references/outline_schema.json` (machine-readable).396. **Save to** `workspace/outline.json`.407. **Validate**:41 ```bash42 python skills/outline-agent/scripts/validate_outline.py workspace/outline.json43 ```44 If validation fails, fix the JSON and re-validate. Do not proceed to Step 245 or Step 3 with an invalid outline — every downstream agent depends on this46 schema.47488. **Append §1 to research_brief.md** (see `skills/shared/research_brief_template.md`):4950 After `outline.json` passes validation, append the §1 section to51 `workspace/research_brief.md` (create the file if absent). Template:5253 ```markdown54 ## §1 · Core Claim and Narrative55 _Written by: outline-agent, Step 1_5657 **Core claim:** <one-sentence contribution>58 **Narrative tension:** <gap this paper resolves>59 **Key novelty framing:** <how the contribution is framed relative to prior work>60 **Outline decisions:**61 - Plotting plan: <N> figures62 - Related Work clusters: <names>63 - Section structure: <section titles>64 **Potential weaknesses flagged at outline stage:**65 - <any claim in idea.md that may be hard to support>66 ```6768 This is a free-form prose append; no machine-readable schema required.6970## Hard rules from the prompt (do not violate)7172These are excerpted from `references/prompt.md`. The validator enforces them.7374### Plotting plan (Directive 1)7576- `plot_type` MUST be exactly one of `"plot"` or `"diagram"`.77- `data_source` MUST be exactly one of `"idea.md"`, `"experimental_log.md"`,78 or `"both"`.79- `aspect_ratio` MUST be exactly one of:80 `"1:1"`, `"1:4"`, `"2:3"`, `"3:2"`, `"3:4"`, `"4:1"`, `"4:3"`, `"4:5"`,81 `"5:4"`, `"9:16"`, `"16:9"`, `"21:9"`.82- `figure_id` MUST be a semantically meaningful snake_case identifier83 (e.g., `fig_framework_overview`, `fig_ablation_study_parameter_sensitivity`).84- `figure_id` MUST NOT contain the word `"Figure"`.8586### Intro / Related Work strategy (Directive 2)8788- Strictly separate Introduction (macro-level context, 10-20 papers,89 foundational + survey + impact) from Related Work (micro-level technical90 baselines, 30-50 papers, divided into 2-4 methodology clusters that91 directly compete with or precede the proposed approach).92- For each Related Work cluster: provide `methodology_cluster`,93 `sota_investigation_mission`, `limitation_hypothesis`,94 `limitation_search_queries`, `bridge_to_our_method`.95- **CRITICAL TIMELINE RULE**: Do not instruct searches for any papers96 published after `{cutoff_date}`. Derive `cutoff_date` from97 `conference_guidelines.md` (e.g., "ICLR 2025 → cutoff October 2024",98 "CVPR 2025 → cutoff November 2024"). If unspecified, default to one month99 before today's date.100101### Section plan (Directive 3)102103- **Structural hierarchy**: if Subsection X.1 is created, X.2 is mandatory.104 No orphaned subsections. Omit subsections entirely if a section does not105 require division.106- **Content specificity**: each `content_bullets` entry must reference source107 materials concretely. AVOID "Describe the model". REQUIRE "Formalize the108 Temporal-Aware Attention mechanism using Eq. 3 from idea.md."109- **Mandatory citations**: every dataset, optimizer, metric, and110 foundational architecture/model mentioned in `idea.md` or111 `experimental_log.md` MUST have a citation hint, no matter how ubiquitous112 (e.g., AdamW, ResNet, ImageNet, CLIP, Transformer, LLaMA, GPT, LLaVA).113- **Citation hint format**:114 - If you know the exact author and title:115 `"Author (Exact Paper Title)"`116 - Otherwise: `"research paper or technical report introducing '[Exact Model/Dataset/Metric Name]'"`117 - **Do NOT guess or hallucinate authors.**118119## Output120121Exactly one file: `workspace/outline.json`. No prose, no code blocks, no122markdown. The Section Writing Agent and Literature Review Agent will parse123this JSON directly.124125See `references/example-output.json` for a complete worked example from the126paper (App. F.1, pp. 43–44).127128## Resources129130- `references/prompt.md` — verbatim Outline Agent prompt from App. F.1131- `references/outline-schema.md` — prose explanation of the schema132- `references/outline_schema.json` — machine-readable JSON Schema133- `references/example-output.json` — example output from the paper134- `references/allowed-values.md` — enumerated allowed values for each enum field135- `scripts/validate_outline.py` — JSON Schema validator136- `skills/shared/research_brief_template.md` — **NEW** §1 schema; append after outline.json passes validation