Chapter Briefs (H2 writing cards) [NO PROSE]
Purpose: turn each H2 chapter that contains H3 subsections into a chapter-level writing card so the writer can:
- add a chapter lead paragraph block (coherence)
- keep a consistent comparison axis across the chapter
- avoid “8 small islands” where every H3 restarts from scratch
This artifact is internal intent, not reader-facing prose.
Why this matters for writing quality:
- Chapter briefs prevent the "paragraph island" failure mode: without a throughline, each H3 restarts and repeats openers.
- Treat
throughline and lead_paragraph_plan as decision constraints, not copyable sentences.
Inputs
outline/outline.yml
outline/subsection_briefs.jsonl
- Optional:
GOAL.md
Outputs
outline/chapter_briefs.jsonl
Output format (outline/chapter_briefs.jsonl)
JSONL (one object per H2 chapter that has H3 subsections).
Required fields:
section_id, section_title
subsections (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)
- Each bullet should be chapter-specific and mention concrete handles (axes / contrast hooks / evaluation lens).
- Avoid generic glue like "Para 1: introduce the chapter" without naming what is being compared.
bridge_terms (5–12 tokens; union of H3 bridge terms)
How C5 uses this (chapter lead contract)
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):
- Preview the chapter’s comparison axes (2–3) and how the H3s connect; do not restate the table of contents.
- Reuse
key_contrasts / bridge_terms as handles (not templates) so the chapter reads coherent without repeating "Taken together" everywhere.
- Keep it grounded (>=2 citations later in C5; do not invent new papers here).
Workflow
- (Optional) Read
GOAL.md to pin scope/audience, and inject that constraint into the chapter throughline.
- Read
outline/outline.yml and list H2 chapters that have H3 subsections.
- Read
outline/subsection_briefs.jsonl and group briefs by section_id.
- For each chapter, produce:
- a throughline: what the whole chapter is trying to compare/explain
- key contrasts: 2–6 contrasts that span multiple H3s
- a synthesis_mode: enforce synthesis diversity across chapters (avoid repeating the same closing paragraph shape)
- a lead paragraph plan: 2–3 paragraph objectives (what the chapter lead must do)
- a bridge_terms set to keep terminology stable across H3s
- Write
outline/chapter_briefs.jsonl.
Quality checklist
Script
Quick Start
python scripts/run.py --help
python scripts/run.py --workspace workspaces/<ws>
All Options
--workspace <dir>
--unit-id <U###>
--inputs <semicolon-separated>
--outputs <semicolon-separated>
--checkpoint <C#>
Examples
- Default IO:
python scripts/run.py --workspace workspaces/<ws>
- Explicit IO:
python scripts/run.py --workspace workspaces/<ws> --inputs "outline/outline.yml;outline/subsection_briefs.jsonl;GOAL.md" --outputs "outline/chapter_briefs.jsonl"
Refinement marker (recommended; prevents churn)
When you are satisfied with chapter briefs, create:
outline/chapter_briefs.refined.ok
This is an explicit "I reviewed/refined this" signal:
- prevents scripts from regenerating and undoing your work
- (in strict runs) can be used as a completion signal to avoid silently accepting a bootstrap scaffold
Notes
- This helper is a bootstrap; refine manually if needed.