brainstorm
Skill2 starsChanged 6 days agoMITView on GitHub
Kanban Phase 1 — brainstorm the feature requirement with the user, create the feature via `kf new`, and author phase-1-spec-requirement.md with FR-### anchors. Use when a kanban feature is at the brainstorm stage, or right after "kanban {context} {feature}" starts a brand-new feature.
189 other projects use a version of this.
Adopted by
Most recently taken up by
- nielsmadan/skillstheir own version, first seen Nov 8, 2026
- baethon/skillstheir own version, first seen Nov 8, 2026
- CloudChef/atlasclaw-providerstheir own version, first seen Nov 8, 2026
- nisarth/claude-skills-storetheir own version, first seen Nov 8, 2026
- LongJohnSilver1504/claude-skillstheir own version, first seen Nov 8, 2026
- paureis/pau-skillstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use playtest-report, team-polish and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
CoralGameSkillplaytest-report
Generates a structured playtest report template or analyzes existing playtest notes into a structured format. Use this to standardize playtest feedback collection and analysis.
Also in 9 projects that use this
CoralGameSkillteam-polish
Orchestrate the polish team: coordinates performance-analyst, technical-artist, sound-designer, and qa-tester to optimize, polish, and harden a feature or area for release quality.
Also in 11 projects that use this
lilangMaxSkillsoak-test
Generate a soak test protocol for extended play sessions. Defines what to observe, measure, and log during long play sessions to surface slow leaks, fatigue effects, and edge cases that only appear after sustained play. Primarily used in Polish and Release phases.
Also in 6 projects that use this
lilangMaxSkillteam-live-ops
Orchestrate the live-ops team for post-launch content planning: coordinates live-ops-designer, economy-designer, analytics-engineer, community-manager, writer, and narrative-director to design and plan a season, event, or live content update.
Also in 6 projects that use this
- +8 more from CoralGame
Other versions189 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 189
- Donchitos/Claude-Code-Game-Studios★ 27ksame name
- codeaholicguy/ai-devkit★ 1.7ksame name
- jtydhr88/ComfyTV★ 1.2ksame name
- event-driven-io/emmett★ 562same name
- zaxbysauce/opencode-swarm★ 519same name
- ZaxbyHub/opencode-swarm★ 518same name
- automagik-dev/genie★ 351same name
- namastexlabs/automagik-genie★ 351same name
- bkywksj/knowledge-base★ 340same name
- pixel-cellar/Claude-Code-Game-Studios★ 324same name
179 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
9 rules. 0 are common, 5 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 156 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 61
When ambiguity warrants divergence, run one suitable framework and record the outcome in the spec.
- Distinctive: line 149
Start from the end experience and work back to what we must build.
- Distinctive: line 172
Use when the feature exists to fix a *problem* whose true cause is unclear.
- Very specific: line 221
Check kf list --json first.
- Very specific: line 232
If kf new refuses the name, it prints the nearest declared one.
- Distinctive: line 262
Ask: *"How far do you want this feature tested?"* with concrete options:
- Very specific: line 266
When the user picks full, ask how wide the UI coverage goes: *"UI tests for every flow, or only the critical ones?"* → {test_level}: full, …
- Very specific: line 268
Let the nature of the feature set the default: Do not ask again when the answer is obvious: a CRUD API is unit+integration, an app with a …
- Distinctive: line 319
If the user pushes back → update the spec, re-confirm.
“Common” is measured: kept by at least 6 in 10 of the 156 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Kanban Phase 1 — Brainstorm (Human + Agent)
Arguments: <context> <feature_name>.
The user's idea is at its coarsest here. Your job is to convert a rough idea into a precise, testable requirement with FR-### anchors — everything downstream (UC, TC, traceability) hangs off them.
Brainstorming is divergence then convergence: first open the problem up from every useful angle (ideas, users, edge cases, alternatives), then shut it down into a bounded, agreed requirement. Do not rush. The quality of Phase 1 decides how many questions the rest of the pipeline has to re-ask.
Run via orchestrator: normally invoked by kf:flow. Call this skill directly when a feature is (or should be) at the brainstorm stage.
0. Classify the path, and say it out loud
kf:flow names a path before this skill runs; if you were called directly, name it now — "this looks bounded, so the spec will be a page and I skip the divergence framework" — so the user can override it:
- Spike — a question or a one-shot operation that lands no code. Stop here: no
kf new. Hand off toSkill(kf:spike), which owns the procedure. If the answer becomes work, classify again. - Bounded — a change to a flow that already exists in this repository. Run sections 1, 3, 4 and 5; skip section 2 (the frameworks). The spec is a page: the restated journey, one or two FRs, the Affected surfaces, a Test Strategy, acceptance criteria. Its Scope comes from the restated journey and the user's answers, since there is no synthesis. Every gate below still applies.
- Architectural — everything else. All sections.
One-way ratchet: if the bounded spec grows a second surface or a new subsystem mid-way, say so and step up to architectural; never the reverse.
1. Understand the challenge
Orientation before ideation. Cheap questions here prevent expensive ones later.
- Read the repository. Structure, stack, tooling, data model, conventions. Reading code beats asking — never make the user explain what the code already answers.
- Ground the request. Before your first question, verify every entity the idea names against its real definition — the file, command, table, field, endpoint or config key — spelled as the source spells it. A name the user used that the code does not have is your first question, not an assumption. Field-level detail waits for planning; here the names must be real.
- Read one similar existing feature (if any) for house patterns.
Research before you ask. When the idea names an external library, API, service or standard that the repository does not define, or asks how other tools do something (prior art), dispatch
Agent(kf:researcher)with${CLAUDE_PLUGIN_ROOT}/skills/flow/references/researcher-brief.md(modeweborprior-art) before asking the user any question. Do not ask the user first and do not wait for a go-ahead: research triggers on need. The item does not exist yet, so the report goes to the brief's no-item location ($CLAUDE_JOB_DIR/tmp, else the OS temp dir); afterkf newin section 3, copy it to<item>/reviews/research-<slug>.md, and cite each report in the spec under Assumptions or Open Questions. Without a web tool the researcher repliesBLOCKED: say so in Open Questions instead of answering from memory. - Restate the challenge. In one or two sentences, play the user's idea back: "You want X in order to achieve Y, in the context of Z — is that right?". Fix misunderstandings before generating ideas against the wrong target. Describe the real user journey — what they see and type — and have the user agree to it before any FR list or structural naming; the human decides whether the journey is right, and a spec written before that agreement is rework waiting to happen.
- If no
.works/→kf init --defaults(full bootstrap without prompts: config, seeded.kfoverrides,.gitignore).
Rules of engagement:
- Material ambiguity (missing scope, unclear behavior, conflicting acceptance criteria) → ask up to 3 focused questions, then proceed. Each question names the decision it feeds.
- Minor details → make a reasonable assumption and record it in the spec under Assumptions.
- The user is the brief, not the implementer. Do not trouble them with mechanics.
2. Diverge — open the problem (framework phase)
Architectural path only — a bounded change skips this section. A kanban launch can arrive with the idea fully formed or as a vague half-thought. If the requirement is not already crystal clear, run a brainstorming framework to widen the view before committing to a shape.
Pick the framework that fits the situation. Ask yourself (or the user, if genuinely uncertain) which angle is weak:
| Angle you need | Framework |
| Challenge the premise / rebuild from fundamentals | First Principles |
| Improve / stretch an existing product or flow | SCAMPER |
| User-centric problem shaping | Design Thinking |
| New product / new market / launch narrative | Working Backwards |
| Diagnose why something is broken | 5 Whys |
| Break a creative block / surface many options fast | Rapid Fire |
When ambiguity warrants divergence, run one suitable framework and record the outcome in the spec. For an already precise requirement, proceed to authoring and confirmation.
Framework 1: First Principles Thinking
- Identify the problem — what are we actually trying to solve?
- Break it down — the fundamental truths/components that cannot be argued away.
- Question assumptions — for every "we need X", ask do we really? what if we....
- Rebuild — if we started fresh with the truths as the only constraint, what would we build?
PROBLEM: [challenge]
CURRENT APPROACH:
- How it's typically done: ...
- Assumptions baked in: ...
FUNDAMENTAL TRUTHS:
1. [core requirement that cannot change]
2. [physical/logical constraint]
3. [user need at the deepest level]
QUESTIONED ASSUMPTIONS:
- "We need X" -> Do we really? What if...?
- "It must be Y" -> Why? Alternative...?
REBUILT SOLUTION:
- [the shape that survives]
WHAT CHANGES IN THE SPEC:
- Scope in / out decisions this surfed (only if it genuinely informs the requirement)Framework 2: SCAMPER
Apply each lens to the feature. Generate at least one idea per letter.
CHALLENGE: [feature/flow being designed]
[S] Substitute — other tech/approach/component?
[C] Combine — which features/systems can merge?
[A] Adapt — what's similar elsewhere, what can we copy across domains?
[M] Modify — bigger/smaller/faster/slower? exaggerate what?
[P] Put to other uses — who else could use this, for what?
[E] Eliminate — what can be removed without killing the value?
[R] Reverse — opposite ordering, roles, or flow?
TOP 3 IDEAS:
1. ... (why)
2. ... (why)
3. ... (why)
WHICH ONES LAND IN THE SPEC:
- [idea] -> FR/orientation; [idea] -> explicitly out of scope (recorded)Framework 3: Design Thinking
- Empathize — who is the user, what is their current journey, what do they really need (not just what they say)?
- Define — problem statement in the form: "[User] needs [need] because [insight]".
- Ideate — 10+ ideas, no judgment, quantity first, build on each other.
- Prototype — the cheapest thing that validates the direction.
- Test — what feedback do we need, what metric proves it works?
EMPATHIZE:
- User: [who]
- Pain points: [...]
- Current journey: [steps]
DEFINE:
- Problem statement: [user] needs [need] because [insight]
- How Might We: [question]
IDEATE (10+):
1..10+
PROTOTYPE:
- MVP concept: ...
- Cheapest validation: ...
TEST:
- Success metric: ...
- Feedback needed: ...Framework 4: Working Backwards (Amazon-style)
Start from the end experience and work back to what we must build.
- Press release — announce the finished feature.
- FAQ — answer the customer + internal questions.
- Customer experience — the detailed user journey.
- Work back to requirements — what must exist for that journey.
PRESS RELEASE:
- Headline: [name] helps [user] [benefit]
- Problem: [2-3 sentences]
- Solution: [2-3 sentences]
- How it works: [plain explanation]
FAQ:
- Q(A): what is it / how different / how to start / cost
REQUIREMENTS THAT MUST EXIST:
1. ... 2. ... 3. ...Framework 5: 5 Whys
Use when the feature exists to fix a problem whose true cause is unclear. Iterate "why" until the root cause surfaces (5 is the rule of thumb; stop early if a real cause appears).
PROBLEM: [initial symptom]
Why #1 -> Because: ...
Why #2 -> Because: ...
Why #3 -> Because: ...
Why #4 -> Because: ...
Why #5 -> Because: [root cause]
ROOT CAUSE: [summary]
WHAT THE FEATURE MUST ACTUALLY DO: [solution targeting the root cause, not the symptom]Framework 6: Rapid Fire
Generate 15+ options in one pass, no filtering during generation.
CHALLENGE: [feature]
IDEAS (15+):
1..15+
CATEGORIES:
- Quick wins / Big bets / Experiments / Parking lot
TOP 3 TO PURSUE:
1. ... (why)
2. ... (why)
3. ... (why)Synthesis (always, whichever framework)
End divergence by answering three questions in the spec's language:
IDEAS SURFACED: [what changed the shape]
SCOPE DECISION: [what's in, what's explicitly out — and why]
REMAINING BLIND SPOTS: [what we could not evaluate cheaply at Phase 1]3. Create the feature
Check kf list --json first. If the feature already exists, resume its requirement; do not run kf new again. Feature and context names use letters, digits, hyphens or underscores and start with a letter or digit.
Pick the context before you run kf new. A project may declare the contexts it uses in .kf/config.json, and kf new refuses anything outside that list:
kf contexts --json # declared: [...], restricted: true|falserestricted: true— use one of the declared names, spelled exactly.Authis refused next toauth, because accepting both is how a second docs tree appears.restricted: false— nothing is declared; any valid name works, and thebrieffield tells you how to propose a list. Show the proposal to the human; once they confirm it, write only the list they confirmed to.kf/config.jsonas"contexts"(the first entry is the default). Never write a list they have not confirmed. The edit dirties the checkout and makeskf stageskip its base fast-forward, so ask the human to commit it before the stage move.
If kf new refuses the name, it prints the nearest declared one. Take that suggestion or ask the human — do not invent a new context to get past the refusal, and do not add one to .kf/config.json on your own.
kf new {feature_name} --context {context}Scaffolds .works/brainstorm/{feature}_{ts}/ + metadata + seeded phase-1-spec-requirement.md.
Copy any research report saved earlier to <item>/reviews/research-<slug>.md now, before the spec cites it.
4. Author the requirement
Print the template and instructions:
kf instruct spec-requirement --change {feature_name}Fill every section of phase-1-spec-requirement.md. Mapping from divergence to sections:
- Objective / Problem Statement — the restated challenge (sharpened by the framework).
- Scope (in & out) — the SCOPE DECISION from synthesis; on the bounded path, the restated journey and the user's answers. Explicit "out" items are valuable: they stop Phase 2-3 from drifting.
- Affected surfaces — every user-facing surface the change touches (README, docs site, landing page, CLI
-h, examples, changelog, packaging, API reference), one bullet each, or the literalN/A. Each bullet is the bare surface name (README.md, notREADME.md — new flag):kf validatematches it as a lowercase substring of the plan. The spec cannot leave brainstorm without it. Ask the human when the surface list is ambiguous — they own what counts as user-facing. - Functional Requirements
FR-###— the traceability anchor. One behavior per FR, phrased so a test could pass/fail on it. Include the priority (must/should/could) and a note carrying any framework rationale. - Non-Functional Requirements — performance, security, UX, accessibility, compliance.
- Main Use Cases — one line each with
UC-###ids (full narratives live in Phase 2). - Constraints / Assumptions / Edge Cases / Open Questions — edge cases should feel adversarial: empty states, concurrency, permissions, partial failure, boundary values.
- Test Strategy — onboard the user on how deep to test (this locks what Phase 2 must produce):
- Ask: "How far do you want this feature tested?" with concrete options:
unit— unit tests only, for logic and state. The default for a pure backend or utility feature.unit+integration— unit tests plus tests where the change meets another system, the database or an API. The default for an API or a datastore.full— unit, integration and UI/E2E (Playwright, Cypress, Detox and so on). The default for anything with a user interface or a critical flow, such as a web todo list, a login or a checkout.
- When the user picks
full, ask how wide the UI coverage goes: "UI tests for every flow, or only the critical ones?" →{test_level}: full,{ui_test_scope}: critical|all. - Record it in the spec under the labels that template actually uses: the feature template has
Level,UI Tests,Tools(the framework name and the file that runs it) andCoverage Target(80% by default); the bug template hasTest Level,ToolsandCoverage Target, and noUI Tests. - Let the nature of the feature set the default. Do not ask again when the answer is obvious: a CRUD API is
unit+integration, an app with a UI isfull. Ask only when you genuinely cannot decide.
- Ask: "How far do you want this feature tested?" with concrete options:
- Acceptance Criteria — each
[ ]must be independently verifiable by a human or a test. Underfull, at least one criterion per FR must read as a UI action: what is clicked, what is typed, what appears on screen.
Set status: pending → status: confirmed in the spec frontmatter when the human signs off (Phase 1 ends on this confirmation). Write nothing under docs/ here: the close writes the canonical requirement, and a file in the main checkout would make kf stage … planning skip its base fast-forward.
kf status --change {feature_name}The checklist reports content completion; human confirmation is still required before advancing.
5. Review the spec, then confirm with the human
Self-review first, with fresh eyes: placeholders or vague requirements; sections that contradict each other; a scope too wide for one implementation plan; a requirement that could be read two ways. Fix inline.
Then dispatch Agent(kf:spec-reviewer) once, model: opus, with a fresh context: the brief names the work item folder, carries a verbatim excerpt of the user's original request (in the brief or a file you write under the item folder; never only the Objective), names the git ref to ground names against and names a report file (<item>/reviews/spec-review.md). It reports only requirement gaps, untestable FRs or acceptance criteria, internal contradictions and ungrounded names — never new scope. Print spec review ran on: <its model line>; with no report, print spec review: no report. HIGH findings go into the confirmation ask below; the review never blocks on its own, the human does. When the runtime has no subagent tool, run the same four checks yourself and say so.
Present a tight summary (do not dump the whole file):
FEATURE: {name} ({context})
STATUS: pending
OBJECTIVE: {one line}
FR SUMMARY:
- FR-001 | must | {behavior}
- ...
UC SUMMARY:
- UC-001 {name}
- ...
ACCEPTANCE (sample):
- [ ] {criterion}
DECISIONS RECORDED:
- {scope decision / assumption}
- ...
SCOPE OUT (explicit):
- {item} — because {reason}
SPEC REVIEW (spec-reviewer, <model>): {n HIGH, n MEDIUM, n LOW}
- [HIGH] {finding} — {fixed | left for your call because ...}
Please confirm the requirement.- On confirmation → set
status: confirmed, runkf stage {feature_name} planning, then load kf:plan. - If the user pushes back → update the spec, re-confirm. This is normal; the spec exists to absorb disagreement cheaply here, not in implementation.
Done
The requirement is confirmed. Hand off to Phase 2 — Planning:
Load the kf:plan skill and write the four plan artifacts (implementation-plan, use-case-specification, use-case-diagram, test-cases). The one-line use-case summaries and the FR/UC ids from phase-1-spec-requirement.md are the input — the full narratives are written in Phase 2, not carried over from Phase 1. Do not re-derive the ids from scratch.Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

