$npx -y skills add Ar9av/PaperOrchestra --skill outline-agentStep 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 citat
| 1 | # Outline Agent (Step 1) |
| 2 | |
| 3 | Faithful implementation of the Outline Agent from PaperOrchestra |
| 4 | (Song et al., 2026, arXiv:2604.05018, App. F.1, pp. 40–44). |
| 5 | |
| 6 | **Cost: 1 LLM call.** |
| 7 | |
| 8 | ## Your task |
| 9 | |
| 10 | Read four input files from the workspace and produce a single JSON object at |
| 11 | `workspace/outline.json` with three top-level keys: |
| 12 | |
| 13 | - `plotting_plan` — array of figure objects |
| 14 | - `intro_related_work_plan` — object with `introduction_strategy` and `related_work_strategy` |
| 15 | - `section_plan` — array of section objects, each with `section_title` and `subsections[]` |
| 16 | |
| 17 | ## How to do it |
| 18 | |
| 19 | 1. **Read the verbatim prompt at `references/prompt.md`.** This is the exact |
| 20 | Outline Agent system prompt from the paper. Use it as your system message. |
| 21 | 2. **Prepend the Anti-Leakage Prompt** from |
| 22 | `../paper-orchestra/references/anti-leakage-prompt.md`. |
| 23 | 3. **Read the four input files**: |
| 24 | - `workspace/inputs/idea.md` |
| 25 | - `workspace/inputs/experimental_log.md` |
| 26 | - `workspace/inputs/template.tex` |
| 27 | - `workspace/inputs/conference_guidelines.md` |
| 28 | 4. **Synthesize across all four** — the global instruction in the prompt is |
| 29 | "Do not analyze inputs in isolation. You must synthesize information across |
| 30 | all provided documents for every step." |
| 31 | 5. **Emit a single JSON object** following the schema in |
| 32 | `references/outline-schema.md`. Cross-check against |
| 33 | `references/outline_schema.json` (machine-readable). |
| 34 | 6. **Save to** `workspace/outline.json`. |
| 35 | 7. **Validate**: |
| 36 | ```bash |
| 37 | python skills/outline-agent/scripts/validate_outline.py workspace/outline.json |
| 38 | ``` |
| 39 | If validation fails, fix the JSON and re-validate. Do not proceed to Step 2 |
| 40 | or Step 3 with an invalid outline — every downstream agent depends on this |
| 41 | schema. |
| 42 | |
| 43 | 8. **Append §1 to research_brief.md** (see `skills/shared/research_brief_template.md`): |
| 44 | |
| 45 | After `outline.json` passes validation, append the §1 section to |
| 46 | `workspace/research_brief.md` (create the file if absent). Template: |
| 47 | |
| 48 | ```markdown |
| 49 | ## §1 · Core Claim and Narrative |
| 50 | _Written by: outline-agent, Step 1_ |
| 51 | |
| 52 | **Core claim:** <one-sentence contribution> |
| 53 | **Narrative tension:** <gap this paper resolves> |
| 54 | **Key novelty framing:** <how the contribution is framed relative to prior work> |
| 55 | **Outline decisions:** |
| 56 | - Plotting plan: <N> figures |
| 57 | - Related Work clusters: <names> |
| 58 | - Section structure: <section titles> |
| 59 | **Potential weaknesses flagged at outline stage:** |
| 60 | - <any claim in idea.md that may be hard to support> |
| 61 | ``` |
| 62 | |
| 63 | This is a free-form prose append; no machine-readable schema required. |
| 64 | |
| 65 | ## Hard rules from the prompt (do not violate) |
| 66 | |
| 67 | These are excerpted from `references/prompt.md`. The validator enforces them. |
| 68 | |
| 69 | ### Plotting plan (Directive 1) |
| 70 | |
| 71 | - `plot_type` MUST be exactly one of `"plot"` or `"diagram"`. |
| 72 | - `data_source` MUST be exactly one of `"idea.md"`, `"experimental_log.md"`, |
| 73 | or `"both"`. |
| 74 | - `aspect_ratio` MUST be exactly one of: |
| 75 | `"1:1"`, `"1:4"`, `"2:3"`, `"3:2"`, `"3:4"`, `"4:1"`, `"4:3"`, `"4:5"`, |
| 76 | `"5:4"`, `"9:16"`, `"16:9"`, `"21:9"`. |
| 77 | - `figure_id` MUST be a semantically meaningful snake_case identifier |
| 78 | (e.g., `fig_framework_overview`, `fig_ablation_study_parameter_sensitivity`). |
| 79 | - `figure_id` MUST NOT contain the word `"Figure"`. |
| 80 | |
| 81 | ### Intro / Related Work strategy (Directive 2) |
| 82 | |
| 83 | - Strictly separate Introduction (macro-level context, 10-20 papers, |
| 84 | foundational + survey + impact) from Related Work (micro-level technical |
| 85 | baselines, 30-50 papers, divided into 2-4 methodology clusters that |
| 86 | directly compete with or precede the proposed approach). |
| 87 | - For each Related Work cluster: provide `methodology_cluster`, |
| 88 | `sota_investigation_mission`, `limitation_hypothesis`, |
| 89 | `limitation_search_queries`, `bridge_to_our_method`. |
| 90 | - **CRITICAL TIMELINE RULE**: Do not instruct searches for any papers |
| 91 | published after `{cutoff_date}`. Derive `cutoff_date` from |
| 92 | `conference_guidelines.md` (e.g., "ICLR 2025 → cutoff October 2024", |
| 93 | "CVPR 2025 → cutoff November 2024"). If unspecified, default to one month |
| 94 | before today's date. |
| 95 | |
| 96 | ### Section plan (Directive 3) |
| 97 | |
| 98 | - **Structural hierarchy**: if Subsection X.1 is created, X.2 is mandatory. |
| 99 | No orphaned subsections. Omit subsections entirely if a section does not |
| 100 | require division. |
| 101 | - **Content specificity**: each `content_bullets` entry must reference source |
| 102 | materials concretely. AVOID "Describe the model". REQUIRE "Formalize the |
| 103 | Temporal-Aware Attention mechanism using Eq. 3 from idea.md." |
| 104 | - **Mandatory citations**: every dataset, optimizer, metric, and |
| 105 | foundational archi |