{"id":"outline-agent","name":"outline-agent","summary":"PaperOrchestraパイプラインのステップ1(arXiv:2604.05018)。(idea.md、experimental_log.md、template.tex、conference_guidelines.md)を、プロット計画、文献検索計画(導入+関連研究)、セクションレベルの執筆計画(引用ヒント付き)…","body":"# Outline Agent (Step 1)\n\nFaithful implementation of the Outline Agent from PaperOrchestra\n(Song et al., 2026, arXiv:2604.05018, App. F.1, pp. 40–44).\n\n**Cost: 1 LLM call.**\n\n## Your task\n\nRead four input files from the workspace and produce a single JSON object at\n`workspace/outline.json` with three top-level keys:\n\n- `plotting_plan` — array of figure objects\n- `intro_related_work_plan` — object with `introduction_strategy` and `related_work_strategy`\n- `section_plan` — array of section objects, each with `section_title` and `subsections[]`\n\n## How to do it\n\n1. **Read the verbatim prompt at `references/prompt.md`.** This is the exact\n   Outline Agent system prompt from the paper. Use it as your system message.\n2. **Prepend the Anti-Leakage Prompt** from\n   `../paper-orchestra/references/anti-leakage-prompt.md`.\n3. **Read the four input files**:\n   - `workspace/inputs/idea.md`\n   - `workspace/inputs/experimental_log.md`\n   - `workspace/inputs/template.tex`\n   - `workspace/inputs/conference_guidelines.md`\n4. **Synthesize across all four** — the global instruction in the prompt is\n   \"Do not analyze inputs in isolation. You must synthesize information across\n   all provided documents for every step.\"\n5. **Emit a single JSON object** following the schema in\n   `references/outline-schema.md`. Cross-check against\n   `references/outline_schema.json` (machine-readable).\n6. **Save to** `workspace/outline.json`.\n7. **Validate**:\n   ```bash\n   python skills/outline-agent/scripts/validate_outline.py workspace/outline.json\n   ```\n   If validation fails, fix the JSON and re-validate. Do not proceed to Step 2\n   or Step 3 with an invalid outline — every downstream agent depends on this\n   schema.\n\n8. **Append §1 to research_brief.md** (see `skills/shared/research_brief_template.md`):\n\n   After `outline.json` passes validation, append the §1 section to\n   `workspace/research_brief.md` (create the file if absent). Template:\n\n   ```markdown\n   ## §1 · Core Claim and Narrative\n   _Written by: outline-agent, Step 1_\n\n   **Core claim:** <one-sentence contribution>\n   **Narrative tension:** <gap this paper resolves>\n   **Key novelty framing:** <how the contribution is framed relative to prior work>\n   **Outline decisions:**\n   - Plotting plan: <N> figures\n   - Related Work clusters: <names>\n   - Section structure: <section titles>\n   **Potential weaknesses flagged at outline stage:**\n   - <any claim in idea.md that may be hard to support>\n   ```\n\n   This is a free-form prose append; no machine-readable schema required.\n\n## Hard rules from the prompt (do not violate)\n\nThese are excerpted from `references/prompt.md`. The validator enforces them.\n\n### Plotting plan (Directive 1)\n\n- `plot_type` MUST be exactly one of `\"plot\"` or `\"diagram\"`.\n- `data_source` MUST be exactly one of `\"idea.md\"`, `\"experimental_log.md\"`,\n  or `\"both\"`.\n- `aspect_ratio` MUST be exactly one of:\n  `\"1:1\"`, `\"1:4\"`, `\"2:3\"`, `\"3:2\"`, `\"3:4\"`, `\"4:1\"`, `\"4:3\"`, `\"4:5\"`,\n  `\"5:4\"`, `\"9:16\"`, `\"16:9\"`, `\"21:9\"`.\n- `figure_id` MUST be a semantically meaningful snake_case identifier\n  (e.g., `fig_framework_overview`, `fig_ablation_study_parameter_sensitivity`).\n- `figure_id` MUST NOT contain the word `\"Figure\"`.\n\n### Intro / Related Work strategy (Directive 2)\n\n- Strictly separate Introduction (macro-level context, 10-20 papers,\n  foundational + survey + impact) from Related Work (micro-level technical\n  baselines, 30-50 papers, divided into 2-4 methodology clusters that\n  directly compete with or precede the proposed approach).\n- For each Related Work cluster: provide `methodology_cluster`,\n  `sota_investigation_mission`, `limitation_hypothesis`,\n  `limitation_search_queries`, `bridge_to_our_method`.\n- **CRITICAL TIMELINE RULE**: Do not instruct searches for any papers\n  published after `{cutoff_date}`. Derive `cutoff_date` from\n  `conference_guidelines.md` (e.g., \"ICLR 2025 → cutoff October 2024\",\n  \"CVPR 2025 → cutoff November 2024\"). If unspecified, default to one month\n  before today's date.\n\n### Section plan (Directive 3)\n\n- **Structural hierarchy**: if Subsection X.1 is created, X.2 is mandatory.\n  No orphaned subsections. Omit subsections entirely if a section does not\n  require division.\n- **Content specificity**: each `content_bullets` entry must reference source\n  materials concretely. AVOID \"Describe the model\". REQUIRE \"Formalize the\n  Temporal-Aware Attention mechanism using Eq. 3 from idea.md.\"\n- **Mandatory citations**: every dataset, optimizer, metric, and\n  foundational architecture/model mentioned in `idea.md` or\n  `experimental_log.md` MUST have a citation hint, no matter how ubiquitous\n  (e.g., AdamW, ResNet, ImageNet, CLIP, Transformer, LLaMA, GPT, LLaVA).\n- **Citation hint format**:\n  - If you know the exact author and title:\n    `\"Author (Exact Paper Title)\"`\n  - Otherwise: `\"research paper or technical report introducing '[Exact Model/Dataset/Metric Name]'\"`\n  - **Do NOT guess or hallucinate authors.**\n\n## Output\n\nExactly one file: `workspace/outline.json`. No prose, no code blocks, no\nmarkdown. The Section Writing Agent and Literature Review Agent will parse\nthis JSON directly.\n\nSee `references/example-output.json` for a complete worked example from the\npaper (App. F.1, pp. 43–44).\n\n## Resources\n\n- `references/prompt.md` — verbatim Outline Agent prompt from App. F.1\n- `references/outline-schema.md` — prose explanation of the schema\n- `references/outline_schema.json` — machine-readable JSON Schema\n- `references/example-output.json` — example output from the paper\n- `references/allowed-values.md` — enumerated allowed values for each enum field\n- `scripts/validate_outline.py` — JSON Schema validator\n- `skills/shared/research_brief_template.md` — **NEW** §1 schema; append after outline.json passes validation","author":"@Ar9av","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/Ar9av/PaperOrchestra/tree/main/skills/outline-agent","license":"MIT","category":"writing","lang":"en","tokens":1488,"stars":0,"calls30d":1,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[{"path":"references/allowed-values.md","size":2285,"sha256":"ea40a20e227fe824365accceb286a569f2805bb3a253d15a7da72f261dc0f77d"},{"path":"references/example-output.json","size":4952,"sha256":"90f31048c513b914f08205f9cff97b2eddba813bb4ed52e18d6ed982c5ab5673"},{"path":"references/outline_schema.json","size":4143,"sha256":"83e494c05cd8fb1d8bb8f5db828a731612ff1b4eda1b0909e16113e4a10e1021"},{"path":"references/outline-schema.md","size":4336,"sha256":"d9a504bc39c133c99d91f878502ced40359156d9a3057ad6c97f1bd7afd9fe47"},{"path":"references/prompt.md","size":6908,"sha256":"d05d5fdaecbefa04ab0f82287cc050e92469813d360399fffebdf4e0bbc3c61a"},{"path":"scripts/validate_outline.py","size":5167,"sha256":"b0d83e2518c697c5f28c5ad8f0ba96ac8a417a84d87f9bf8117e04980d509a10"}],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":true,"networkEndpoints":[]}}