SKILL.md
Subsection Briefs
Triggers & routing
- Trigger: subsection briefs, writing cards, intent cards, H3 briefs, scope_rule, axes, clusters, 写作意图卡, 小节卡片, 段落计划.
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.pyas 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, andsubsection-writer.
Load Order
Always read:
references/overview.md
Read by task:
- If
thesisfeels repetitive or copyable, readreferences/thesis_patterns.md. - If
tensionstatementis too generic, readreferences/tensionpatterns.md. - If axes are weak or domain-biased, read
references/axiscataloggeneric.mdandreferences/axiscatalogllm_agents.md. - If transition handles feel bland, read
references/bridge_terms.md. - For calibration, read
references/examples_good.md.
Machine-readable assets:
assets/phrasepacks/thesispatterns.jsonassets/phrasepacks/bridgecontrast.jsonassets/domain_packs/generic.jsonassets/domainpacks/llmagents.jsonassets/domainpacks/embodiedai.jsonassets/domainpacks/ragevaluation.jsonassets/domainpacks/textto_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.ymloutline/mapping.tsvpapers/paper_notes.jsonl- Optional:
GOAL.md - Optional:
outline/claimevidencematrix.md
Output
outline/subsection_briefs.jsonl
Required record shape remains compatibility-preserving:
- identity:
subid,title,sectionid,section_title - planning core:
rq,thesis,scoperule,axes,bridgeterms,contrasthook,tensionstatement - evidence hooks:
evaluationanchorminimal,requiredevidencefields,clusters - execution plan:
paragraphplan,evidencelevelsummary,generatedat
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_statementconservative 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_termsto 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_rulesover 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.ymlfor section/subsection structureoutline/mapping.tsvfor paper-to-subsection coveragepapers/paper_notes.jsonlfor structured evidenceGOAL.mdfor topic/domain cuesoutline/claimevidencematrix.mdas 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.mdand 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.jsonlis thin, reroute to note extraction rather than inventing axes.