Build per-subsection writing briefs (NO PROSE) so later drafting is driven by evidence and checkable comparison axes (not outline placeholders). **Trigger**: subsection briefs, writing cards, intent cards, H3 briefs, scope_rule, axes, clusters, 写作意图卡, 小节卡片, 段落计划. **Use when**: `outline/outline.yml` + `outline/mapping.tsv` + `papers/paper_notes.jsonl` exist and you want section-by-section drafting without template leakage. **Skip if**: `outline/subsection_briefs.jsonl` already exists and is refined (no placeholders/ellipsis; axes+clusters+paragraph_plan are filled). **Network**: none. **Guardrail**: NO PROSE; do not invent papers; only reference `paper_id`/`bibkey` that exist in `papers/paper_notes.jsonl`.
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/.
scripts/run.py as the deterministic materializer.transition-weaver, writer-context-pack, and subsection-writer.Always read:
references/overview.mdRead by task:
thesis feels repetitive or copyable, read references/thesis_patterns.md.tension_statement is too generic, read references/tension_patterns.md.references/axis_catalog_generic.mdreferences/axis_catalog_llm_agents.mdreferences/bridge_terms.md.references/examples_good.md.Machine-readable assets:
assets/phrase_packs/thesis_patterns.jsonassets/phrase_packs/bridge_contrast.jsonassets/domain_packs/generic.jsonassets/domain_packs/llm_agents.jsonassets/domain_packs/embodied_ai.jsonassets/domain_packs/text_to_image.jsonThe 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.
outline/outline.ymloutline/mapping.tsvpapers/paper_notes.jsonlGOAL.mdoutline/claim_evidence_matrix.mdoutline/subsection_briefs.jsonlRequired record shape remains compatibility-preserving:
sub_id, title, section_id, section_titlerq, thesis, scope_rule, axes, bridge_terms, contrast_hook, tension_statementevaluation_anchor_minimal, required_evidence_fields, clustersparagraph_plan, evidence_level_summary, generated_atrun.py Should Doassets/.run.py Should Not Dothesis/tension_statement conservative and let downstream evidence skills strengthen the subsection.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.cluster_rules over ad-hoc bootstrap overlaps when the mapped set is already large enough to support disjoint clusters.When running in compatibility mode, scripts/run.py currently reads:
outline/outline.yml for section/subsection structureoutline/mapping.tsv for paper-to-subsection coveragepapers/paper_notes.jsonl for structured evidenceGOAL.md for topic/domain cuesoutline/claim_evidence_matrix.md as optional supporting context when presentpython .codex/skills/subsection-briefs/scripts/run.py --workspace <workspace_dir>--workspace <dir>--unit-id <id>--inputs <a;b;...>--outputs <a;b;...>--checkpoint <C*>python .codex/skills/subsection-briefs/scripts/run.py --workspace workspaces/<ws>GOAL.md and the asset packs before changing the script.papers/paper_notes.jsonl is thin, reroute to note extraction rather than inventing axes.