Use when beginning any design process - orchestrates gathering context, clarifying requirements, brainstorming solutions, and documenting validated designs to create implementation-ready design documents
Orchestrates the complete design workflow from initial context gathering to implementation-ready documentation through six structured phases.
npx claudepluginhub ed3dai/ed3d-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Orchestrate the complete design workflow from initial idea to implementation-ready documentation through six structured phases: context gathering, clarification, definition of done, brainstorming, design documentation, and planning handoff.
Core principle: Progressive information gathering -> clear understanding -> creative exploration -> validated design -> documented plan.
Announce at start: "I'm using the starting-a-design-plan skill to guide us through the design process."
| Phase | Key Activities | Output |
|---|---|---|
| 1. Context Gathering | Ask for freeform description, constraints, goals, URLs, files | Initial context bundle |
| 2. Clarification | Invoke asking-clarifying-questions skill | Disambiguated requirements |
| 3. Definition of Done | Synthesize and confirm deliverables before brainstorming | Confirmed success criteria |
| 4. Brainstorming | Invoke brainstorming skill | Validated design (in conversation) |
| 5. Design Documentation | Invoke writing-design-plans skill | Committed design document |
| 6. Planning Handoff | Offer to invoke writing-plans skill | Implementation plan (optional) |
REQUIRED: Create task tracker at start
Use TaskCreate to create todos for each phase (or TodoWrite in older Claude Code versions):
.ed3d/design-plan-guidance.md exists)Use TaskUpdate to mark each phase as in_progress when working on it, completed when finished (or TodoWrite in older versions).
Never skip this phase. Even if the user provides detailed information, ask for anything missing.
Use TaskUpdate to mark Phase 1 as in_progress.
Ask the user to provide (freeform, not AskUserQuestion):
"I need some information to start the design process. Please provide what you have:
What are you designing?
Context materials (very helpful if available):
Project state:
Share whatever details you have. We'll clarify anything unclear in the next step."
Progressive prompting: If user already provided some of this information, acknowledge what you have and ask only for what's missing.
Example: "You mentioned OAuth2 integration. I have the high-level goal. To help design this effectively, I need:
Mark Phase 1 as completed when you have initial context.
Before clarification, check for project-specific design guidance.
Check if .ed3d/design-plan-guidance.md exists:
Use the Read tool to check if .ed3d/design-plan-guidance.md exists in the session's working directory.
If the file exists:
If the file does not exist:
Proceed directly to Phase 2. Do not create a task or mention the missing file.
What project guidance provides:
The guidance informs what questions you ask during clarification.
Use TaskUpdate to mark Phase 2 as in_progress.
REQUIRED SUB-SKILL: Use ed3d-plan-and-execute:asking-clarifying-questions
Announce: "I'm using the asking-clarifying-questions skill to make sure I understand your requirements correctly."
The clarification skill will:
Output: Clear understanding of what user means, ready to confirm Definition of Done.
Mark Phase 2 as completed when requirements are disambiguated.
Before brainstorming the how, lock in the what. Brainstorming explores texture and approach — it assumes the goal is already clear.
Use TaskUpdate to mark Phase 3 as in_progress.
Synthesize the Definition of Done from context gathered so far:
From Phases 1-2 (Context Gathering and Clarification), you should be able to infer or extract:
If the Definition of Done is clear:
State it back to the user and confirm using AskUserQuestion:
Question: "Before we explore approaches, let me confirm what success looks like:"
Options:
- "Yes, that's right" (Definition of Done is accurate)
- "Needs adjustment" (User will clarify what's missing or wrong)
Present the Definition of Done as a brief statement (2-4 sentences) covering:
If the Definition of Done is unclear:
Ask targeted questions to nail it down. Use AskUserQuestion when there are discrete options, or open-ended questions when you need the user to describe their vision.
Examples of clarifying questions:
Do not proceed to brainstorming until Definition of Done is confirmed.
REQUIRED: Once the user confirms the Definition of Done, create the design document file immediately. This captures the DoD at full fidelity before brainstorming begins.
The slug becomes part of all acceptance criteria identifiers (e.g., my-feature.AC1.1) and appears in test names. Ask the user to choose it explicitly.
Generate 2-3 suggested slugs based on the conversation context. Good slugs are:
authn not authentication, but not auth since that's ambiguous with authz)Use AskUserQuestion:
Question: "What should we call this design plan? The name becomes the prefix for all acceptance criteria (e.g., `{slug}.AC1.1`) and appears in test names.
If you have a ticketing system, you can use the ticket name (e.g., PROJ-1234)."
Options:
- "[auto-generated-slug-1]" (e.g., "oauth2-svc-authn")
- "[auto-generated-slug-2]" (e.g., "svc-authn")
- "[auto-generated-slug-3]" (if meaningfully different)
If user selects "Other": They can provide any name. Normalize it:
UPPERCASE-DIGITS, e.g., PROJ-1234): keep as-ismy-cool-feature)File location: docs/design-plans/YYYY-MM-DD-{slug}.md
Use today's date and the user-chosen slug.
Initial file contents:
# [Feature Name] Design
## Summary
<!-- TO BE GENERATED after body is written -->
## Definition of Done
[The confirmed Definition of Done - copy exactly as confirmed with user]
## Acceptance Criteria
<!-- TO BE GENERATED and validated before glossary -->
## Glossary
<!-- TO BE GENERATED after body is written -->
Why write immediately:
Mark Phase 3 as completed when user confirms the Definition of Done AND the file is created.
With clear understanding from Phases 1-3, explore design alternatives and validate the approach.
Use TaskUpdate to mark Phase 4 as in_progress.
REQUIRED SUB-SKILL: Use ed3d-plan-and-execute:brainstorming
Announce: "I'm using the brainstorming skill to explore design alternatives and validate the approach."
Pass context to brainstorming:
The brainstorming skill will:
Output: Validated design held in conversation context.
Mark Phase 4 as completed when design is validated.
Append the validated design to the document created in Phase 3.
Use TaskUpdate to mark Phase 5 as in_progress.
REQUIRED SUB-SKILL: Use ed3d-plan-and-execute:writing-design-plans
Announce: "I'm using the writing-design-plans skill to complete the design document."
Important: The design document already exists from Phase 3 with:
The writing-design-plans skill will:
Output: Committed design document ready for implementation planning.
Mark Phase 5 as completed when design document is committed.
After design is documented, guide user to create implementation plan in fresh context.
Use TaskUpdate to mark Phase 6 as in_progress.
Do NOT create implementation plan directly. The user needs to /clear context first.
Announce design completion and provide next steps:
Design complete! Design document committed to `docs/design-plans/[filename]`.
Ready to create the implementation plan? This requires fresh context to work effectively.
**IMPORTANT: Copy the command below BEFORE running /clear (it will erase this conversation).**
(1) Copy this command now:
/ed3d-plan-and-execute:start-implementation-plan @docs/design-plans/[full-filename].md .
(the `.` at the end is necessary or else Claude Code will eat the command and do the wrong thing.)
(2) Clear your context:
/clear
(3) Paste and run the copied command.
The start-implementation-plan command will create detailed tasks, set up a branch, and prepare for execution.
Why /clear instead of continuing:
Mark Phase 6 as completed after providing instructions.
You can and should go backward when:
Don't force forward linearly when going backward gives better results.
| Excuse | Reality |
|---|---|
| "User provided details, can skip context gathering" | Always run Phase 1. Ask for what's missing. |
| "Requirements are clear, skip clarification" | Clarification prevents misunderstandings. Always run Phase 2. |
| "I know what done looks like, skip confirmation" | Confirm Definition of Done explicitly. Always run Phase 3. |
| "Simple idea, skip brainstorming" | Brainstorming explores alternatives. Always run Phase 4. |
| "Design is in conversation, don't need documentation" | Documentation is contract with writing-implementation-plans. Always run Phase 5. |
| "Can invoke implementation planning directly" | Must /clear first. Provide copy-then-clear workflow. |
| "I can combine phases for efficiency" | Each phase has distinct purpose. Run all six. |
| "User knows what they want, less structure needed" | Structure ensures nothing is missed. Follow all phases. |
All of these mean: STOP. Run all six phases in order.
| Principle | Application |
|---|---|
| Never skip brainstorming | Even with detailed specs, always run Phase 4 (may be shorter) |
| Progressive prompting | Ask for less if user already provided some context |
| Clarify before ideating | Phase 2 prevents building the wrong thing |
| Lock in the goal before exploring | Phase 3 confirms what "done" means before brainstorming the how |
| All brains in skills | This skill orchestrates; sub-skills contain domain expertise |
| Task tracking | YOU MUST create todos with TaskCreate and update with TaskUpdate for all phases (or TodoWrite in older versions) |
| Flexible progression | Go backward when needed to fill gaps |
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.