Headline derivation primitives extracted from
briefing-highlight.ts so that module stays below the 600-line
drift-guard cap (see test/unit/source-file-size.test.js). Pure leaf
module — depends only on truncateTitle from text-utils.js
and the stripTradecraftLabels helper from
briefing-highlight-sections.ts.
Headline derivation kicks in when a brief's ## Strategic Intelligence Summary block has no### Sub-section heading underneath it — the
resolver falls back to the section's first prose paragraph and we
mine it for a journalist-quality top-line.
Description
Headline derivation primitives extracted from briefing-highlight.ts so that module stays below the 600-line drift-guard cap (see
test/unit/source-file-size.test.js). Pure leaf module — depends only on truncateTitle fromtext-utils.jsand the stripTradecraftLabels helper from briefing-highlight-sections.ts.Headline derivation kicks in when a brief's
## Strategic Intelligence Summaryblock has no### Sub-sectionheading underneath it — the resolver falls back to the section's first prose paragraph and we mine it for a journalist-quality top-line.