$npx -y skills add woodfishhhh/EZ_math_model --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 | ## Hard rules from the prompt (do not violate) |
| 44 | |
| 45 | These are excerpted from `references/prompt.md`. The validator enforces them. |
| 46 | |
| 47 | ### Plotting plan (Directive 1) |
| 48 | |
| 49 | - `plot_type` MUST be exactly one of `"plot"` or `"diagram"`. |
| 50 | - `data_source` MUST be exactly one of `"idea.md"`, `"experimental_log.md"`, |
| 51 | or `"both"`. |
| 52 | - `aspect_ratio` MUST be exactly one of: |
| 53 | `"1:1"`, `"1:4"`, `"2:3"`, `"3:2"`, `"3:4"`, `"4:1"`, `"4:3"`, `"4:5"`, |
| 54 | `"5:4"`, `"9:16"`, `"16:9"`, `"21:9"`. |
| 55 | - `figure_id` MUST be a semantically meaningful snake_case identifier |
| 56 | (e.g., `fig_framework_overview`, `fig_ablation_study_parameter_sensitivity`). |
| 57 | - `figure_id` MUST NOT contain the word `"Figure"`. |
| 58 | |
| 59 | ### Intro / Related Work strategy (Directive 2) |
| 60 | |
| 61 | - Strictly separate Introduction (macro-level context, 10-20 papers, |
| 62 | foundational + survey + impact) from Related Work (micro-level technical |
| 63 | baselines, 30-50 papers, divided into 2-4 methodology clusters that |
| 64 | directly compete with or precede the proposed approach). |
| 65 | - For each Related Work cluster: provide `methodology_cluster`, |
| 66 | `sota_investigation_mission`, `limitation_hypothesis`, |
| 67 | `limitation_search_queries`, `bridge_to_our_method`. |
| 68 | - **CRITICAL TIMELINE RULE**: Do not instruct searches for any papers |
| 69 | published after `{cutoff_date}`. Derive `cutoff_date` from |
| 70 | `conference_guidelines.md` (e.g., "ICLR 2025 → cutoff October 2024", |
| 71 | "CVPR 2025 → cutoff November 2024"). If unspecified, default to one month |
| 72 | before today's date. |
| 73 | |
| 74 | ### Section plan (Directive 3) |
| 75 | |
| 76 | - **Structural hierarchy**: if Subsection X.1 is created, X.2 is mandatory. |
| 77 | No orphaned subsections. Omit subsections entirely if a section does not |
| 78 | require division. |
| 79 | - **Content specificity**: each `content_bullets` entry must reference source |
| 80 | materials concretely. AVOID "Describe the model". REQUIRE "Formalize the |
| 81 | Temporal-Aware Attention mechanism using Eq. 3 from idea.md." |
| 82 | - **Mandatory citations**: every dataset, optimizer, metric, and |
| 83 | foundational architecture/model mentioned in `idea.md` or |
| 84 | `experimental_log.md` MUST have a citation hint, no matter how ubiquitous |
| 85 | (e.g., AdamW, ResNet, ImageNet, CLIP, Transformer, LLaMA, GPT, LLaVA). |
| 86 | - **Citation hint format**: |
| 87 | - If you know the exact author and title: |
| 88 | `"Author (Exact Paper Title)"` |
| 89 | - Otherwise: `"research paper or technical report introducing '[Exact Model/Dataset/Metric Name]'"` |
| 90 | - **Do NOT guess or hallucinate authors.** |
| 91 | |
| 92 | ## Output |
| 93 | |
| 94 | Exactly one file: `workspace/outline.json`. No prose, no code blocks, no |
| 95 | markdown. The Section Writing Agent and Literature Review Agent will parse |
| 96 | this JSON directly. |
| 97 | |
| 98 | See `references/example-output.json` for a complete worked example from the |
| 99 | paper (App. F.1, pp. 43–44). |
| 100 | |
| 101 | ## Resources |
| 102 | |
| 103 | - `references/prompt.md` — verbatim Outline Agent prompt from App. F.1 |
| 104 | - `references/out |