Outline Budgeter (NO PROSE)
Triggers & routing
- Trigger: outline budget, merge sections, too many sections, H3 explosion, 大纲预算, 合并小节, 大纲太碎.
- Use when:
outline/outline.yml exists but would produce thin sections (too many H2/H3); before (or immediately after) section-mapper.
Purpose: prevent the most common survey failure mode: H3 explosion (too many tiny subsections) leading to a thin, outline-like PDF.
This skill rewrites outline/outline.yml into a paper-like budget:
- Final ToC target: ~6–8 H2 sections (Intro / Related Work + 3–4 core chapters + Discussion + Conclusion)
- H3 target: fewer, thicker subsections (per
draft_profile: course_paper<=6, survey<=10, deep<=12)
Important: Discussion/Conclusion are appended in C5 merge (global sections), so the outline itself should usually be <=6 H2.
Inputs
outline/outline.yml
- Optional (helps make merges evidence-aware):
queries.md (optional: if it sets draft_profile, use it to choose the H3 budget)
outline/mapping.tsv
outline/coverage_report.md
GOAL.md
Outputs
outline/outline.yml (updated in place)
outline/OUTLINE_BUDGET_REPORT.md (bullets-only; what was merged and why)
Workflow (NO PROSE)
- Read the outline and compute a simple budget snapshot:
- If
queries.md sets draft_profile (course_paper/survey/deep), use it to decide the H3 budget target.
- H2 count (excluding Discussion/Conclusion, which are not in the outline)
- Total H3 count
- H3 count per H2 chapter
- Decide a merge plan (structure-first, evidence-aware):
- Prefer merging adjacent H3s that share similar axes/keywords.
- Prefer merging H3s with weak mapping coverage (if
mapping.tsv exists).
- If
outline/coverage_report.md exists (from outline-refiner), use it to identify weak-coverage or high-reuse subsections to merge.
- Use
GOAL.md as the scope constraint: avoid merges that mix distinct research questions or scope boundaries.
- Prefer moving fine-grained distinctions into bullets/axes instead of creating new subsections.
- Apply merges in
outline/outline.yml:
- Merge titles into a clearer, thicker subsection title.
- Merge bullets (dedupe templates; keep Stage A fields: Intent/RQ/Evidence needs/Expected cites).
- Keep ids stable when possible.
- If you must change ids, record it explicitly in the report and assume
mapping.tsv must be regenerated.
- Write
outline/OUTLINE_BUDGET_REPORT.md:
- Before/after counts.
- List of merges (old ids/titles -> new id/title).
- Any risks (e.g., mapping reset required).
Quality checklist
Troubleshooting
Issue: merging makes a subsection too broad
Fix:
- 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.
Issue: mapping breaks after id changes
Fix:
- Rerun
section-mapper to regenerate outline/mapping.tsv, then rerun outline-refiner.
1---2name: outline-budgeter3description: Merge/simplify an over-fragmented outline to hit a paper-like section budget (NO PROSE): target final ToC ~6–8 H2, fewer thicker H3.4---56# Outline Budgeter (NO PROSE)78## Triggers & routing910- **Trigger**: outline budget, merge sections, too many sections, H3 explosion, 大纲预算, 合并小节, 大纲太碎.11- **Use when**: `outline/outline.yml` exists but would produce thin sections (too many H2/H3); before (or immediately after) `section-mapper`.121314Purpose: prevent the most common survey failure mode: **H3 explosion** (too many tiny subsections) leading to a thin, outline-like PDF.1516This skill rewrites `outline/outline.yml` into a **paper-like budget**:17- Final ToC target: ~6–8 H2 sections (Intro / Related Work + 3–4 core chapters + Discussion + Conclusion)18- H3 target: fewer, thicker subsections (per `draft_profile`: course_paper<=6, survey<=10, deep<=12)1920Important: Discussion/Conclusion are appended in C5 merge (global sections), so the *outline itself* should usually be <=6 H2.2122## Inputs2324- `outline/outline.yml`25- Optional (helps make merges evidence-aware):26 - `queries.md` (optional: if it sets `draft_profile`, use it to choose the H3 budget)27 - `outline/mapping.tsv`28 - `outline/coverage_report.md`29 - `GOAL.md`3031## Outputs3233- `outline/outline.yml` (updated in place)34- `outline/OUTLINE_BUDGET_REPORT.md` (bullets-only; what was merged and why)3536## Workflow (NO PROSE)37381) Read the outline and compute a simple budget snapshot:39- If `queries.md` sets `draft_profile` (`course_paper`/`survey`/`deep`), use it to decide the H3 budget target.40- H2 count (excluding Discussion/Conclusion, which are not in the outline)41- Total H3 count42- H3 count per H2 chapter43442) Decide a merge plan (structure-first, evidence-aware):45- Prefer merging *adjacent* H3s that share similar axes/keywords.46- Prefer merging H3s with weak mapping coverage (if `mapping.tsv` exists).47- If `outline/coverage_report.md` exists (from `outline-refiner`), use it to identify weak-coverage or high-reuse subsections to merge.48- Use `GOAL.md` as the scope constraint: avoid merges that mix distinct research questions or scope boundaries.49- Prefer moving fine-grained distinctions into bullets/axes instead of creating new subsections.50513) Apply merges in `outline/outline.yml`:52- Merge titles into a clearer, thicker subsection title.53- Merge bullets (dedupe templates; keep Stage A fields: Intent/RQ/Evidence needs/Expected cites).54- Keep ids stable when possible.55 - If you must change ids, record it explicitly in the report and assume `mapping.tsv` must be regenerated.56574) Write `outline/OUTLINE_BUDGET_REPORT.md`:58- Before/after counts.59- List of merges (old ids/titles -> new id/title).60- Any risks (e.g., mapping reset required).6162## Quality checklist6364- [ ] No placeholders (`TODO`/`…`/`(placeholder)`).65- [ ] Outline budget matches the paper-like target.66- [ ] Each remaining H3 is thick enough to sustain evidence-first writing (its bullets mention concrete comparisons + eval anchors + failure modes).6768## Troubleshooting6970### Issue: merging makes a subsection too broad7172Fix:73- 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.7475### Issue: mapping breaks after id changes7677Fix:78- Rerun `section-mapper` to regenerate `outline/mapping.tsv`, then rerun `outline-refiner`.