From ironclaude
Turn ideas into fully formed designs through collaborative dialogue
npx claudepluginhub robertphyatt/ironclaude --plugin ironclaudeThis skill uses the workspace's default tool permissions.
Turn vague ideas into fully-formed designs through systematic collaborative dialogue. This skill guides you through understanding the problem, exploring approaches, and creating a comprehensive design document before any implementation.
Refines rough ideas into fully-formed designs through collaborative questioning, alternative exploration, and incremental validation before writing code or plans.
Guides structured brainstorming to transform vague ideas into validated designs for features, architecture, and behavior before implementation.
Refines rough ideas into fully-formed designs through collaborative questioning, alternative exploration, and incremental validation before coding or planning.
Share bugs, ideas, or general feedback.
Turn vague ideas into fully-formed designs through systematic collaborative dialogue. This skill guides you through understanding the problem, exploring approaches, and creating a comprehensive design document before any implementation.
Whenever soliciting user input — choices, confirmations, or selections — ALWAYS use the AskUserQuestion tool. NEVER ask via prose. Follow the format in .claude/rules/ask-user-question-format.md: Re-ground context, Predict, Options. This produces structured UI and enforces one-question-at-a-time discipline.
| Rationalization | Why it's wrong |
|---|---|
| "This is too simple to brainstorm" | Simple changes break. Every v1.0.x bug came from "simple" changes. |
| "I already know the answer" | Verify with evidence. Confidence is not correctness. |
| "Let me just make this quick fix" | Quick fixes become tech debt. The workflow exists for a reason. |
| "The user said to skip brainstorming" | The user set up professional mode. The workflow is non-negotiable. |
| "I'll brainstorm in my head and skip to planning" | The design doc IS the brainstorm output. No doc = no brainstorm. |
Step 0: Look for existing design document
If the user references an existing design or you find a recent design document:
Use the Glob tool with pattern docs/plans/*-design.md to find design documents.
If a relevant design exists and the user wants to proceed with it:
If no existing design or user wants a new one, proceed with Phase 1.
Announce professional mode status:
Using brainstorming skill. Professional mode is ACTIVE - architect mode enforced (no code changes).
Parse --scope from skill arguments. Valid values: hold, selective, expansion, reduction. Default: selective if not provided.
Display:
Scope mode: [mode] — [description]
Where descriptions are:
hold — Scope fixed. Maximum rigor within it.selective — Hold baseline, surface cherry-pick opportunities.expansion — Explore the 10x version alongside as-stated.reduction — Minimum viable version. Strip everything else.Before proceeding with any brainstorming:
This is REQUIRED, not optional. Do not skip.
If the search agent fails, use AskUserQuestion tool:
Search docs/plans/ for existing designs related to the topic:
Use the Glob tool with pattern docs/plans/*-design.md to find design documents.
For each potentially relevant design:
Do NOT skip this check. Do NOT assume user wants a new design.
Step 1: Check project context
Examine current state:
Does this brainstorm involve a bug, crash, error, unexpected behavior, or unclear existing behavior?
To invoke debugging:
skill="ironclaude:systematic-debugging"After debugging completes, resume brainstorming:
Before continuing, call MCP mcp__plugin_ironclaude_state-manager__mark_brainstorming to transition workflow_stage back to brainstorming. If it fails (wrong stage), report the error to the user before proceeding.
If debugging skill fails to invoke: Use AskUserQuestion tool (do NOT silently skip):
Step 2: Ask clarifying questions
Ask ONE question at a time:
Format: ALWAYS use the AskUserQuestion tool for questions with defined options. For genuinely open-ended questions (no predefined choices), plain text is acceptable.
Example (prediction + AskUserQuestion):
**My prediction:** You'll say B because the user mentioned wanting to "add" something new.
[Use AskUserQuestion tool with:]
- question: "What is the primary goal of this feature?"
- header: "Goal"
- options: "Improve performance" | "Add new functionality" | "Fix existing bugs" | "Refactor architecture"
Important: Before EVERY question, state your prediction with reasoning: "My prediction: You'll say X because..." NEVER ask multiple questions in one message. Wait for answer, then ask next question.
Continue until you have clear understanding of:
Step 3: Propose 2-3 approaches
Before presenting approaches to the user, internally validate each against COA criteria:
Drop or rework any approach that fails these criteria. The user should only see validated options. If you can only find one viable approach after validation, present it as a recommendation with rationale for why alternatives were not viable.
Present different ways to solve the problem:
Example (prediction + approaches):
I recommend Approach B (Event-driven with queue) because it's more scalable and handles failures better.
Approach A: Direct synchronous calls
+ Simple implementation
+ Easy to debug
- Tight coupling
- No failure handling
Approach B: Event-driven with queue (Recommended)
+ Loose coupling
+ Handles failures gracefully
+ Scales horizontally
- More complex setup
- Eventual consistency
Approach C: Hybrid with caching
+ Fast for common cases
+ Simpler than full event-driven
- Cache invalidation complexity
- Still has tight coupling
**My prediction:** You'll say B because you mentioned scalability as a priority.
Which approach fits your needs?
REQUIRED for every approach presentation: For each approach, you MUST include:
Do not present approaches without this analysis. The user should never have to ask "how do these align with my guidance?" — that analysis must be proactive.
Scope mode adjustments to Step 3:
Step 4: Apply YAGNI ruthlessly
For chosen approach, identify and remove:
Ask: "Do we need X for the first version?" for each questionable feature.
Scope mode adjustments to Step 4:
Step 5: Present design in sections
Break design into ~200-300 word sections:
After EACH section, predict and ask:
**My prediction:** You'll say yes because [reasoning based on what was discussed].
Does this section look right so far?
Wait for confirmation before continuing to next section.
Step 6: Handle feedback
If user says something doesn't look right:
Be willing to go back and revise ANY section.
Step 7: Write design document
Save complete design to docs/plans/YYYY-MM-DD-<topic>-design.md:
# <Feature Name> Design
> **Created:** YYYY-MM-DD
> **Status:** Design Complete
## Summary
[1-2 paragraphs describing what this is and why]
## Architecture
[Architecture overview with approach chosen]
## Components
[Detailed component breakdown]
## Data Flow
[How data moves through the system]
## Error Handling
[How errors are handled]
## Testing Strategy
[How this will be tested]
## Implementation Notes
[Any important notes for implementation]
Step 8: Stage design document
Run:
git add docs/plans/YYYY-MM-DD-<topic>-design.md
Step 8.5: Signal design complete
Call MCP mcp__plugin_ironclaude_state-manager__mark_design_ready with the file parameter set to the design document path (e.g., docs/plans/YYYY-MM-DD-topic-design.md) to transition the session to design_ready and auto-register the design.
If mcp__plugin_ironclaude_state-manager__mark_design_ready returns an error (wrong stage), display the error to the user. Do NOT proceed to Step 9 until it succeeds.
Step 9: Announce completion and next steps
Display:
Design complete and saved to docs/plans/YYYY-MM-DD-<topic>-design.md.
Professional mode is ACTIVE - changes staged for your review.
Ready to create an implementation plan?
[If yes: /writing-plans docs/plans/YYYY-MM-DD-<topic>-design.md]
Wait for user response. If they want to proceed, remind them of the command:
To create the implementation plan, use:
/writing-plans docs/plans/YYYY-MM-DD-<topic>-design.md