Brainstorming Ideas Into Designs
Version: 9.0 | Updated: 01-July-2026 | Architect: Karim Bhalwani | Deps: thinker, concise-planning
Pipeline position: explore (1 of 4) - brainstorming -> architect -> concise-planning -> implementer. This skill produces aligned understanding, NOT a spec, NOT a plan, NOT code.
Mode Entry-Point Check
At the start of each session, determine the operating mode by asking: Does the user have a concrete proposal with defined components and a proposed approach?
- Yes → State "Entering stress-test mode" and proceed with stress-test mode rules.
- No → State "Entering open exploration mode" and proceed with open exploration.
Dependencies
Load the following via read_file before using this skill. Skills marked ★ have disable-model-invocation: true and cannot self-invoke - they must be loaded explicitly.
~/.copilot/skills/thinker/SKILL.md ★ - structured reasoning scaffold
~/.copilot/skills/concise-planning/SKILL.md - atomic checklist output format
If a required skill file cannot be loaded, notify the user immediately with the exact missing path and halt. Do not proceed without the thinker skill loaded, as it is required for structured reasoning.
Constraints
HARD-GATE: Design-First Approval - Before any implementation action: (1) present the design to the user, (2) receive explicit user approval, (3) complete the Spec Self-Review (below). Applies to EVERY task regardless of simplicity. No exceptions.
DO NOT:
- Write any code or touch implementation files
- Scaffold projects or modify file structure
- Plan deployment strategies
- Take any action before design approval
DO:
- Focus on design and architecture only
- Validate design incrementally with stakeholder
- Explore exactly three alternatives with trade-offs before settling
- Pass approved designs to
architect
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 in small sections (200-300 words), checking after each section whether it looks right so far.
The Process
Understanding the idea
- Check out the current project state first (files, docs, recent commits)
- Ask questions one at a time to refine the idea
- Lead with your recommended answer or assumption - the user confirms or corrects, rather than thinking from scratch
- Prefer multiple choice questions when possible, but open-ended is fine too
- Only one question per message - if a topic needs more exploration, break it into multiple questions
- Focus on understanding: purpose, constraints, specific measurable outcomes that define project success
Stress-testing an existing plan
When the user has a specific plan or design to stress-test (not a fuzzy idea but a concrete proposal), switch to stress-test mode instead of open exploration.
Stress-test mode rules:
- Walk each branch of the decision tree, resolving dependencies one at a time.
- Ask one question per message. Never batch questions - asking multiple at once is bewildering.
- Lead each question with your recommended answer. The user confirms, corrects, or rejects - they never answer from scratch.
- If a question can be answered by exploring the codebase, explore the codebase instead of asking.
- Continue until every branch of the decision tree is resolved and no open questions remain.
Completion criterion: every decision-tree branch is resolved. State "no open design questions remain" with a summary of decisions made.
Exploring approaches
- Propose exactly three different approaches with trade-offs
- Present options conversationally with your recommendation and reasoning
- Lead with your recommended option and explain why
Presenting the design
- When all questions from the decision tree are resolved and the user has confirmed the scope, present the design in sections
- Break it into sections of 200-300 words
- Ask after each section whether it looks right so far
- Cover: architecture, components, data flow, error handling, testing
- Be ready to go back and clarify if something doesn't make sense
After the Design
Spec Self-Review (MANDATORY before asking user to approve)
Before presenting the finished design for user approval, run this 4-check self-review. If any check fails, fix the design before presenting:
- Placeholder scan - Does the design contain
TBD, TODO, to be determined, or to be scoped later? If yes, either resolve it or move it to an explicit "Open Questions" section.
- Internal consistency - Do the architecture, data flow, and error handling sections agree with each other? If a component is mentioned in one section but absent in another, reconcile or explain.
- Scope check - Does the design cover all requirements stated in the user request? List each requirement and confirm it is addressed.
- Ambiguity check - Would a developer reading this design know exactly what to build, or would they need to ask follow-up questions? List any remaining ambiguities as explicit Open Questions.
Only after passing all four checks: present the design to the user and wait for approval.
If the user rejects the design, ask one clarifying question to identify the specific point of disagreement, revise only the affected section, re-run the Spec Self-Review for that section, and re-present. Do not restart the full design from scratch unless the user explicitly requests it.
Documentation
- Write the validated design to
docs/plans/YYYY-MM-DD-<topic>-design.md
- Write clearly and concisely: short sentences, active voice, no jargon
- Commit the design document to git
Implementation (if continuing)
- Ask: "Ready to set up for implementation?"
- Create an isolated workspace (e.g., git worktree) for implementation
- Hand off to the
architect skill to produce a formal specification, then to concise-planning for the implementation checklist
Key Principles
- One question at a time, with your recommendation - State your assumption or preferred answer first; the user confirms or redirects
- Multiple choice preferred - Easier to answer than open-ended when possible
- YAGNI ruthlessly - Remove unnecessary features from all designs
- Explore alternatives - Always propose exactly three approaches before settling
- Incremental validation - Present design in sections, validate each
- Be flexible - Go back and clarify when something doesn't make sense
Outputs & Deliverables
- Primary Output: Design document (markdown) with architecture, components, data flow, and error handling
- Secondary Output: Validated design sections with stakeholder approval
- Success Criteria: Stakeholders agree design is buildable and complete
- Quality Gate: Design ready for handoff to
architect
Definition of Done
Constraints
- NO implementation code. Design and architecture only.
- NO deployment planning.
- Must validate each section incrementally with stakeholder feedback.
Common Pitfalls
- Leading with Solutions: Jumping to "build a dashboard" before understanding the actual problem. Always start with "what problem are we solving?"
- Vague Acceptance Criteria: Ending with "sounds good" instead of specific, measurable success criteria. Define success metrics before moving forward.
- Skipping Tradeoff Analysis: Not exploring alternatives leaves the team with one perspective. Always present 2-3 approaches with trade-offs.
- Rushing Validation: Presenting the entire design at once instead of section-by-section validation. This leads to rework and frustration.
- Ignoring Constraints: Designing without understanding budget, timeline, or technical limits. Ask constraints early.
- Assuming Shared Understanding: "We all agree what this means" leads to misalignment. Define terms explicitly and check agreement.
Integration Points
| Phase |
Input From |
Output To |
Context |
| Exploration |
User vision |
Design validation |
Ask refining questions to understand intent |
| Design |
Validated requirements |
architect |
Pass to architect for technical specification |
| Handoff |
Approved design |
implementer |
Provide design document and acceptance criteria |
| Planning |
Design scope |
concise-planning |
Feed into implementation planning |
References
Load when capturing and structuring exploration output:
Reference Documents
- idea_board.md - Idea board template. Load when capturing multi-option exploration output - use to structure divergent ideas before converging on a preferred approach.
Scripts
- generate_idea_board.py - Idea board scaffolder. Run to generate a structured diverge-then-converge exploration document from a problem statement and a list of option names. Produces a scored evaluation matrix and preferred direction recommendation automatically.
1---2name: brainstorming-23description: PIPELINE POSITION: explore (step 1 of 4: brainstorming → architect → concise-planning → implementer). Surface questions, alternatives, and unknowns through dialogue BEFORE a specification exists. Use when the problem is fuzzy, multiple approaches are viable, or requirements need validation. Output is aligned understanding (not a spec, not a plan, not code). DO NOT USE FOR: writing the formal specification or module contracts (use architect AFTER brainstorming aligns intent), task checklists for an approved design (use concise-planning), or any code-touching action (use implementer).4license: MIT5---67# Brainstorming Ideas Into Designs89> Version: 9.0 | Updated: 01-July-2026 | Architect: Karim Bhalwani | Deps: thinker, concise-planning1011> **Pipeline position**: **explore** (1 of 4) - `brainstorming` -> `architect` -> `concise-planning` -> `implementer`. This skill produces aligned understanding, NOT a spec, NOT a plan, NOT code.1213## Mode Entry-Point Check1415At the start of each session, determine the operating mode by asking: Does the user have a concrete proposal with defined components and a proposed approach?1617- **Yes** → State "Entering stress-test mode" and proceed with stress-test mode rules.18- **No** → State "Entering open exploration mode" and proceed with open exploration.1920## Dependencies2122Load the following via `read_file` before using this skill. Skills marked ★ have `disable-model-invocation: true` and cannot self-invoke - they **must** be loaded explicitly.2324- `~/.copilot/skills/thinker/SKILL.md` ★ - structured reasoning scaffold25- `~/.copilot/skills/concise-planning/SKILL.md` - atomic checklist output format2627If a required skill file cannot be loaded, notify the user immediately with the exact missing path and halt. Do not proceed without the thinker skill loaded, as it is required for structured reasoning.2829---3031## Constraints3233**HARD-GATE: Design-First Approval** - Before any implementation action: (1) present the design to the user, (2) receive explicit user approval, (3) complete the Spec Self-Review (below). Applies to EVERY task regardless of simplicity. No exceptions.3435**DO NOT:**3637- Write any code or touch implementation files38- Scaffold projects or modify file structure39- Plan deployment strategies40- Take any action before design approval4142**DO:**4344- Focus on design and architecture only45- Validate design incrementally with stakeholder46- Explore exactly three alternatives with trade-offs before settling47- Pass approved designs to `architect`4849---5051Help turn ideas into fully formed designs and specs through natural collaborative dialogue.5253Start 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 in small sections (200-300 words), checking after each section whether it looks right so far.5455## The Process5657### Understanding the idea5859- Check out the current project state first (files, docs, recent commits)60- Ask questions one at a time to refine the idea61- **Lead with your recommended answer or assumption** - the user confirms or corrects, rather than thinking from scratch62- Prefer multiple choice questions when possible, but open-ended is fine too63- Only one question per message - if a topic needs more exploration, break it into multiple questions64- Focus on understanding: purpose, constraints, specific measurable outcomes that define project success6566### Stress-testing an existing plan6768When the user has a specific plan or design to stress-test (not a fuzzy idea but a concrete proposal), switch to **stress-test mode** instead of open exploration.6970**Stress-test mode rules:**7172- Walk each branch of the decision tree, resolving dependencies one at a time.73- Ask **one question per message**. Never batch questions - asking multiple at once is bewildering.74- **Lead each question with your recommended answer.** The user confirms, corrects, or rejects - they never answer from scratch.75- If a question can be answered by exploring the codebase, explore the codebase instead of asking.76- Continue until every branch of the decision tree is resolved and no open questions remain.7778**Completion criterion**: every decision-tree branch is resolved. State "no open design questions remain" with a summary of decisions made.7980---8182### Exploring approaches8384- Propose exactly three different approaches with trade-offs85- Present options conversationally with your recommendation and reasoning86- Lead with your recommended option and explain why8788### Presenting the design8990- When all questions from the decision tree are resolved and the user has confirmed the scope, present the design in sections91- Break it into sections of 200-300 words92- Ask after each section whether it looks right so far93- Cover: architecture, components, data flow, error handling, testing94- Be ready to go back and clarify if something doesn't make sense9596## After the Design9798### Spec Self-Review (MANDATORY before asking user to approve)99100Before presenting the finished design for user approval, run this 4-check self-review. If any check fails, fix the design before presenting:1011021. **Placeholder scan** - Does the design contain `TBD`, `TODO`, `to be determined`, or `to be scoped later`? If yes, either resolve it or move it to an explicit "Open Questions" section.1032. **Internal consistency** - Do the architecture, data flow, and error handling sections agree with each other? If a component is mentioned in one section but absent in another, reconcile or explain.1043. **Scope check** - Does the design cover all requirements stated in the user request? List each requirement and confirm it is addressed.1054. **Ambiguity check** - Would a developer reading this design know exactly what to build, or would they need to ask follow-up questions? List any remaining ambiguities as explicit Open Questions.106107Only after passing all four checks: present the design to the user and wait for approval.108109If the user rejects the design, ask one clarifying question to identify the specific point of disagreement, revise only the affected section, re-run the Spec Self-Review for that section, and re-present. Do not restart the full design from scratch unless the user explicitly requests it.110111### Documentation112113- Write the validated design to `docs/plans/YYYY-MM-DD-<topic>-design.md`114- Write clearly and concisely: short sentences, active voice, no jargon115- Commit the design document to git116117### Implementation (if continuing)118119- Ask: "Ready to set up for implementation?"120- Create an isolated workspace (e.g., git worktree) for implementation121- Hand off to the `architect` skill to produce a formal specification, then to `concise-planning` for the implementation checklist122123## Key Principles124125- **One question at a time, with your recommendation** - State your assumption or preferred answer first; the user confirms or redirects126- **Multiple choice preferred** - Easier to answer than open-ended when possible127- **YAGNI ruthlessly** - Remove unnecessary features from all designs128- **Explore alternatives** - Always propose exactly three approaches before settling129- **Incremental validation** - Present design in sections, validate each130- **Be flexible** - Go back and clarify when something doesn't make sense131132## Outputs & Deliverables133134- **Primary Output**: Design document (markdown) with architecture, components, data flow, and error handling135- **Secondary Output**: Validated design sections with stakeholder approval136- **Success Criteria**: Stakeholders agree design is buildable and complete137- **Quality Gate**: Design ready for handoff to `architect`138139## Definition of Done140141- [ ] Design document written to `docs/plans/` with architecture, components, and data flow142- [ ] All design sections validated incrementally with stakeholder143- [ ] 2-3 approaches explored with trade-off analysis before final selection144- [ ] Acceptance criteria are specific and measurable145- [ ] Design is ready for handoff to `architect`146147## Constraints148149- **NO implementation code.** Design and architecture only.150- **NO deployment planning.**151- Must validate each section incrementally with stakeholder feedback.152153## Common Pitfalls154155- **Leading with Solutions**: Jumping to "build a dashboard" before understanding the actual problem. Always start with "what problem are we solving?"156- **Vague Acceptance Criteria**: Ending with "sounds good" instead of specific, measurable success criteria. Define success metrics before moving forward.157- **Skipping Tradeoff Analysis**: Not exploring alternatives leaves the team with one perspective. Always present 2-3 approaches with trade-offs.158- **Rushing Validation**: Presenting the entire design at once instead of section-by-section validation. This leads to rework and frustration.159- **Ignoring Constraints**: Designing without understanding budget, timeline, or technical limits. Ask constraints early.160- **Assuming Shared Understanding**: "We all agree what this means" leads to misalignment. Define terms explicitly and check agreement.161162## Integration Points163164| Phase | Input From | Output To | Context |165| ----------- | ---------------------- | ------------------ | ----------------------------------------------- |166| Exploration | User vision | Design validation | Ask refining questions to understand intent |167| Design | Validated requirements | `architect` | Pass to architect for technical specification |168| Handoff | Approved design | `implementer` | Provide design document and acceptance criteria |169| Planning | Design scope | `concise-planning` | Feed into implementation planning |170171## References172173Load when capturing and structuring exploration output:174175### Reference Documents176177- [idea_board.md](./references/idea_board.md) - Idea board template. Load when capturing multi-option exploration output - use to structure divergent ideas before converging on a preferred approach.178179### Scripts180181- [generate_idea_board.py](./scripts/generate_idea_board.py) - Idea board scaffolder. Run to generate a structured diverge-then-converge exploration document from a problem statement and a list of option names. Produces a scored evaluation matrix and preferred direction recommendation automatically.