mcpbeat

Subsection Briefs

willoscar/subsection-briefs

| Build per-subsection writing briefs (NO PROSE) so later drafting is driven by evidence and checkable comparison axes (not outline placeholders).

30k tokens
context cost
the whole folder, loaded on every use
16
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 subsection-briefs

What comes with it

116 030 bytes besides the instruction
assets/domain_packs/embodied_ai.json
assets/domain_packs/generic.json
assets/domain_packs/llm_agents.json
assets/domain_packs/rag_evaluation.json
assets/domain_packs/text_to_image.json
assets/phrase_packs/bridge_contrast.json
assets/phrase_packs/thesis_patterns.json
references/axis_catalog_generic.md
references/axis_catalog_llm_agents.md
references/bridge_terms.md
references/examples_good.md
references/overview.md
references/tension_patterns.md
references/thesis_patterns.md
scripts/run.py

The instruction itself

14 sections, as written by the author

Subsection Briefs

outline/subsection_briefs.refined.ok freezes reviewed briefs only while the marker is newer than the briefs, declared inputs, domain packs, and generator. Stale markers are removed before backed-up regeneration.

Build deterministic H3 brief cards from outline + mapping + paper notes.

Compatibility mode is active: this skill keeps the current outline/subsection_briefs.jsonl field contract and paragraph-plan shape while moving phrase/domain logic into references/ and assets/.

Quick Use

  • Run scripts/run.py as the deterministic materializer.
  • Keep the output NO PROSE: subsection-scoped plans, axes, clusters, and bridge handles only.
  • Preserve current downstream compatibility for transition-weaver, writer-context-pack, and subsection-writer.

Load Order

Always read:

  • references/overview.md

Read by task:

  • If thesis feels repetitive or copyable, read references/thesis_patterns.md.
  • If tension_statement is too generic, read references/tension_patterns.md.
  • If axes are weak or domain-biased, read references/axis_catalog_generic.md and references/axis_catalog_llm_agents.md.
  • If transition handles feel bland, read references/bridge_terms.md.
  • For calibration, read references/examples_good.md.

Machine-readable assets:

  • assets/phrase_packs/thesis_patterns.json
  • assets/phrase_packs/bridge_contrast.json
  • assets/domain_packs/generic.json
  • assets/domain_packs/llm_agents.json
  • assets/domain_packs/embodied_ai.json
  • assets/domain_packs/rag_evaluation.json
  • assets/domain_packs/text_to_image.json

The script loads these packs first; patch them before changing Python when the issue is phrasing, domain routing, axis inventory, cluster purity, or lexical bridge coverage.

Inputs

  • outline/outline.yml
  • outline/mapping.tsv
  • papers/paper_notes.jsonl
  • Optional: GOAL.md
  • Optional: outline/claim_evidence_matrix.md

Output

  • outline/subsection_briefs.jsonl

Required record shape remains compatibility-preserving:

  • identity: sub_id, title, section_id, section_title
  • planning core: rq, thesis, scope_rule, axes, bridge_terms, contrast_hook, tension_statement
  • evidence hooks: evaluation_anchor_minimal, required_evidence_fields, clusters
  • execution plan: paragraph_plan, evidence_level_summary, generated_at

What run.py Should Do

  • Read outline, mapping, and notes.
  • Normalize subsection seeds from outline bullets.
  • Load thesis/tension/domain-axis packs from assets/.
  • Produce stable JSONL records with the existing contract.

What run.py Should Not Do

  • Do not invent papers, citations, or claims.
  • Do not emit reader-facing narrative prose.
  • Do not hardcode domain-specific sentence templates when an asset pack can hold them.

Block / Reroute

  • If outline, mapping, or notes are missing, stop.
  • If evidence is thin, keep thesis/tension_statement conservative and let downstream evidence skills strengthen the subsection.
  • If contrast clusters collapse into overlapping paper pools, reroute before writing: after removing bridge papers, each side should still retain at least 2 unique papers.
  • Use bridge_terms to surface concrete lexical handles that later evidence/ranking stages can still match (OOD, sim-to-real, world model, failure detector, specific benchmark families), not only generic axis names.
  • Prefer domain-pack cluster_rules over ad-hoc bootstrap overlaps when the mapped set is already large enough to support disjoint clusters.
  • Do not “fix” thin evidence by inventing more specific axes or stronger claims.

Execution notes

When running in compatibility mode, scripts/run.py currently reads:

  • outline/outline.yml for section/subsection structure
  • outline/mapping.tsv for paper-to-subsection coverage
  • papers/paper_notes.jsonl for structured evidence
  • GOAL.md for topic/domain cues
  • outline/claim_evidence_matrix.md as optional supporting context when present

Script

Quick Start

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

All Options

  • --workspace <dir>
  • --unit-id <id>
  • --inputs <a;b;...>
  • --outputs <a;b;...>
  • --checkpoint <C*>

Examples

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

Troubleshooting

  • If the wrong domain pack is selected, inspect GOAL.md and the asset packs before changing the script.
  • If briefs sound too generic, adjust the phrase/domain packs instead of adding more Python prose.
  • If papers/paper_notes.jsonl is thin, reroute to note extraction rather than inventing axes.

How to use it

Copy the folder

Take willoscar/subsection-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.