Per-product discovery and definition templates.
Idea is the "what are we building, for whom, and why" layer of the bloom system. It contains nothing but markdown templates — no parsers, no generators, no CLI. Templates age well; tools age fast.
| Template | When to use | Output |
|---|---|---|
templates/intent.md |
At the very start, before anything is formal | A 1-page seed of the idea |
templates/mission.md |
Once intent is worth committing to | Who, what, why, vision |
templates/north-star.md |
Alongside mission | The single metric that captures value delivered |
templates/user-story.md |
Per feature | Stories with acceptance criteria |
templates/spec.md |
Before code | Behaviour-focused product spec |
templates/acceptance-criteria.md |
Per feature, alongside spec | Given/When/Then |
templates/architecture.md |
Once spec is roughly stable | System / auth / data flow diagrams |
templates/product-surfaces.md |
Once architecture is sketched | The product's surface list and IA |
templates/IA-graph.md |
Per surface | The information architecture of a single surface |
Idea is mounted as a submodule under .bloom/idea/. Copy a template from .bloom/idea/templates/ into the product's own location (typically docs/) and fill it in.
# Mount as a submodule
git submodule add https://github.com/derrybirkett/idea .bloom/idea
# Use a template
cp .bloom/idea/templates/mission.md docs/mission.md
$EDITOR docs/mission.mdOnce filled in, the template's output lives in the product repo, not in idea. Idea stays template-only.
A previous bloom-system iteration had a seed CLI that parsed natural-language intent into structured fields via LLM. Two problems: the parser drifted as model behaviour changed, and the structured fields were less useful than reading what the user actually wrote. Templates that humans fill in directly are slower to write but accumulate compounding value; parsers age out.
Patch bumps for clarifications, minor for new templates, major for breaking semantic changes (e.g., reordering required fields).
MIT