mcpbeat

Chapter Briefs

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.

3k tokens
context cost
the whole folder, loaded on every use
2
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
496
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/WILLOSCAR/research-units-pipeline-skills --skill chapter-briefs

What comes with it

8 526 bytes besides the instruction
scripts/run.py

The instruction itself

13 sections, as written by the author

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

  • [ ] One record per H2-with-H3 chapter.
  • [ ] No placeholders (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).

Script

Quick Start

  • uv run python .codex/skills/chapter-briefs/scripts/run.py --help
  • uv run python .codex/skills/chapter-briefs/scripts/run.py --workspace <workspace>

All Options

  • --workspace <dir>
  • --unit-id <U###>
  • --inputs <semicolon-separated>
  • --outputs <semicolon-separated>
  • --checkpoint <C#>

Examples

  • Default IO:
  • uv run python .codex/skills/chapter-briefs/scripts/run.py --workspace <workspace>
  • Explicit IO:
  • 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.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.

How to use it

Copy the folder

Take willoscar/chapter-briefs from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

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.