REQUIRED Phase 3 of /dev workflow. Asks targeted questions based on codebase exploration findings.
/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-clarify (Phase 3) to resolve ambiguities."
Ask targeted questions based on what exploration revealed. Prerequisite: Exploration phase complete, key files read.
<EXTREMELY-IMPORTANT> ## The Iron Law of ClarificationASK BEFORE DESIGNING. This is not negotiable.
After exploration, you now know:
Use this knowledge to ask informed questions about:
If you catch yourself about to design without resolving ambiguities, STOP. </EXTREMELY-IMPORTANT>
| Excuse | Reality | Do Instead |
|---|---|---|
| "The pattern choice is obvious" | Multiple patterns exist for a reason | ASK which to follow |
| "I can decide edge cases myself" | Your assumptions don't match user expectations | ASK for clarification |
| "This is a small detail" | Small details cause big bugs | ASK about edge cases now |
| "I'll handle integration points during implementation" | Wrong integration breaks everything | CLARIFY integration NOW |
| "The exploration gave me enough info" | Code tells you HOW, not WHAT SHOULD happen | ASK for requirements, not just patterns |
| "I can make a reasonable assumption" | Reasonable != correct | ASK, don't assume |
| "Asking too many questions annoys users" | Building wrong thing annoys users more | ASK clarifying questions |
Assuming user requirements without asking is LYING about what they want.
You explored the codebase and found patterns. But patterns show HOW things work, not WHAT the user wants. Clarification bridges this gap.
Asking costs minutes. Wrong assumptions cost hours of rework.
After updating .claude/SPEC.md with all clarified requirements, IMMEDIATELY invoke:
Skill(skill="workflows:dev-design")
DO NOT:
The workflow phases are SEQUENTIAL. Complete clarify → immediately start design.
| DO | DON'T |
|---|---|
| Ask questions based on exploration | Ask vague/generic questions |
| Reference specific code patterns found | Repeat questions from brainstorm |
| Clarify integration points | Propose approaches (that's design) |
| Resolve edge cases | Make assumptions |
| Update SPEC.md with answers | Skip to implementation |
Clarify answers: WHAT EXACTLY should happen in specific scenarios Design answers: HOW to build it (next phase)
Before asking questions, review:
Common areas needing clarification after exploration:
Integration Points:
Edge Cases:
Scope Boundaries:
Behavior Choices:
file.ts:23 and Pattern B in other.ts:45. Which should we follow?"Present questions with context from exploration:
AskUserQuestion(questions=[{
"question": "The auth middleware at src/middleware/auth.ts:78 validates tokens synchronously. The new endpoint needs user data. Should we: validate synchronously (faster, simpler) or fetch fresh user data (slower, always current)?",
"header": "Auth pattern",
"options": [
{"label": "Sync validation (Recommended)", "description": "Faster, uses cached token claims, matches existing patterns"},
{"label": "Fresh fetch", "description": "Slower, always current, needed if user data changes frequently"}
],
"multiSelect": false
}])
Key principles:
After each answer, update .claude/SPEC.md:
## Clarified Requirements
### Auth Pattern
- Decision: Sync validation
- Rationale: Matches existing patterns, user data changes infrequently
- Reference: src/middleware/auth.ts:78
### Edge Case: Expired Token
- Decision: Return 401, let client refresh
- Rationale: Consistent with other endpoints
| Action | Why It's Wrong | Do Instead |
|---|---|---|
| Ask without exploration context | Questions will be generic | Reference specific code findings |
| Propose architecture | Too early, still clarifying | Ask questions, save design for next phase |
| Make assumptions | Leads to rework | Ask and get explicit answer |
| Skip to design | Ambiguities cause bugs | Resolve all questions first |
Clarification complete when:
.claude/SPEC.md updated with final requirementsREQUIRED SUB-SKILL: After completing clarification, IMMEDIATELY invoke:
Skill(skill="workflows:dev-design")
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 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 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.