Outline agent
An automated AI research-paper writer based off Google's PaperOrchestra paper's implementation through a skills - benchmark + autoraters using any coding agent (Claude Code, Cursor, Antigravity, Cline, Aider). No API keys, no LLM SDKs.
npx -y skills add Ar9av/PaperOrchestra --skill outline-agentAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
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
6.2 KB, as published. Nobody here has run it
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 objectsintro_related_work_plan— object withintroduction_strategyandrelated_work_strategysection_plan— array of section objects, each withsection_titleandsubsections[]
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.mdworkspace/inputs/experimental_log.mdworkspace/inputs/template.texworkspace/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 againstreferences/outline_schema.json(machine-readable). -
Save to
workspace/outline.json. -
Validate:
python skills/outline-agent/scripts/validate_outline.py workspace/outline.jsonIf 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.jsonpasses validation, append the §1 section toworkspace/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_typeMUST be exactly one of"plot"or"diagram".data_sourceMUST be exactly one of"idea.md","experimental_log.md", or"both".aspect_ratioMUST 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_idMUST be a semantically meaningful snake_case identifier (e.g.,fig_framework_overview,fig_ablation_study_parameter_sensitivity).figure_idMUST 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}. Derivecutoff_datefromconference_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_bulletsentry 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.mdorexperimental_log.mdMUST 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.
- If you know the exact author and title:
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.1references/outline-schema.md— prose explanation of the schemareferences/outline_schema.json— machine-readable JSON Schemareferences/example-output.json— example output from the paperreferences/allowed-values.md— enumerated allowed values for each enum fieldscripts/validate_outline.py— JSON Schema validatorskills/shared/research_brief_template.md— NEW §1 schema; append after outline.json passes validation