willoscar/chapter-briefs
| Build per-chapter (H2) writing briefs (NO PROSE) so the final survey reads like a paper (chapter leads + cross-H3 coherence) without inflating the ToC.
npx skills add https://github.com/WILLOSCAR/research-units-pipeline-skills --skill chapter-briefs
Purpose: turn each H2 chapter that contains H3 subsections into a chapter-level writing card so the writer can:
This artifact is internal intent, not reader-facing prose.
Why this matters for writing quality:
throughline and lead_paragraph_plan as decision constraints, not copyable sentences.outline/outline.ymloutline/subsection_briefs.jsonlGOAL.mdoutline/chapter_briefs.jsonloutline/chapter_briefs.jsonl)JSONL (one object per H2 chapter that has H3 subsections).
Required fields:
section_id, section_titlesubsections (list of {sub_id,title} in outline order)synthesis_mode (one of: clusters, timeline, tradeoff_matrix, case_study, tension_resolution)synthesis_preview (1–2 bullets; how the chapter will synthesize across H3 without template-y “Taken together…”)throughline (3–6 bullets)key_contrasts (2–6 bullets; pull from each H3 contrast_hook when available)lead_paragraph_plan (2–3 bullets; plan only, not prose)bridge_terms (5–12 tokens; union of H3 bridge terms)The writer uses outline/chapter_briefs.jsonl to draft sections/S<sec_id>_lead.md (body-only; no headings).
Contract (paper-like, no new facts):
key_contrasts / bridge_terms as *handles* (not templates) so the chapter reads coherent without repeating "Taken together" everywhere.GOAL.md to pin scope/audience, and inject that constraint into the chapter throughline.outline/outline.yml and list H2 chapters that have H3 subsections.outline/subsection_briefs.jsonl and group briefs by section_id.outline/chapter_briefs.jsonl.TODO/…/(placeholder)/template instructions).throughline and key_contrasts are chapter-specific (not copy/paste generic).lead_paragraph_plan bullets explicitly preview 2–3 comparison axes and how the H3 subsections partition them (no generic chapter-intro boilerplate).uv run python .codex/skills/chapter-briefs/scripts/run.py --helpuv run python .codex/skills/chapter-briefs/scripts/run.py --workspace <workspace>--workspace <dir>--unit-id <U###>--inputs <semicolon-separated>--outputs <semicolon-separated>--checkpoint <C#>uv run python .codex/skills/chapter-briefs/scripts/run.py --workspace <workspace>uv run python .codex/skills/chapter-briefs/scripts/run.py --workspace <workspace> --inputs "outline/outline.yml;outline/subsection_briefs.jsonl;GOAL.md" --outputs "outline/chapter_briefs.jsonl"When you are satisfied with chapter briefs, create:
outline/chapter_briefs.refined.okThis is an explicit "I reviewed/refined this" signal:
Take willoscar/chapter-briefs from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.