PaperOrchestra outline-agent

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".

install
source · Clone the upstream repo
git clone https://github.com/Ar9av/PaperOrchestra
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Ar9av/PaperOrchestra "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/outline-agent" ~/.claude/skills/ar9av-paperorchestra-outline-agent && rm -rf "$T"
manifest: skills/outline-agent/SKILL.md
source content

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:
    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.

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