MUST use before building features, creating components, adding functionality, or designing new behavior. Use when user says 'build', 'create', 'add feature', 'implement', 'design', or describes something new to build. Explores requirements through questions before writing code.
Collaborative design assistant that transforms vague feature requests into detailed technical specifications through structured questioning and expert consultation. Triggers when users say "build," "create," or "implement" to explore requirements, propose 2-3 approaches with trade-offs, and present validated designs in sections before any code is written.
/plugin marketplace add bgrober/indie-stack/plugin install superpowers@superpowers-devThis skill inherits all available tools. When active, it can use any tool Claude has access to.
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.
Understanding the idea:
Exploring approaches:
Presenting the design:
When brainstorming features for your stack, work through these decision trees:
Is this feature...
├── iOS/native only?
│ └── Use indie-stack:swift-ios-app patterns
├── Web only?
│ └── Use Next.js + Vercel patterns
├── Backend/API only?
│ └── Use indie-stack:supabase-setup patterns
└── Full stack (mobile + web + backend)?
└── Design backend first, then platform UIs
Does this feature need data persistence?
├── No → Local state only (SwiftUI @State, React useState)
├── Yes, local only → SwiftData (iOS) or localStorage (web)
├── Yes, synced across devices →
│ ├── Real-time sync needed?
│ │ ├── Yes → Supabase Realtime
│ │ └── No → Supabase REST + manual sync
│ └── Offline support needed?
│ ├── Yes → SwiftData + SyncService pattern
│ └── No → Direct Supabase queries
└── Yes, shared between users →
└── Supabase with appropriate RLS policies
Does this feature need auth?
├── No → Public access
├── Yes, identified user only →
│ ├── New app? → Sign in with Apple (iOS) or magic link (web)
│ ├── Existing app? → Use existing AuthService
│ └── Trial flow? → One free action, then require sign-in
└── Yes, with roles/permissions →
└── Add roles to profiles table + RLS policies
Does this feature use AI?
├── No → Skip this section
├── Yes →
│ ├── Where does AI run?
│ │ ├── Edge Function (Supabase) → indie-stack:edge-function
│ │ └── Client-side → Not recommended (API key exposure)
│ ├── What AI provider?
│ │ ├── Vision/multimodal → Gemini (good price/performance)
│ │ ├── Text generation → Claude or GPT-4
│ │ └── Embeddings → OpenAI text-embedding-3-small
│ └── Structured output needed?
│ ├── Yes → Use JSON mode + Zod validation
│ └── No → Stream response to UI
Should this work offline?
├── Core feature that users expect to work anywhere →
│ └── YES: SwiftData local-first, sync when connected
├── Real-time collaborative feature →
│ └── NO: Require connection, show clear offline state
├── Read-heavy feature (viewing history, stats) →
│ └── YES: Cache data locally, refresh when connected
└── Write-heavy feature (creating content) →
└── YES: Save locally, queue uploads for later
IMPORTANT: Don't guess on domain-specific questions. Consult experts.
When you encounter questions that require specialized knowledge, dispatch the appropriate agent to get informed recommendations before presenting options to the user.
| Question Type | Agent to Consult | Example Questions |
|---|---|---|
| UX/User Flow | product-ux-strategist | "How should onboarding work?", "Modal vs sheet?", "Where should this button go?" |
| iOS Architecture | principal-ios-engineer | "Actor vs class?", "How to handle state?", "Navigation pattern?" |
| Backend Design | staff-backend-architect | "RLS policy approach?", "Edge Function structure?", "Caching strategy?" |
User: "I want to add a delete feature for pours"
You (thinking): This involves UX decisions. Let me consult the UX expert.
[Dispatch product-ux-strategist]:
"We're designing a delete feature for pour photos. The user wants to delete
pours from their history. What's the best UX pattern for destructive actions
in a mobile app? Options I'm considering:
1. Swipe to delete with undo toast
2. Delete button with confirmation dialog
3. Edit mode with multi-select delete
Context: This is a latte art grading app, pours have sentimental value."
[Agent returns]: "Recommend option 1 (swipe + undo) because..."
You (to user): "For the delete interaction, I consulted a UX expert. Here are the options:
**Option 1: Swipe to delete with undo toast** (Recommended by UX strategist)
- Quick gesture for single deletions
- 5-second undo window prevents accidents
- Matches iOS conventions
Option 2: Confirmation dialog
- More explicit but adds friction
- Better for truly irreversible actions
Option 3: Edit mode with multi-select
- Good for bulk operations
- Overkill for occasional single deletes
The UX strategist recommends Option 1. What do you think?"
product-ux-strategist - User flows, onboarding, UI patterns, navigation, platform conventionsprincipal-ios-engineer - Swift architecture, SwiftUI patterns, SwiftData, concurrency, performancestaff-backend-architect - Supabase, database design, API patterns, caching, AI integrationWhen brainstorming, make sure to cover:
Documentation:
docs/plans/YYYY-MM-DD-<topic>-design.mdImplementation (if continuing):
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.