Internal skill. Use cc10x-router for all development tasks.
Turns vague ideas into validated designs through structured dialogue. Use this before building anything new—when requirements feel unclear, multiple approaches seem viable, or success criteria are ambiguous. Guides you through purpose discovery, option exploration, and incremental validation to prevent building the wrong thing.
/plugin marketplace add romiluz13/cc10x/plugin install cc10x@cc10xThis skill is limited to using the following tools:
Help turn rough ideas into fully formed designs through collaborative dialogue. Don't jump to solutions - explore the problem space first.
Core principle: Understand what to build BEFORE designing how to build it.
Violating the letter of this process is violating the spirit of brainstorming.
NO DESIGN WITHOUT UNDERSTANDING PURPOSE AND CONSTRAINTS
If you can't articulate why the user needs this and what success looks like, you're not ready to design.
ALWAYS before:
Signs you need to brainstorm:
If user references a spec file (SPEC.md, spec.md, plan.md):
# Check for existing spec (permission-free)
Read(file_path="SPEC.md") # or spec.md if that doesn't exist
Before asking questions:
# Check recent context (permission-free)
Bash(command="git log --oneline -10")
Bash(command="ls -la src/") # or relevant directory
Use AskUserQuestion tool - provides multiple choice options, better UX than text questions.
Ask questions sequentially, not all at once.
Question 1: Purpose
"What problem does this solve for users?"
Options format:
A. [Specific use case 1] B. [Specific use case 2] C. Something else (please describe)
Question 2: Users
"Who will use this feature?"
Question 3: Success Criteria
"How will we know this works well?"
Question 4: Constraints
"What limitations or requirements exist?" (Performance, security, compatibility, timeline)
Question 5: Scope
"What's explicitly OUT of scope for this?"
Always present 2-3 options with trade-offs:
## Approaches
### Option A: [Name] (Recommended)
**Approach**: [Brief description]
**Pros**: [Benefits]
**Cons**: [Drawbacks]
**Why recommended**: [Reasoning]
### Option B: [Name]
**Approach**: [Brief description]
**Pros**: [Benefits]
**Cons**: [Drawbacks]
### Option C: [Name]
**Approach**: [Brief description]
**Pros**: [Benefits]
**Cons**: [Drawbacks]
Which direction feels right?
Once approach chosen, present design in sections (200-300 words each):
Architecture Overview - High-level structure
"Does this architecture make sense so far?"
Components - Key pieces
"Do these components cover what you need?"
Data Flow - How data moves
"Does this data flow work for your use case?"
Error Handling - What can go wrong
"Are these error cases covered?"
Testing Strategy - How to verify
"Does this testing approach give you confidence?"
After each section, ask if it looks right before continuing.
✅ "What problem does this solve?"
[Wait for answer]
"Who will use it?"
[Wait for answer]
❌ "What problem does this solve, who will use it,
what are the constraints, and what's the success criteria?"
✅ "Which approach fits better?
A. Simple file-based storage
B. Database with caching
C. External service integration"
❌ "How do you want to handle storage?"
✅ "You mentioned analytics - is that needed for v1
or can we defer it?"
❌ Adding analytics, caching, and multi-tenancy
because "we might need them later"
✅ Presenting 3 approaches with trade-offs
before asking which to pursue
❌ Jumping straight to your preferred solution
✅ "Here's the data model [200 words].
Does this match your mental model?"
❌ Presenting the entire design in one 2000-word block
If you find yourself:
STOP. Go back to Phase 2.
| Excuse | Reality |
|---|---|
| "I know what they need" | Ask. You might be wrong. |
| "Multiple questions is faster" | Overwhelms. One at a time. |
| "One approach is obviously best" | Present options. Let them choose. |
| "They'll say if it's wrong" | Validate incrementally. Don't assume. |
| "Details can wait" | Get details now. Assumptions cause rework. |
After brainstorming, save the validated design:
# [Feature Name] Design
## Purpose
[What problem this solves]
## Users
[Who will use this]
## Success Criteria
- [ ] [Criterion 1]
- [ ] [Criterion 2]
## Constraints
- [Constraint 1]
- [Constraint 2]
## Out of Scope
- [Explicitly excluded 1]
- [Explicitly excluded 2]
## Approach Chosen
[Which option and why]
## Architecture
[High-level structure]
## Components
[Key pieces]
## Data Flow
[How data moves]
## Error Handling
[What can go wrong and how handled]
## Testing Strategy
[How to verify]
## Observability (if applicable)
- Logging: [what to log]
- Metrics: [what to track]
- Alerts: [when to alert]
## UI Mockup (if applicable)
[ASCII mockup for UI features]
## Questions Resolved
- Q: [Question asked]
A: [Answer given]
For UI features, include ASCII mockup in the design:
┌─────────────────────────────────────────┐
│ [Component Name] │
├─────────────────────────────────────────┤
│ [Header/Navigation] │
├─────────────────────────────────────────┤
│ │
│ [Main content area] │
│ │
│ [Input fields, buttons, etc.] │
│ │
├─────────────────────────────────────────┤
│ [Footer/Actions] │
└─────────────────────────────────────────┘
Skip this for API-only or backend features.
Two saves are required - design file AND memory update:
# First create directory
Bash(command="mkdir -p docs/plans")
# Then save design using Write tool (permission-free)
Write(file_path="docs/plans/YYYY-MM-DD-<feature>-design.md", content="[full design content from template above]")
# Then commit (separate commands to avoid permission prompt)
Bash(command="git add docs/plans/*.md")
Bash(command="git commit -m 'docs: add <feature> design'")
Use Edit tool (NO permission prompt):
# First read existing content
Read(file_path=".claude/cc10x/activeContext.md")
# Then use Edit to replace (matches first line, replaces entire content)
Edit(file_path=".claude/cc10x/activeContext.md",
old_string="# Active Context",
new_string="# Active Context
## Current Focus
Design created for [feature]. Ready for planning or building.
## Recent Changes
- Design saved to docs/plans/YYYY-MM-DD-<feature>-design.md
## Next Steps
1. Create implementation plan (if complex)
2. Or start building directly (if simple)
3. Reference design at docs/plans/YYYY-MM-DD-<feature>-design.md
## Active Decisions
| Decision | Choice | Why |
|----------|--------|-----|
| [Key decisions from design] | [Choice] | [Reason] |
## Design Reference
**Design:** `docs/plans/YYYY-MM-DD-<feature>-design.md`
## Last Updated
[current date/time]")
WHY BOTH: Design files are artifacts. Memory is the index. Without memory update, next session won't know the design exists.
This is non-negotiable. Memory is the single source of truth.
Ask the user:
"Design captured. What's next?" A. Create implementation plan (use planning-patterns skill) B. Start building (use build workflow) C. Review and refine further
Before completing brainstorming:
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.