Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Merge/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 would produce thin sections (too many H2/H3); before (or immediately after) `section-mapper`.
.claude/skills/willoscar-outline-budgeter/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | -14% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -7% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 54% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 59% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -24% | 0% |
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:
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.
outline/outline.ymlqueries.md (optional: if it sets draft_profile, use it to choose the H3 budget)outline/mapping.tsvoutline/coverage_report.mdGOAL.mdoutline/outline.yml (updated in place)outline/OUTLINE_BUDGET_REPORT.md (bullets-only; what was merged and why)1) Read the outline and compute a simple budget snapshot:
queries.md sets draft_profile (course_paper/survey/deep), use it to decide the H3 budget target.2) Decide a merge plan (structure-first, evidence-aware):
mapping.tsv exists).outline/coverage_report.md exists (from outline-refiner), use it to identify weak-coverage or high-reuse subsections to merge.GOAL.md as the scope constraint: avoid merges that mix distinct research questions or scope boundaries.3) Apply merges in outline/outline.yml:
mapping.tsv must be regenerated.4) Write outline/OUTLINE_BUDGET_REPORT.md:
TODO/…/(placeholder)).Fix:
Fix:
section-mapper to regenerate outline/mapping.tsv, then rerun outline-refiner.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 4,561 | 23,807 | +422% | 1 | 1 | 0% | 215 | 1,000 | +365% | 0 | 0 | — |
case-02 | fail→fail | 4,247 | 32,731 | +671% | 1 | 1 | 0% | 191 | 1,007 | +427% | 0 | 0 | — |
case-03 | fail→fail | 4,271 | 5,775 | +35% | 1 | 1 | 0% | 299 | 1,059 | +254% | 0 | 0 | — |
case-04 | pass→pass | 9,240 | 2,409 | -74% | 1 | 1 | 0% | 1,768 | 1,188 | -33% | 0 | 0 | — |
case-05 | fail→pass | 8,346 | 2,924 | -65% | 1 | 1 | 0% | 1,497 | 1,289 | -14% | 0 | 0 | — |
case-06 | fail→pass | 7,040 | 2,085 | -70% | 1 | 1 | 0% | 1,215 | 1,124 | -7% | 0 | 0 | — |
case-07 | fail→pass | 4,420 | 2,640 | -40% | 1 | 1 | 0% | 806 | 1,243 | +54% | 0 | 0 | — |
case-08 | fail→fail | 7,424 | 3,295 | -56% | 1 | 1 | 0% | 1,321 | 1,378 | +4% | 0 | 0 | — |
case-09 | fail→pass | 5,078 | 3,501 | -31% | 1 | 1 | 0% | 858 | 1,361 | +59% | 0 | 0 | — |
case-10 | fail→pass | 21,564 | 3,900 | -82% | 1 | 1 | 0% | 1,944 | 1,482 | -24% | 0 | 0 | — |
case-11 | fail→pass | 10,100 | 2,555 | -75% | 1 | 1 | 0% | 1,525 | 1,149 | -25% | 0 | 0 | — |
case-12 | fail→pass | 6,978 | 4,907 | -30% | 1 | 1 | 0% | 1,329 | 1,465 | +10% | 0 | 0 | — |
case-13 | pass→pass | 6,163 | 3,751 | -39% | 1 | 1 | 0% | 1,186 | 1,473 | +24% | 0 | 0 | — |
case-14 | pass→pass | 11,779 | 5,099 | -57% | 1 | 1 | 0% | 1,780 | 1,495 | -16% | 0 | 0 | — |
case-15 | pass→pass | 12,689 | 6,439 | -49% | 1 | 1 | 0% | 1,961 | 1,833 | -7% | 0 | 0 | — |
case-16 | fail→pass | 10,912 | 4,209 | -61% | 1 | 1 | 0% | 1,547 | 1,325 | -14% | 0 | 0 | — |
case-17 | fail→pass | 11,685 | 3,849 | -67% | 1 | 1 | 0% | 1,772 | 1,372 | -23% | 0 | 0 | — |
case-18 | pass→pass | 13,141 | 4,071 | -69% | 1 | 1 | 0% | 2,083 | 1,485 | -29% | 0 | 0 | — |
case-19 | fail→pass | 7,592 | 1,850 | -76% | 1 | 1 | 0% | 1,077 | 1,066 | -1% | 0 | 0 | — |
case-20 | fail→fail | 18,494 | 8,680 | -53% | 1 | 1 | 0% | 3,688 | 2,188 | -41% | 0 | 0 | — |
case-21 | fail→fail | 5,270 | 11,260 | +114% | 1 | 1 | 0% | 242 | 2,686 | +1010% | 0 | 0 | — |
case-22 | fail→fail | 13,604 | 7,769 | -43% | 1 | 1 | 0% | 2,365 | 2,220 | -6% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +45 percentage points is the difference between those two pass rates over the 19 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.