Skip to content
Back to skills

Brainstorm

ASecurity

Approach brainstorming: grill a vague requirement into a settled approach, then a user-approved Spec. Takes a depth gear (low = few questions, fast out / medium = the daily default / high = research-grade deep grilling for bottlenecks and innovative design). Triggers: brainstorm, grill, discuss first, spec first (先讨论/grill/先落 Spec) — use when approach/goals/boundaries/trade-offs/success criteria/verification strategy are unsettled. Skip when a complete Spec already exists or for a small patch...

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 24, 2026
ai-agentsgogit

Security analysis

A100/100

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

Scanned October 2, 2026

npx -y skills add YSAA1/harness-workflow --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/ysaa1-brainstorm/badge)](https://www.skillsdirectory.com/skills/ysaa1-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
---
name: brainstorm
description: "Approach brainstorming: grill a vague requirement into a settled approach, then a user-approved Spec. Takes a depth gear (low = few questions, fast out / medium = the daily default / high = research-grade deep grilling for bottlenecks and innovative design). Triggers: brainstorm, grill, discuss first, spec first (先讨论/grill/先落 Spec) — use when approach/goals/boundaries/trade-offs/success criteria/verification strategy are unsettled. Skip when a complete Spec already exists or for a small patch; hand off to plan after approval."
---

# Approach Brainstorming (Frontier Grill)

The subject of the brainstorm is the **approach**: open the approach space in conversation, settle it round by round, then write the **Spec** that records the outcome → `plan`. No production code, no Executable Plan.

Leading words: **frontier** · **design tree** · **shared understanding**

Canonical Spec: `docs/specs/YYYY-MM-DD--<topic>.md` (override only when the user or `AGENTS.md` explicitly names a path). By default, do not write `.harness/`; the sole exception: when the project already has a `.harness/` recovery surface, perform "register on write" (see Flow steps 1–2).

User-visible language follows the user; protocol tokens (`BRAINSTORM …`, `Spec`, `Gate`, paths) may stay in English.

## Routing

- **Use**: open-ended intent, unsettled approach, grilling wanted. Vagueness is not a reason to wait — it is the thing this session eats.
- **Don't**: Spec already approved; single-point small patch; only a factual answer wanted.
- **Next**: Spec approved → `plan`; workbench gap → (after Spec approval or when the user explicitly says so) `harness-builder`.

## Gears

The depth dial belongs to the user; the agent never sets it silently:

- **Invocation**: `brainstorm <topic>` may carry a gear (low/medium/high; natural language works too: "low gear / fewer questions", "high gear / dig deeper / research-grade / I'm stuck on a bottleneck"). Unspecified means **medium**; the first round's banner states the gear; the user retunes with one word at any time, and the gear follows the user's exact words.
- **Inference (must be stated, and vetoable)**: infer low only when the user's own words anchor goal + boundaries and it is clearly a small matter; infer high only when the user explicitly says bottleneck/innovation/research; everything else is medium.
- Gears change only the **question-surface width and grilling intensity**; rounds always follow the frontier — no round quotas (no minimum round count, settled decisions are not re-asked).

| Gear | Fits | Approach space | Grilling intensity | Spec |
| --- | --- | --- | --- | --- |
| Low | short needs with anchors present, minimal interruption wanted | one recommended approach + 1 alternative, confirmed in the same round | waivable branches waived wholesale; stress scenarios may be waived | Thin Spec |
| Medium (default) | everyday approach settling | 2–3 concrete approaches that **differ structurally** (mechanism/boundaries/data shape — three tweaked variants are wallpaper, not approaches), each with trade-offs + failure modes + a `➡️` recommendation; when only one path is obvious, the question degrades to a confirmation and the one alternative considered is recorded | design-sensitive questions must carry a stress scenario (good enough to trigger "wait, that shouldn't be possible") | standard Spec |
| High | research-grade innovation, hitting a bottleneck | 3+ candidates including at least one non-obvious/cross-domain one; candidate material researched first (sub-agents in parallel); each candidate carries an inversion lens (under what conditions it would win instead); rejected candidates must carry their failure reasons | key approaches each get a counter-example scenario; four actions below | standard Spec, rejected alternatives mandatory |

**The four high-gear actions**:

1. **Frame the bottleneck** (first frontier round): destination first — what does "through the wall" look like (it shapes every later question); where exactly it is stuck, what has been tried, why each attempt died; which constraints bind (what cannot move); draw the scope line up front (out of scope, written down).
2. **Breadth-first fog sweep**: sweep the whole approach space and record the **fog** — decisions you can tell are coming but cannot yet phrase sharply (the test: can the question be stated sharply *now*, not whether it can be answered); every step of frontier advance graduates patches of fog into fresh questions. **No fog found = high gear not needed**: tell the user and drop to medium.
3. **Upgrade the approach space**: at least one non-obvious/cross-domain candidate; candidate material researched first (facts are the agent's job; research does not block); each candidate carries the inversion lens ("under what conditions would this one win instead"); **rejected candidates must carry their failure reasons** — no silent elimination.
4. **Minimum-verdict escape hatch**: when an approach debate cannot be settled by talking (the answer needs something to look at) → build a throwaway spike/wireframe/single-file demo to decide it — it answers that one question only, is discarded after looking, its one-line answer goes back into the frontier, and the prototype never enters the mainline.

**Low-gear semantics**: fewer questions, but still confirmed — after questions go out, each still waits for the user to confirm or amend; in every gear, silence ≠ approval.

## The Grilling Discipline (the full craft lives in this file — no second source)

One relentless interview, until shared understanding. Eight mechanisms carry all of it:

1. **Design tree, approaches on top**: map the requirement as a tree of decisions whose **top-tier forks are the candidate approaches** — the main arena of the brainstorm. Framing (goal/scope) is asked only until it is "sharp enough to choose an approach", not until all essentials are green; **done-criteria and verification strategy sit downstream of the chosen approach — while the approach is undecided, they are not asked** (the dependent-question rule).
2. **Frontier rounds**: the frontier is every open decision whose prerequisites are already settled. **One message asks the whole frontier**: numbered questions, each with a `➡️` recommended answer; bodies may run multiple paragraphs and offer 2–3 concrete options, so the user can answer by number ("1 yes, 2 the second option, 3 no, here's why"); questions are separated by `---`; dependent questions belong to later rounds.
3. **Branch and stress**: every question carries its `Design branch` (a Branch Order branch name), design-sensitive ones add one concrete stress scenario; pure framing questions may omit both anchor lines. Branch Order: **approach space (candidates + trade-offs + rejection record)** → actors/boundaries → happy path → failure/edge → data/state → interfaces → NFR → verification hooks.
4. **Facts are the agent's job, decisions are the user's**: facts the environment can settle (code, docs, tools) you look up yourself or dispatch a sub-agent for — **never ask the user**; lookups do not block — a running exploration is an unsettled prerequisite, so only its downstream questions wait. Preferences, trade-offs, verification depth, and scope boundaries are **decisions**: put each to the user and wait. An agent that answers its own decisions has broken the skill, not interpreted it liberally.
5. **Each round reshapes the tree**: after the user's answers land, recompute the frontier before the next round; discovering a mis-paired round or a missed branch later → reopen the affected branch next round; do not pretend it didn't happen.
6. **The ungrillable escape hatch**: recognize the questions that "need something to look at" (shape, feel, one page or three) — stop grilling and take the minimum-verdict escape hatch (available in every gear, default in high); "I don't know" is a real answer — when the user cannot answer, prototype rather than guess. Grinding on an ungrillable question is where sessions balloon.
7. **Paper trail**: challenge terminology conflicts on the spot ("your glossary defines X as A; what you just said sounds like B"); sharpen fuzzy words into canonical terms ("is this 'account' the Customer or the User?"); a resolved term lands in the target project's existing glossary **in the round it resolves** (never batched, never auto-created); an ADR is offered only when all three gates pass (hard to reverse + surprising without context + a real trade-off) — a session with zero ADRs is working as designed.
8. **Empty means done**: the frontier is empty when every Branch Order branch is answered / explicitly waived / repo-provable (high gear adds the rejected candidates' failure reasons), and the four framing essentials (goal → scope → **approach** → success criteria → verification strategy, in this dependency order) are confirmed or waived. **The message declaring emptiness carries the one-line-per-branch reconciliation**; a self-assessed "already thought through" is not an emptiness claim. Common-sense defaults, industry conventions, and deferrability do not exempt a question. After emptiness, the user must still confirm shared understanding (a comprehensive brief with drafting authorization, or a single confirmation) before Spec drafting.

If the user asks for one question at a time, switch to sequential asking while maintaining the same tree.

**Session health check** (run before closing): the user rejected at least one recommendation; at least one question surfaced a decision the user had been making implicitly; at the end the user could defend every choice to someone who wasn't there — if all three are missing, the interview produced nothing, so ask more before closing. Questions getting worse as the session runs (the dumb zone) = the surface is too large: suggest splitting into multiple tracks before grilling on.

## Round Output (single source)

```text
BRAINSTORM CLARIFICATION IN PROGRESS · Gear: L/M/H
❓ Q1 - <title>: <body; may be multiple paragraphs, options welcome>
Design branch: <Branch Order branch name>
Stress scenario: <one concrete case; required on design-sensitive items>
➡️ <recommended answer>
---
❓ Q2 - <title>: <body>
Design branch: <branch>
➡️ <recommended answer>
Framing: <confirmed+waived>/4; Gate: BLOCKED; Frontier: open
Needs: frontier answers | shared understanding
```

After the Gate passes, switch to (the Branches line is the emptiness reconciliation; high gear puts rejection reasons inside the approach branch; repo-proof sources given on the line or in the Spec):

```text
BRAINSTORM SPEC READY
Spec: <path>; Gear: M; Gate: PASSED; Frontier: empty
Branches: approach✓(A chosen; B rejected:<reason>) · actors✓ · happy✓ · failure waived · data✓ · ifaces✓ · NFR repo-proof · verify✓
Needs: approve Spec
Next after approval: plan
```

If factual inferences remain before emptiness, present them once as an assumption batch (each with a source) and fold them in after confirmation; preferences and trade-offs never enter the batch.

## Flow

### 1. Approach grill

Run the Grilling Discipline: gear first (stated/confirmed) → approach space settled in conversation → branch detail → emptiness reconciliation → confirmed shared understanding. Before starting, read: existing Specs/code/`AGENTS.md`, `git status`, user materials.

Recovery-surface continuation (only when the project already has `.harness/`): after the first frontier round goes out, register a row for this track in work_index — Status `active`, Primary artifact filled with "(Spec not yet persisted to disk: <intended Spec path>)"; at the end of each grill round, update that row's Last verified cell in passing to "date · settled n/m · open question numbers". After a session break, the new session continues asking from the progress recorded in the row instead of re-asking from scratch; projects without a recovery surface skip this paragraph and stay zero-file.

### 2. Spec

Follow `references/spec-drafting.md`: verification strategy → **record the approach comparison settled in the grill** → write Spec → self-review → request approval. No `plan` before approval. In the same action as persisting the Spec to disk, flip this track's work_index row's Primary artifact to the actual Spec path (if it was not registered during the grill phase, backfill the registration now; projects without a recovery surface do not register — after approval, `plan` takes over filing). An unapproved Spec is not an orphan because the row links out to it.

Done: independent Spec path delivered, awaiting approval.

## Hard Rules

- While unresolved preferences/trade-offs exist, the first user-visible message must be the numbered frontier questions; sending only a score line or an assumption batch in place of questions is forbidden.
- **The approach is settled in conversation**: the Spec only records the grill's settled approaches and rejection reasons — it never makes choices the user was never asked.
- One message, one frontier round; dependent questions are split into later rounds, independent questions go out in the same round.
- Silence ≠ approval (in every gear); shared understanding is covered by a comprehensive brief and explicit drafting authorization, otherwise ask exactly once — do not repeatedly request the same confirmation.
- Emptiness requires reconciliation: the message declaring the Gate passed / the frontier empty carries the one-line-per-branch Branch Order reconciliation; a self-assessed "already thought through" or a bare score line is not an emptiness claim.

## Acceptance

- [ ] Gear stated in the first round; retuning follows the user's exact words
- [ ] Approach space settled in conversation (medium/high gears carry structurally different candidates); the Spec only records the outcome
- [ ] Gate passed; the four essentials confirmed or waived, never as inferred (order: goal → scope → approach → success criteria → verification strategy)
- [ ] The emptiness declaration carries the one-line-per-branch reconciliation (high gear includes rejection reasons)
- [ ] Session health check run (zero rejections and zero implicit decisions surfaced → ask more before closing)
- [ ] Shared understanding covered; Spec submitted for approval
- [ ] Projects with a recovery surface: this track's work_index row points to the Spec when it is persisted to disk (waived if the project truly has no recovery surface)

## Read on demand

- From step 2: `references/spec-drafting.md` · `spec-review-checklist.md` · `templates/spec.md`
- In this text, `CONTEXT.md` refers to the domain glossary at the target project root (if present), not a plugin-package file; locate the actual terminology source via the project's `AGENTS.md` first — do not force-create it if absent.

## Recommended next skill

| Situation | Next |
| --- | --- |
| Spec approved | `plan` |
| Spec rejected / discussion abandoned (including grill aborted) | In the same commit, flip the row out of active to `abandoned` and run the four retirement steps (delete the unapproved Spec; nothing to delete when there is no recovery surface or the grill was aborted) → end |
| Workbench gap (after Spec approval or when the user explicitly says so) | `harness-builder` |

Files in this skill

  • SKILL.md9.9 KB
  • agents/openai.yaml155 B
  • references/spec-drafting.md4.4 KB
  • references/spec-review-checklist.md1.5 KB
  • templates/spec.md2.3 KB
  • templates/spec.zh-CN.md2.7 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.