$npx -y skills add WILLOSCAR/research-units-pipeline-skills --skill outline-builderConvert a taxonomy (outline/taxonomy.yml) into a bullet-only outline (outline/outline.yml) with sections/subsections. Trigger: outline builder, bullet outline, outline.yml, 大纲生成, bullets-only. Use when: structure 阶段(NO PROSE),已有 taxonomy,需要生成可映射/可写作的章节与小节骨架(每小节≥3 bull
| 1 | # Outline Builder |
| 2 | |
| 3 | `outline/outline.refined.ok` freezes a reviewed outline only while the marker is newer than the outline, all declared inputs, the defaults asset, and the generator. Upstream changes invalidate the marker and trigger a backed-up regeneration. |
| 4 | |
| 5 | Build `outline/outline.yml` from either: |
| 6 | - `outline/taxonomy.yml` (legacy H3-first compatibility path) |
| 7 | - `outline/chapter_skeleton.yml` + `outline/section_briefs.jsonl` (section-first transition path) |
| 8 | |
| 9 | Compatibility mode is active: this migration keeps the current output contract while moving intro/related defaults, Stage A bullet templates, and domain-specific comparison framing into `references/` and `assets/`. |
| 10 | |
| 11 | ## Load Order |
| 12 | |
| 13 | Always read: |
| 14 | - `references/overview.md` |
| 15 | - `references/stage_a_contract.md` |
| 16 | |
| 17 | Read by task: |
| 18 | - `references/intro_related_patterns.md` when changing `Introduction` / `Related Work` defaults |
| 19 | - `references/examples_good.md` and `references/examples_bad.md` for bullet calibration |
| 20 | |
| 21 | Machine-readable asset: |
| 22 | - `assets/outline_defaults.yaml` |
| 23 | |
| 24 | ## Inputs |
| 25 | |
| 26 | Required: |
| 27 | - `outline/taxonomy.yml` |
| 28 | |
| 29 | Optional human calibration only: |
| 30 | - `ref/agent-surveys/STYLE_REPORT.md` |
| 31 | - `ref/agent-surveys/text/` |
| 32 | |
| 33 | ## Output |
| 34 | |
| 35 | Keep the current output contract: |
| 36 | - `outline/outline.yml` |
| 37 | |
| 38 | ## Compatibility mode |
| 39 | |
| 40 | Current mode is reference-first with script compatibility: |
| 41 | - front-chapter defaults live in `assets/outline_defaults.yaml` |
| 42 | - Stage A bullet defaults and comparison-axis packs live in `assets/outline_defaults.yaml` |
| 43 | - examples and boundary rules live in `references/` |
| 44 | - `scripts/run.py` still owns outline materialization, section-first input selection, and placeholder-safe overwrite behavior |
| 45 | |
| 46 | ## Script boundary |
| 47 | |
| 48 | Use `scripts/run.py` only for: |
| 49 | - loading taxonomy or section-first structure inputs plus the defaults asset |
| 50 | - rendering the outline skeleton deterministically |
| 51 | - preserving existing non-placeholder outlines |
| 52 | - choosing comparison-axis packs from machine-readable defaults |
| 53 | |
| 54 | Do not treat the script as the main place for: |
| 55 | - domain framing for `Introduction` / `Related Work` |
| 56 | - long bullet banks or writing exemplars |
| 57 | - prompt-heavy guidance about how a good outline should read |
| 58 | |
| 59 | ## Output shape rules |
| 60 | |
| 61 | Keep these stable: |
| 62 | - `outline/outline.yml` is a YAML list |
| 63 | - `Introduction` and `Related Work` remain the first two H2 sections |
| 64 | - each H3 subsection contains the Stage A bullets: `Intent:` / `RQ:` / `Evidence needs:` / `Expected cites:` |
| 65 | - each H3 subsection adds several topic-specific bullets after the Stage A fields |
| 66 | - the helper never overwrites non-placeholder user work |
| 67 | |
| 68 | ## Quick Start |
| 69 | |
| 70 | - `uv run python .codex/skills/outline-builder/scripts/run.py --help` |
| 71 | - `uv run python .codex/skills/outline-builder/scripts/run.py --workspace <workspace>` |
| 72 | |
| 73 | ## Execution notes |
| 74 | |
| 75 | When running this skill in compatibility mode, `scripts/run.py` currently reads: |
| 76 | - `outline/taxonomy.yml`, or |
| 77 | - `outline/chapter_skeleton.yml` + `outline/section_briefs.jsonl` |
| 78 | - `assets/outline_defaults.yaml` |
| 79 | |
| 80 | The optional style references under `ref/agent-surveys/` are for human calibration only: |
| 81 | - use `ref/agent-surveys/STYLE_REPORT.md` to sanity-check chapter counts / thickness |
| 82 | - skim `ref/agent-surveys/text/` only to calibrate structure rather than wording |
| 83 | |
| 84 | ## Script |
| 85 | |
| 86 | ### Quick Start |
| 87 | |
| 88 | - `uv run python .codex/skills/outline-builder/scripts/run.py --workspace <workspace>` |
| 89 | |
| 90 | ### All Options |
| 91 | |
| 92 | - `--workspace <dir>` |
| 93 | - `--unit-id <id>` |
| 94 | - `--inputs <path1;path2>` |
| 95 | - `--outputs <path1;path2>` |
| 96 | - `--checkpoint <C*>` |
| 97 | |
| 98 | ### Examples |
| 99 | |
| 100 | - `uv run python .codex/skills/outline-builder/scripts/run.py --workspace <workspace>` |
| 101 | |
| 102 | ## Troubleshooting |
| 103 | |
| 104 | - If `Related Work` still carries domain-specific framing, patch `assets/outline_defaults.yaml` before changing Python. |
| 105 | - If subsection bullets feel generic, review `references/stage_a_contract.md` and `references/examples_good.md`. |
| 106 | - If the outline is structurally valid but too fragmented, reroute to `outline-budgeter` rather than expanding this script. |