Brainstorm to Blueprint
Converts an unstructured feature brainstorm into three planning artifacts —
constitution, roadmap, techstack — that faithfully reflect what
the user actually decided, and visibly flag what they didn't. The failure
mode this exists to prevent: an agent handed a messy dump quietly invents
requirements, phases, and library choices to fill the gaps, producing a
confident spec full of decisions the user never made.
The input is the primary source. The user already did the ideation
(often in ChatGPT). Your job is to structure it faithfully, not to
re-run the brainstorm or pad it. No fluff — if the dump doesn't say it and
it isn't a flagged assumption, it doesn't go in the output.
When to use this
- The user pastes brainstorm/ideation text and wants it structured into
planning docs
- They ask for a constitution, roadmap, techstack, or "spec" from an idea
- They mention Spec Kit, OpenSpec, or a
.specify/ / openspec/ folder and
want front-end artifacts to feed into them
Do NOT use this to design a feature from scratch with no source material —
if there's no dump and no stated intent, ask the user for the brainstorm
first rather than generating one.
Process
1. Extract before you write
Read the dump and pull out only what's actually stated: the problem, the
users, explicit requirements, any named constraints, and any technology the
user themselves named. Keep a mental (or literal) line between stated
and not stated. Do not start drafting artifacts yet.
2. Vet the dump — it came from an LLM
The brainstorm was very likely generated or co-written by an LLM, so it can
contain confident-but-unfounded claims (a "best" library, a benchmark
number, a "standard" architecture). Treat it as a source to vet, not
ground truth. Apply the evidence-tiering skill to any factual or
comparative claim before promoting it into an artifact; if that skill isn't
installed, fall back to: a claim with no cited primary source is an
assumption, not a fact. Strip or tag anything that's hype rather than a
decision the user made.
3. One batched gap pass — then stop asking
Identify only the gaps that genuinely block one of the three artifacts
(e.g. no target platform → can't write a techstack; no ordering signal →
can't sequence a roadmap). Ask them all at once, in a single batch, not
one at a time. Do not interview the user from zero — they already ideated;
only fill blocking holes. If a gap isn't blocking, leave it as a flagged
assumption instead of asking.
4. Emit the three artifacts
Write each with every line traceable to the dump or explicitly tagged:
- Constitution — the non-negotiable principles and constraints that
govern the feature (Spec Kit sense): what it must always/never do, scope
boundaries, quality bars. Short, declarative, testable statements — not
goals or nice-to-haves.
- Roadmap — the work sequenced into phases/milestones with a one-line
rationale for the ordering (what unblocks what). This is the user's own
artifact — neither Spec Kit nor OpenSpec generates it — so keep it a plain
phased list, not a spec.
- Techstack — each technology choice on its own line with the
requirement it serves. Never fill a slot with a plausible default
silently: an unstated choice is
[ASSUMPTION — confirm], and a genuinely
open choice is listed as options with trade-offs, not a fabricated pick.
5. Anti-hallucination convention (mechanical, not vibes)
- Every line either traces to the dump or carries a visible
[ASSUMPTION — confirm] tag. Nothing invented silently.
- Techstack picks the user didn't name are always tagged — this is where
fabrication happens most.
- End with a short "Assumptions to confirm" list collecting every tagged
item, so the user can accept or correct them in one pass.
- If the dump genuinely doesn't support one of the three artifacts, say so
and ask — don't manufacture it to complete the set.
Output location
- If
.specify/ exists (Spec Kit), the constitution belongs at
.specify/memory/constitution.md; offer to write there and let its
/speckit.specify and /speckit.plan consume the rest.
- If
openspec/ exists (OpenSpec), offer to seed a change proposal under
openspec/changes/<feature>/ from these artifacts.
- Otherwise, write three standalone files (
constitution.md, roadmap.md,
techstack.md) wherever the user is working.
Do not reimplement Spec Kit or OpenSpec's downstream flow — this skill is
the grounded front end that feeds them.
Notes
- Faithfulness beats completeness. A short artifact that only contains real
decisions is better than a long one padded with invented ones.
- If the dump contradicts itself, surface the contradiction for the user to
resolve rather than silently picking a side.
1---2name: brainstorm-to-blueprint3description: Turns a raw feature brainstorm (usually a messy dump pasted from ChatGPT or notes) into three grounded planning artifacts — a constitution, a roadmap, and a techstack — without inventing scope, decisions, or technology the user never stated. Use this whenever the user pastes brainstorm/ideation content and asks to structure, formalize, or "clean up" it into a spec, constitution, roadmap, or tech-stack doc — e.g. "turn this brainstorm into a spec," "make a constitution/roadmap/techstack from this," "structure my idea dump," "format this into planning docs." Compatible with Spec Kit (.specify/) and OpenSpec (openspec/) if the project uses them. For evaluating an AI product/release instead, use ai-release-triage.4---56# Brainstorm to Blueprint78Converts an unstructured feature brainstorm into three planning artifacts —9**constitution**, **roadmap**, **techstack** — that faithfully reflect what10the user actually decided, and visibly flag what they didn't. The failure11mode this exists to prevent: an agent handed a messy dump quietly invents12requirements, phases, and library choices to fill the gaps, producing a13confident spec full of decisions the user never made.1415**The input is the primary source.** The user already did the ideation16(often in ChatGPT). Your job is to *structure it faithfully*, not to17re-run the brainstorm or pad it. No fluff — if the dump doesn't say it and18it isn't a flagged assumption, it doesn't go in the output.1920## When to use this2122- The user pastes brainstorm/ideation text and wants it structured into23 planning docs24- They ask for a constitution, roadmap, techstack, or "spec" from an idea25- They mention Spec Kit, OpenSpec, or a `.specify/` / `openspec/` folder and26 want front-end artifacts to feed into them2728Do NOT use this to design a feature from scratch with no source material —29if there's no dump and no stated intent, ask the user for the brainstorm30first rather than generating one.3132## Process3334### 1. Extract before you write3536Read the dump and pull out only what's actually stated: the problem, the37users, explicit requirements, any named constraints, and any technology the38user themselves named. Keep a mental (or literal) line between **stated**39and **not stated**. Do not start drafting artifacts yet.4041### 2. Vet the dump — it came from an LLM4243The brainstorm was very likely generated or co-written by an LLM, so it can44contain confident-but-unfounded claims (a "best" library, a benchmark45number, a "standard" architecture). Treat it as a **source to vet, not46ground truth**. Apply the `evidence-tiering` skill to any factual or47comparative claim before promoting it into an artifact; if that skill isn't48installed, fall back to: a claim with no cited primary source is an49assumption, not a fact. Strip or tag anything that's hype rather than a50decision the user made.5152### 3. One batched gap pass — then stop asking5354Identify only the gaps that genuinely block one of the three artifacts55(e.g. no target platform → can't write a techstack; no ordering signal →56can't sequence a roadmap). Ask them **all at once, in a single batch**, not57one at a time. Do not interview the user from zero — they already ideated;58only fill blocking holes. If a gap isn't blocking, leave it as a flagged59assumption instead of asking.6061### 4. Emit the three artifacts6263Write each with every line traceable to the dump or explicitly tagged:6465- **Constitution** — the non-negotiable principles and constraints that66 govern the feature (Spec Kit sense): what it must always/never do, scope67 boundaries, quality bars. Short, declarative, testable statements — not68 goals or nice-to-haves.69- **Roadmap** — the work sequenced into phases/milestones with a one-line70 rationale for the ordering (what unblocks what). This is the user's own71 artifact — neither Spec Kit nor OpenSpec generates it — so keep it a plain72 phased list, not a spec.73- **Techstack** — each technology choice on its own line **with the74 requirement it serves**. Never fill a slot with a plausible default75 silently: an unstated choice is `[ASSUMPTION — confirm]`, and a genuinely76 open choice is listed as options with trade-offs, not a fabricated pick.7778### 5. Anti-hallucination convention (mechanical, not vibes)7980- Every line either traces to the dump or carries a visible81 `[ASSUMPTION — confirm]` tag. Nothing invented silently.82- Techstack picks the user didn't name are **always** tagged — this is where83 fabrication happens most.84- End with a short **"Assumptions to confirm"** list collecting every tagged85 item, so the user can accept or correct them in one pass.86- If the dump genuinely doesn't support one of the three artifacts, say so87 and ask — don't manufacture it to complete the set.8889## Output location9091- If `.specify/` exists (Spec Kit), the constitution belongs at92 `.specify/memory/constitution.md`; offer to write there and let its93 `/speckit.specify` and `/speckit.plan` consume the rest.94- If `openspec/` exists (OpenSpec), offer to seed a change proposal under95 `openspec/changes/<feature>/` from these artifacts.96- Otherwise, write three standalone files (`constitution.md`, `roadmap.md`,97 `techstack.md`) wherever the user is working.9899Do not reimplement Spec Kit or OpenSpec's downstream flow — this skill is100the grounded front end that feeds them.101102## Notes103104- Faithfulness beats completeness. A short artifact that only contains real105 decisions is better than a long one padded with invented ones.106- If the dump contradicts itself, surface the contradiction for the user to107 resolve rather than silently picking a side.