Skip to content
Back to skills

Brainstorm

ASecurity

Design phase — refine ideas into specs through collaborative dialogue

  • 4 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 28, 2026
ai-agentsgobashtestinggitapi

Works with

  • terminal
  • cli
  • api

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned May 28, 2026

npx -y skills add fakoli/fakoli-plugins --skill brainstorm --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Brainstorm?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Brainstorm
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/fakoli-brainstorm/badge)](https://www.skillsdirectory.com/skills/fakoli-brainstorm)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
description: Design phase — refine ideas into specs through collaborative dialogue
---

# Brainstorm — Design Phase

Turn ideas into fully-formed specs through structured dialogue: explore context, assess scope, ask one question at a time, propose approaches, present the design section by section, and hand off to `/flow:plan`.

<HARD-GATE>
Do NOT invoke `/flow:plan`, write any code, scaffold any files, or take any implementation action until the spec has been written, self-reviewed, and the user has explicitly approved it.
</HARD-GATE>

---

## Process Flow

```
Start
  |
  v
[1. Explore project context]
  Read CLAUDE.md, project files, recent git log.
  Note any output path or naming conventions CLAUDE.md specifies.
  |
  v
[2. Assess scope]
  Does the request describe multiple independent subsystems?
  |
  YES --> Flag decomposition immediately. Do not ask detailed questions yet.
  |       Help the user decompose into sub-projects, then brainstorm the first one.
  |
  NO
  |
  v
[3. Ask clarifying questions]
  One question per message. Multiple choice preferred.
  Focus: purpose, constraints, success criteria.
  |
  v
[4. Auto-detect visual questions]
  Is this question about layout, mockups, diagrams, or visual comparison?
  |
  YES --> Offer visual companion (first time only, its own message).
  |       If accepted: start server, track PID, serve mockup.
  |       Subsequent visual questions in the same session reuse the server.
  |
  NO --> Stay in terminal even if companion is active.
  |
  v
[5. Propose 2-3 approaches]
  Lead with recommendation. Explain trade-offs.
  |
  v
[6. Present design section by section]
  Scale each section to its complexity.
  Ask "Does this section look right?" after each one.
  Revise before moving forward.
  |
  v
[7. Write spec]
  Save to docs/specs/<YYYY-MM-DD>-<topic>.md
  (or the path CLAUDE.md specifies — that path always wins).
  |
  v
[8. Self-review]
  Run the four checks inline. Fix issues before showing the user.
  |
  v
[9. User reviews spec]
  Ask the user to review the file. Wait for explicit approval.
  If changes requested: update the file, re-run self-review, re-ask.
  |
  v
[10. Hand off to /flow:plan]
```

---

## Step-by-Step Rules

### Step 1: Explore Project Context

Before asking anything, read:
- `CLAUDE.md` — project conventions, output paths, naming rules, toolchain
- Key project files (package.json / pyproject.toml / Cargo.toml, src/ structure)
- Recent git log: `git log --oneline -10`

Record any path CLAUDE.md specifies for specs. That path takes precedence over the default `docs/specs/` in every subsequent step.

### Step 2: Assess Scope

Scope check happens BEFORE detailed questions. If the request names multiple independent subsystems (e.g., "build a platform with chat, billing, file storage, and analytics"), stop immediately:

> "This touches several independent systems. Before we refine details, let's map the pieces:
>
> - System A: [description]
> - System B: [description]
> - System C: [description]
>
> Each should get its own brainstorm → plan → execute cycle. Which do you want to start with?"

Do not ask detailed clarifying questions about a project that needs decomposition first.

### Step 3: Clarifying Questions

- One question per message, always.
- Multiple choice preferred: give 2-4 options with a clear default.
- Open-ended is fine when options would artificially constrain the answer.
- Focus on: purpose, users, constraints, success criteria.
- Stop asking once you have enough to propose approaches. Three to five questions is usually sufficient.

### Step 4: Visual Companion (Conditional)

Offer the visual companion ONLY when the question at hand is inherently visual: mockups, wireframes, layout comparisons, architecture diagrams. Do not offer it for requirement questions, tradeoff lists, or conceptual choices — those are terminal questions regardless of topic.

**First visual question of the session** — send this as its own message, nothing else:

> "This question would be clearer if I can show it to you in a browser. I can render mockups and diagrams as we go. Want me to fire up the visual companion? (Requires opening a local URL)"

Wait for the response. If declined, continue in terminal for all visual questions — diagrams can be rendered as ASCII.

**If accepted:** locate the plugin directory first, then run the start script:

```bash
# Note: Script paths are relative to the fakoli-flow plugin directory.
# Use Glob to locate it if needed:
#   ${CLAUDE_PLUGIN_ROOT}/skills/brainstorm/scripts/
```

Run `${CLAUDE_PLUGIN_ROOT}/skills/brainstorm/scripts/start-server.sh`. The script writes a PID file to `$STATE_DIR`. Before each subsequent write to the server, run `${CLAUDE_PLUGIN_ROOT}/skills/brainstorm/scripts/check-server.sh "$STATE_DIR"`. If it returns "dead", run `start-server.sh` again — no need to ask the user again. They already consented.

After starting or re-verifying the server, print exactly one line:
```
[visual: active on http://localhost:52121]
```
or if offline and will restart on next visual question:
```
[visual: offline — will restart on next visual question]
```

**Textual questions always stay in terminal** — even after the companion is active.

### Step 5: Propose 2-3 Approaches

Present options conversationally. Structure each option as:
- Name
- One-sentence description
- Key trade-offs

Lead with your recommendation and explain why in one sentence. Do not present options as equal if they are not.

### Step 6: Present Design Section by Section

Once you understand what you are building, present the design. Do not present everything at once.

Sections to cover (scale each to its complexity — a sentence if simple, a short paragraph if nuanced):
1. **Architecture** — the overall structure and components
2. **Data model / interfaces** — types, schemas, or key APIs
3. **Data flow** — how information moves through the system
4. **Error handling** — failure modes and how they surface
5. **Testing** — how correctness will be verified

After each section: "Does this section look right before we move on?"

Be ready to revise. A design that gets approved section by section is more reliable than one presented all at once.

### Step 7: Write the Spec

Save the validated design to:
- The path specified in CLAUDE.md (if present) — this always takes priority
- Otherwise: `docs/specs/<YYYY-MM-DD>-<topic>.md`

The spec should be complete enough that a plan can be written from it without re-asking you. Include: goal, context, architectural decisions, data model, key behaviors, error handling, acceptance criteria, and out-of-scope items.

### Step 8: Self-Review

After writing, check the spec against these four criteria. Fix issues inline — no need to re-read:

1. **Placeholder scan** — Any "TBD", "TODO", "implement later", or vague requirements? Resolve them.
2. **Internal consistency** — Does any section contradict another? Does the architecture match the feature descriptions?
3. **Scope** — Is this focused enough for a single plan, or does it need further decomposition?
4. **Ambiguity** — Could any requirement be interpreted two ways? Pick one and make it explicit.

### Step 9: User Review Gate

After self-review passes:

> "Spec written to `<path>`. Please review it and let me know if you want any changes before we start planning."

Wait. If changes are requested: update the file, re-run self-review, ask again.

Only proceed to step 10 once the user explicitly approves.

### Step 10: Hand Off

Invoke `/flow:plan` and pass the spec file path.

---

## When NOT to Brainstorm

Use `/flow:quick` instead when:
- The task is a bug fix in 1-2 files
- Adding or renaming a parameter
- Fixing a typo, import, or config value
- Any task where brainstorming would take longer than the fix itself

Rule of thumb: if you can describe the complete change in one sentence and it touches fewer than 3 files, use `/flow:quick`.

Use brainstorm for: new features, architectural changes, anything spanning multiple files, anything where the user would benefit from seeing a spec before any code is written.

---

## Key Differences from SuperPowers Brainstorming

| SuperPowers brainstorming | fakoli-flow brainstorm |
|---|---|
| Offers visual companion every session, as its own message | Offers only when the current question is inherently visual |
| Saves spec to `docs/superpowers/specs/` always | Reads CLAUDE.md first; honors any path it specifies |
| Loads ~22k tokens of skill content at startup | ~500 tokens (metadata only) — lazy by design |
| Loses track of server state across sessions | PID file + liveness check + auto-restart on next visual question |
| Questions are terminal-only | Works headless — questions through any active channel (Discord, Telegram, etc.) |
| Scope check happens during question phase | Scope check happens BEFORE detailed questions |

---

## Key Principles

- **One question at a time.** Never two questions in the same message.
- **Multiple choice preferred.** Easier to answer than open-ended when options are known.
- **Scope before details.** Decompose large projects before refining any piece.
- **Visual only when visual.** Do not default to the companion. Offer it when visual understanding is genuinely better than text.
- **CLAUDE.md wins on paths.** The project's declared conventions override built-in defaults.
- **No implementation until approved.** The hard gate is absolute.
- **Works headless.** All questions are text-first. The visual companion is additive, never required.

Files in this skill

  • SKILL.md9.4 KB
  • scripts/check-server.sh903 B
  • scripts/frame-template.html7.6 KB
  • scripts/helper.js2.6 KB
  • scripts/server.cjs11 KB
  • scripts/start-server.sh4.8 KB
  • scripts/stop-server.sh1.5 KB
  • visual-companion.md12.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.