src/core-skills/bmad-distillator/resources/splitting-strategy.md
When the source content is large (exceeds ~15,000 tokens) or a token_budget requires it, split the distillate into semantically coherent sections rather than arbitrary size breaks.
Arbitrary splits (every N tokens) break coherence. A downstream workflow loading "part 2 of 4" gets context fragments. Semantic splits produce self-contained topic clusters that a workflow can load selectively — "give me just the technical decisions section" — which is more useful and more token-efficient for the consumer.
After the initial extraction and deduplication (Steps 1-2 of the compression process), look for natural semantic boundaries:
Choose boundaries that produce sections a downstream workflow might load independently.
For each extracted item, assign it to the most relevant section. Items that span multiple sections go in the root distillate.
Cross-cutting items (items relevant to multiple sections):
The root distillate contains:
Each section distillate must be self-sufficient — a reader loading only one section should understand it without the others.
Each section includes:
Create a folder {base-name}-distillate/ containing:
{base-name}-distillate/
├── _index.md # Root distillate: orientation, cross-cutting items, section manifest
├── 01-{topic-slug}.md # Self-contained section
├── 02-{topic-slug}.md
└── 03-{topic-slug}.md
Example:
product-brief-distillate/
├── _index.md
├── 01-problem-solution.md
├── 02-technical-decisions.md
└── 03-users-market.md
When a token_budget is specified:
When no token_budget but splitting is needed: