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.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:
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.
1---2name: subsection-briefs3description: Build per-subsection writing briefs (NO PROSE) so later drafting is driven by evidence and checkable comparison axes (not outline placeholders).4---56# Subsection Briefs78## Triggers & routing910- **Trigger**: subsection briefs, writing cards, intent cards, H3 briefs, scope_rule, axes, clusters, 写作意图卡, 小节卡片, 段落计划.111213`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.1415Build deterministic H3 brief cards from outline + mapping + paper notes.1617Compatibility 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/`.1819## Quick Use2021- Run `scripts/run.py` as the deterministic materializer.22- Keep the output NO PROSE: subsection-scoped plans, axes, clusters, and bridge handles only.23- Preserve current downstream compatibility for `transition-weaver`, `writer-context-pack`, and `subsection-writer`.2425## Load Order2627Always read:28- `references/overview.md`2930Read by task:31- If `thesis` feels repetitive or copyable, read `references/thesis_patterns.md`.32- If `tension_statement` is too generic, read `references/tension_patterns.md`.33- If axes are weak or domain-biased, read `references/axis_catalog_generic.md` and `references/axis_catalog_llm_agents.md`.34- If transition handles feel bland, read `references/bridge_terms.md`.35- For calibration, read `references/examples_good.md`.3637Machine-readable assets:3839- `assets/phrase_packs/thesis_patterns.json`40- `assets/phrase_packs/bridge_contrast.json`41- `assets/domain_packs/generic.json`42- `assets/domain_packs/llm_agents.json`43- `assets/domain_packs/embodied_ai.json`44- `assets/domain_packs/rag_evaluation.json`45- `assets/domain_packs/text_to_image.json`4647The 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.4849## Inputs5051- `outline/outline.yml`52- `outline/mapping.tsv`53- `papers/paper_notes.jsonl`54- Optional: `GOAL.md`55- Optional: `outline/claim_evidence_matrix.md`5657## Output5859- `outline/subsection_briefs.jsonl`6061Required record shape remains compatibility-preserving:6263- identity: `sub_id`, `title`, `section_id`, `section_title`64- planning core: `rq`, `thesis`, `scope_rule`, `axes`, `bridge_terms`, `contrast_hook`, `tension_statement`65- evidence hooks: `evaluation_anchor_minimal`, `required_evidence_fields`, `clusters`66- execution plan: `paragraph_plan`, `evidence_level_summary`, `generated_at`6768## What `run.py` Should Do6970- Read outline, mapping, and notes.71- Normalize subsection seeds from outline bullets.72- Load thesis/tension/domain-axis packs from `assets/`.73- Produce stable JSONL records with the existing contract.7475## What `run.py` Should Not Do7677- Do not invent papers, citations, or claims.78- Do not emit reader-facing narrative prose.79- Do not hardcode domain-specific sentence templates when an asset pack can hold them.8081## Block / Reroute8283- If outline, mapping, or notes are missing, stop.84- If evidence is thin, keep `thesis`/`tension_statement` conservative and let downstream evidence skills strengthen the subsection.85- 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.86- 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.87- Prefer domain-pack `cluster_rules` over ad-hoc bootstrap overlaps when the mapped set is already large enough to support disjoint clusters.88- Do not “fix” thin evidence by inventing more specific axes or stronger claims.899091## Execution notes9293When running in compatibility mode, `scripts/run.py` currently reads:94- `outline/outline.yml` for section/subsection structure95- `outline/mapping.tsv` for paper-to-subsection coverage96- `papers/paper_notes.jsonl` for structured evidence97- `GOAL.md` for topic/domain cues98- `outline/claim_evidence_matrix.md` as optional supporting context when present99100## Script101102### Quick Start103104- `uv run python .codex/skills/subsection-briefs/scripts/run.py --workspace <workspace>`105106### All Options107108- `--workspace <dir>`109- `--unit-id <id>`110- `--inputs <a;b;...>`111- `--outputs <a;b;...>`112- `--checkpoint <C*>`113114### Examples115116- `uv run python .codex/skills/subsection-briefs/scripts/run.py --workspace <workspace>`117118## Troubleshooting119120- If the wrong domain pack is selected, inspect `GOAL.md` and the asset packs before changing the script.121- If briefs sound too generic, adjust the phrase/domain packs instead of adding more Python prose.122- If `papers/paper_notes.jsonl` is thin, reroute to note extraction rather than inventing axes.