Use when brainstorming a new module's requirements and architecture to produce the brainstorm.md the pipeline starts from; not for design.md, RTL, constraints, or any in-pipeline stage.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add chipweaver/veripower --skill brainstorm --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Brainstorm?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/chipweaver-brainstorm)More formats (shields.io, HTML) on the badges page.
---
name: brainstorm
description: Use when brainstorming a new module's requirements and architecture to produce the brainstorm.md the pipeline starts from; not for design.md, RTL, constraints, or any in-pipeline stage.
---
# Pre-Pipeline Requirements Brainstorm
Own the interactive D0–D7 brainstorm dialogue and produce a frozen
`{module}/brainstorm.md`. Run **in your own session, before** the design
pipeline: the brainstorm conversation never enters the pipeline's context. The pipeline
starts when the user starts it and reads that file solely inside its sub-agent contexts
(it is the pipeline's input, not a pipeline stage).
## When to Use
- A new module needs its requirements + architecture settled before the pipeline.
- A requirements contradiction surfaced downstream and was escalated for revision: the
user aborts, re-invokes this skill in revision mode, re-approves.
## Iron Rule
- You are **pre-pipeline**: write exactly one artifact, `{module}/brainstorm.md`
(creating `{module}` if absent, before the module enters the pipeline). Write
**no** `result.json`, and you are **not** a pipeline stage — you run before any pipeline state exists.
- **Do not author design.md / RTL / constraints / any downstream artifact.** Your
output is the brainstorm only; `design.md` is derived from it downstream.
- `brainstorm.md` is **frozen for the duration of a run**. A requirements change is handled
by re-invoking this skill in revision mode, never by editing an in-flight artifact to
absorb the change: every proof downstream records the fingerprint it read.
## Input Artifacts
| Variable / input | Purpose |
|---|---|
| `{module}` | The module's directory — the same path the pipeline is later given as `--module`, and where its whole work tree goes. Anywhere the user wants: `~/chips/mydesign`, `./mychip`, `asic/mychip`. Its last component is the module name, which titles the brainstorm. |
| User-provided material (optional) | Public spec / reference docs the user pastes or points to. |
No fixed external inputs. Revision mode additionally reads the existing
`{module}/brainstorm.md`.
Ask for the directory if the user named only a module. Do not invent a parent for them:
nothing downstream imposes one, and a guess sends them looking for a tree they did not ask for.
## Output Artifacts
| Path | Schema / Format | Use |
|---|---|---|
| `{module}/brainstorm.md` | Custom markdown; descriptive ATX sections per the checklist's Section Layout | The pipeline's frozen input. |
`brainstorm.md` lives at the **module root**, NOT under any stage workdir. There
is **no** `version` frontmatter field (re-derivation after a revision is given naturally
by the fresh run's empty workdir).
## Workflow
### Step 1: Settle `{module}` + read any user-provided material
### Step 2: D0–D7 dimensional brainstorm dialogue
(one question at a time, multiple-choice
preferred; D0 first; D4 presents 2–3 candidate architectures with side-by-side
mermaid): see `references/brainstorm-checklist.md`.
### Step 3: Write `{module}/brainstorm.md`
with descriptive section headers per the
checklist's Section Layout (create `{module}` if it does not exist):
```markdown
# <module> Brainstorm
...
```
### Step 4: Hand off the path
First re-read the just-written `brainstorm.md` and
fix inline any defect that would survive the freeze: a placeholder / unsettled `OQ-NN`,
a cross-dimension contradiction (e.g. a clock in a D2a clock-domain column but absent
from the D3 clock list), or a two-way-ambiguous requirement. Then point the user to the
on-disk path + a short orientation (the D-dimensions covered; revision mode: only the D
sections changed this round). **Do not echo the brainstorm body** (sections / tables /
mermaid / code). Then stop: the user reads it, and starting the pipeline is how they say
it is right.
### Step 5: Revision mode
(re-invoked after an abort): re-ask only the affected D dimensions,
preserve the rest, then re-run Step 4 (its self-review re-reads the
whole doc, so a changed dimension contradicting an untouched one is caught).
## Red Flags
| Excuse | Reality |
|---|---|
| "The requirements changed — I'll just edit the brainstorm to absorb it" | Absorb a requirements change by re-invoking in revision mode — never by editing an in-flight artifact (Iron Rule: `brainstorm.md` is frozen for the run). |
## Completion Gate
- `{module}/brainstorm.md` exists.
- The brainstorm covers the D0–D7 dimensions reached (D0 intent settled; D4 had 2–3
candidates; feature IDs / interface-group names / scenario IDs are stable named
anchors per the checklist's "Subsection IDs" section).
- The brainstorm body was **not** echoed into the conversation (path-handoff only).
- No `result.json` / pipeline-state command issued (Iron Rule — pre-pipeline).
## Return Contract
Control returns to the user. Produce only `{module}/brainstorm.md` (no `result.json`, no
state files — per the Iron Rule). The user starts the pipeline with `--module {module}`
when they are satisfied with what is on disk; the kernel will not dispatch `specification`
until that file exists.
## Bundled References
- [`references/brainstorm-checklist.md`](references/brainstorm-checklist.md) — D0–D7 dimensional Q&A checklist + style + trimming rules + diagram conventions.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!