$npx -y skills add WILLOSCAR/research-units-pipeline-skills --skill outline-budgeterMerge/simplify an over-fragmented outline to hit a paper-like section budget (NO PROSE): target final ToC ~6–8 H2, fewer thicker H3. Trigger: outline budget, merge sections, too many sections, H3 explosion, 大纲预算, 合并小节, 大纲太碎. Use when: outline/outline.yml exists but woul
| 1 | # Outline Budgeter (NO PROSE) |
| 2 | |
| 3 | Purpose: prevent the most common survey failure mode: **H3 explosion** (too many tiny subsections) leading to a thin, outline-like PDF. |
| 4 | |
| 5 | This skill rewrites `outline/outline.yml` into a **paper-like budget**: |
| 6 | - Final ToC target: ~6–8 H2 sections (Intro / Related Work + 3–4 core chapters + Discussion + Conclusion) |
| 7 | - H3 target: fewer, thicker subsections (per `draft_profile`: course_paper<=6, survey<=10, deep<=12) |
| 8 | |
| 9 | Important: Discussion/Conclusion are appended in C5 merge (global sections), so the *outline itself* should usually be <=6 H2. |
| 10 | |
| 11 | ## Inputs |
| 12 | |
| 13 | - `outline/outline.yml` |
| 14 | - Optional (helps make merges evidence-aware): |
| 15 | - `queries.md` (optional: if it sets `draft_profile`, use it to choose the H3 budget) |
| 16 | - `outline/mapping.tsv` |
| 17 | - `outline/coverage_report.md` |
| 18 | - `GOAL.md` |
| 19 | |
| 20 | ## Outputs |
| 21 | |
| 22 | - `outline/outline.yml` (updated in place) |
| 23 | - `outline/OUTLINE_BUDGET_REPORT.md` (bullets-only; what was merged and why) |
| 24 | |
| 25 | ## Workflow (NO PROSE) |
| 26 | |
| 27 | 1) Read the outline and compute a simple budget snapshot: |
| 28 | - If `queries.md` sets `draft_profile` (`course_paper`/`survey`/`deep`), use it to decide the H3 budget target. |
| 29 | - H2 count (excluding Discussion/Conclusion, which are not in the outline) |
| 30 | - Total H3 count |
| 31 | - H3 count per H2 chapter |
| 32 | |
| 33 | 2) Decide a merge plan (structure-first, evidence-aware): |
| 34 | - Prefer merging *adjacent* H3s that share similar axes/keywords. |
| 35 | - Prefer merging H3s with weak mapping coverage (if `mapping.tsv` exists). |
| 36 | - If `outline/coverage_report.md` exists (from `outline-refiner`), use it to identify weak-coverage or high-reuse subsections to merge. |
| 37 | - Use `GOAL.md` as the scope constraint: avoid merges that mix distinct research questions or scope boundaries. |
| 38 | - Prefer moving fine-grained distinctions into bullets/axes instead of creating new subsections. |
| 39 | |
| 40 | 3) Apply merges in `outline/outline.yml`: |
| 41 | - Merge titles into a clearer, thicker subsection title. |
| 42 | - Merge bullets (dedupe templates; keep Stage A fields: Intent/RQ/Evidence needs/Expected cites). |
| 43 | - Keep ids stable when possible. |
| 44 | - If you must change ids, record it explicitly in the report and assume `mapping.tsv` must be regenerated. |
| 45 | |
| 46 | 4) Write `outline/OUTLINE_BUDGET_REPORT.md`: |
| 47 | - Before/after counts. |
| 48 | - List of merges (old ids/titles -> new id/title). |
| 49 | - Any risks (e.g., mapping reset required). |
| 50 | |
| 51 | ## Quality checklist |
| 52 | |
| 53 | - [ ] No placeholders (`TODO`/`…`/`(placeholder)`). |
| 54 | - [ ] Outline budget matches the paper-like target. |
| 55 | - [ ] Each remaining H3 is thick enough to sustain evidence-first writing (its bullets mention concrete comparisons + eval anchors + failure modes). |
| 56 | |
| 57 | ## Troubleshooting |
| 58 | |
| 59 | ### Issue: merging makes a subsection too broad |
| 60 | |
| 61 | Fix: |
| 62 | - Keep one H3, but split its bullets into explicit comparison axes and required evidence fields; defer fine-grained splits to later if evidence is strong enough. |
| 63 | |
| 64 | ### Issue: mapping breaks after id changes |
| 65 | |
| 66 | Fix: |
| 67 | - Rerun `section-mapper` to regenerate `outline/mapping.tsv`, then rerun `outline-refiner`. |