From pipeline
Design before LARGE changes. Explores user intent, requirements, and design before implementation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pipeline:brainstormingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Help turn ideas into fully formed designs and specs through natural collaborative dialogue.
Help turn ideas into fully formed designs and specs through natural collaborative dialogue.
Start by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design and get user approval.
Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until you have presented a design and the user has approved it. This applies to EVERY project regardless of perceived simplicity. No exceptions. No rationalizations. "It's simple enough to just build" is NEVER true — design first, always.Complete these steps in order:
project.engagement in pipeline.yml (expert/guided/full-guidance). If not set, ask.docs.specs_dirEngagement style (step 2):
Read project.engagement from pipeline.yml. This controls question depth throughout:
| Style | Question behavior |
|---|---|
expert | Minimal questions. Ask only for decisions that block progress. Skip context-obvious answers. |
guided | Standard flow. One question at a time, multiple choice preferred. |
full-guidance | Thorough walkthrough. Explain WHY each question matters. Offer examples with each choice. |
If project.engagement is not set, ask the user once:
"How much guidance do you want during design? (expert / guided / full-guidance)"
Visual companion (step 3, optional):
Read integrations.stitch.enabled and integrations.figma.enabled from pipeline.yml, then offer the appropriate design tool:
If both Stitch and Figma are enabled:
"I can generate new design mockups with Stitch and pull your existing Figma designs for reference. Want to use both, just one, or skip visuals? (both / stitch / figma / skip)"
If only Stitch is enabled:
"I can generate design mockups using Stitch — AI-generated screens from your descriptions. Want to use that as we work through the design?"
If only Figma is enabled:
"I can pull your Figma designs for reference as we brainstorm. Want to use that? (I'll need a Figma file URL)"
If neither is enabled:
"Some of what we're working on might be easier to show in a browser — mockups, diagrams, comparisons. Want to try it? (Requires opening a local URL)"
This offer MUST be its own message. If declined, proceed text-only.
Even after acceptance, decide per question: use the design tool for visual content (mockups, wireframes, layout comparisons), use terminal for text (requirements, conceptual choices, tradeoff lists). A question about a UI topic is not automatically visual.
See visual-companion.md for the detailed dispatch logic for each path.
Understanding the idea (step 4):
Verify technical assumptions (step 4):
After clarifying questions, assess whether the task involves ANY of:
If none apply, skip silently and proceed to exploring approaches.
If triggered:
models.research from config) using the researcher-prompt.md template in this skill's directory. Substitute all placeholders per its checklist before dispatching.Research findings are consumed inline to inform approach proposals. They are NOT persisted separately — the spec document captures the conclusions. If a finding should be locked as a project constraint, persist it as a locked decision through the knowledge tier (same as any other locked decision).
Skip triggers (research gate is NOT needed):
| Thought | Reality |
|---|---|
| "My training data is recent enough" | It is not. Verify or mark LOW. |
| "The docs probably haven't changed" | APIs break monthly. Check Context7. |
| "One source is enough" | One source = LOW confidence. Period. |
| "This is well-known, skip verification" | Well-known to whom? The codebase has the answer or it doesn't. |
| "I'll just note it might be wrong" | Hedging is not a confidence score. Pick HIGH/MEDIUM/LOW. |
| "Quick lookup, skip the format" | The format exists so findings are actionable. No shortcuts. |
Implied feature derivation (step 6):
After clarifying questions, review the user's answers and extract features they implied but didn't explicitly request. Present as a table:
| Implied Feature | Derived From | Include? |
|---|---|---|
| Error handling for [X] | User said "it should just work" | ✅ Recommended |
| Mobile responsiveness | User mentioned "users on phones" | ✅ Recommended |
| Admin dashboard | User said "I need to manage users" | ❓ Ask — could be CLI instead |
Ask the user to confirm which implied features to include. This prevents scope surprise during build.
Exploring approaches:
Presenting the design:
Big 4 + Compliance evaluation (step 9):
These dimensions are in tension — improving one can hurt another. Evaluate each and surface tradeoffs for the user to decide.
security[] from pipeline.yml. For each check, answer whether this design is affected — each item MUST have a confidence level (HIGH/MEDIUM/LOW). Are secrets kept secret? Is the user being asked to overshare?For each dimension, note whether this design is affected and at what confidence (HIGH/MEDIUM/LOW). If dimensions are in tension (e.g., "confirmation step improves security but adds usability friction"), surface the tradeoff explicitly.
Engagement scaling for Big 4 + Compliance:
Design for isolation and clarity:
Working in existing codebases:
TBD tracking (step 10):
Throughout the brainstorm, collect every unresolved question into a TBD table. Use the user's language, not technical jargon:
## Open Questions (TBDs)
| # | Question | User said | Blocks |
|---|----------|-----------|--------|
| 1 | How should expired sessions be handled? | "Not sure yet" | Auth flow design |
| 2 | Which payment provider? | "Leaning toward Stripe but not decided" | Payment integration |
TBDs are included in the spec as a dedicated section. The plan step resolves them before implementation starts. Each TBD must describe what it blocks — this helps the planner sequence tasks around unresolved decisions.
These thoughts mean STOP and reconsider: - "This is simple enough to just build" → No. Design first, always. The HARD-GATE is non-negotiable. - "The user seems impatient, I'll skip questions" → Fewer questions = more assumptions = wrong implementation. - "I know what they want" → You do not. Ask. One question at a time. - "Compliance doesn't apply to this project" → Check explicitly. If none apply, say so in the evaluation. - "The user said 'I don't know' so I'll pick for them" → Ask WHY they're undecided. The reason reveals the constraint. - "I'll derive the implied features later" → Derive them NOW, before approaches. Scope surprise during build is expensive. - "The spec reviewer approved, so the spec is complete" → The USER must also approve. Reviewer and user are separate gates. - "This TBD is minor, I'll resolve it myself" → TBDs belong to the user. Track them, don't resolve them unilaterally.Write spec: Save to {docs.specs_dir}/YYYY-MM-DD-{topic}-design.md
Spec review loop:
User review gate:
"Spec written to
<path>. Please review and let me know if you want changes before we start the implementation plan."
Wait for approval. Then invoke /pipeline:plan.
The brainstorm command handles persistence to all three stores:
Subagents (researcher, spec-reviewer) produce output consumed inline by the brainstorm. They do not self-report to stores.
npx claudepluginhub djwmobley/pipeline --plugin pipelineGuides structured brainstorming to refine ideas into approved designs and specs via dialogue, expert consultation, and review loops before implementation. Enforces for all projects.
Guides collaborative brainstorming to explore intent, clarify requirements, propose designs, and secure approval before implementing features or changes.
Guides a disciplined Socratic brainstorming loop before any creative or implementation work: clarifying questions, pushback, trade-off analysis, design doc, user approval, then handoff to implementation.