REQUIRED Phase 1 of /dev workflow. Uses Socratic questioning to understand requirements before exploration.
Uses Socratic questioning to clarify requirements before any code exploration. Triggers when you begin the /dev workflow with a vague request, forcing you to define what success looks like before exploring solutions.
/plugin marketplace add edwinhu/workflows/plugin install workflows@edwinhu-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Announce: "I'm using dev-brainstorm (Phase 1) to gather requirements."
Refine vague ideas into clear requirements through Socratic questioning. NO exploration, NO approaches - just questions and requirements.
<EXTREMELY-IMPORTANT> ## The Iron Law of BrainstormingASK QUESTIONS BEFORE ANYTHING ELSE. This is not negotiable.
Before exploring codebase, before proposing approaches, you MUST:
Approaches come later (in /dev-design) after exploring the codebase.
If you catch yourself about to explore the codebase before asking questions, STOP. </EXTREMELY-IMPORTANT>
| DO | DON'T |
|---|---|
| Ask clarifying questions | Explore codebase |
| Understand requirements | Spawn explore agents |
| Define success criteria | Look at existing code |
| Write draft SPEC.md | Propose approaches (that's design) |
| Identify unknowns | Create implementation tasks |
Brainstorm answers: WHAT do we need and WHY Explore answers: WHERE is the code (next phase) Design answers: HOW to build it (after exploration)
Use AskUserQuestion immediately:
Example questions:
After understanding requirements:
Write initial spec to .claude/SPEC.md:
# Spec: [Feature Name]
> **For Claude:** After writing this spec, use `Skill(skill="workflows:dev-explore")` for Phase 2.
## Problem
[What problem this solves]
## Requirements
- [Requirement 1]
- [Requirement 2]
## Success Criteria
- [ ] Criterion 1
- [ ] Criterion 2
## Constraints
- [Any limitations or boundaries]
## Automated Testing (MANDATORY)
> **For Claude:** Use `Skill(skill="workflows:dev-test")` for automation options.
- **Framework:** [pytest / playwright / jest / etc.]
- **Command:** [e.g., `pytest tests/ -v`]
- **Core functionality to verify:** [what MUST be tested automatically]
### What Counts as a Real Automated Test
| ✅ REAL TEST (execute + verify) | ❌ NOT A TEST (never acceptable) |
|---------------------------------|----------------------------------|
| pytest calls function, checks return value | grep/ast-grep finds function exists |
| Playwright clicks button, verifies result | Check logs say "success" |
| ydotool simulates user, screenshot verifies | Read source code structure |
| API call returns expected response | "Code looks correct" |
| CLI invocation produces expected output | Structural pattern matching |
**THE TEST MUST EXECUTE THE CODE AND VERIFY RUNTIME BEHAVIOR.**
Grepping is not testing. Log checking is not testing. Code review is not testing.
## Open Questions
- [Questions to resolve during exploration]
Note: No "Chosen Approach" yet - that comes after exploration and design phases.
| Action | Why It's Wrong | Do Instead |
|---|---|---|
| Spawn explore agent | Exploring before understanding | Ask questions first |
| Read source files | Looking at code before requirements | Ask what user wants |
| Propose approaches | Too early - need to explore first | Save for /dev-design |
| Create task list | Planning before understanding | Finish brainstorm first |
Brainstorm complete when:
.claude/SPEC.md written (draft)REQUIRED SUB-SKILL: After completing brainstorm, IMMEDIATELY invoke:
Skill(skill="workflows:dev-explore")
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.