define
Product requirements interview → ## Requirements in living doc → quality gate → glossary (when needed). Pipeline: explore → define → [design] → architect → plan.
Phase: Product. User is non-technical. Never surface schemas, APIs, or code paths. Read codebase silently; present findings as product behavior.
Starting
Before asking anything:
- Detect state in
./plans/. If multiple.mdfiles found, list them viaAskUserQuestionand ask which feature to work on.## Rollback Noteswith content: this takes priority. Skip steps 2-3, resume only affected domains, clear after resolving.- Living doc with
## Scope: read for context. - Living doc with
## Requirementspopulated: skip interview → Quality Gate. - Living doc with
### Glossarypopulated: skip to After Delivering. - No living doc: create one (user skipped explore).
- Explore codebase — product lens: user flows, UI patterns, terminology, conventions.
- Search for existing documentation — user guides, help docs, product specs.
If scope exists: "I've read the scope for [feature]. Problem: [X], stakeholders: [Y], scope: [Z]. Let's start with target users — who specifically will use this?"
No living doc? Start from user's description, beginning with problem/motivation. Derive kebab-case name, confirm, create ./plans/<name>.md with ## Scope marked Skipped — entered pipeline at define.
Interview Protocol
Use AskUserQuestion for every question (see CLAUDE.md conventions). When user can't decide: state recommendation, record assumption in Risks & Open Questions, move on.
Code-first: explore codebase before asking; present as product behavior. "The app currently [behavior]. Extend or introduce new?"
Interview: Requirements
Track whether you've resolved decisions across these 9 domains:
- Problem & motivation — skip if scope exists (already resolved)
- Target users & personas — distinct types, sophistication, frequency
- User stories & JTBD — As a/I want/so that + jobs-to-be-done
- Functional requirements — step through each story: see, click, receive
- Non-functional requirements — performance, accessibility, compliance (relevant only)
- Success metrics — measurable outcomes at 30/60/90 days
- Scope definition — in/out/future with rationale for each
- Dependencies & constraints — business: pricing, legal, timing, content
- Risks & open questions — adoption, competitive, open items needing answers
Exhaust every branch depth-first. Resolve sub-questions before moving on. Only ask what codebase can't answer. No limit on questions; depth from more turns, not longer ones.
No technical implementation (schemas, APIs, architecture, technology selection). Redirect: "Captured for architect phase — let's stay on what users need."
When all domains resolved: "I think we have enough to draft the requirements." Write ## Requirements using template in assets/requirements-template.md. Proceed to Quality Gate.
Quality Gate
Work silently — user sees only the verdict.
Analysis: (1) Read requirements fully — note underspecified, inconsistent, or surprising items. (2) Verify claims against actual code/product behavior. (3) Check scope alignment if ## Scope exists. (4) Evaluate: problem clarity, user coverage, requirements quality (specific? testable? prescriptions disguised as requirements?), success metrics, scope control, completeness.
Verdicts:
- Ready: Solid enough to design from. Minor issues only.
- Revise: Issues to fix before design. Specify what.
- Rethink: Fundamental problems — rollback to
/explore.
Output: Verdict header, Strengths (2-4 bullets), Issues (numbered, severity-ordered), Risks.
On Revise
"Let's work through these issues." Group by section. Each turn: restate issues, propose concrete resolution, accept/modify/skip. Skipped issues become open items. After all resolved, update ## Requirements in single write. Re-run Quality Gate. Repeat until Ready or Rethink.
Guardrails: don't re-explore codebase, don't expand scope, don't re-interview. Batch aggressively if user accepts unchanged.
On Ready
Check glossary conditions: requirements introduce 3+ domain nouns not in codebase, naming conflicts found (PRD says "workspace," code says "org"), or feature crosses bounded-context boundaries. If any → Glossary. If none → After Delivering.
Glossary
Run silently. Extract domain terms from requirements. Check codebase naming (models, APIs, types, UI labels, docs). Detect synonyms and homonyms. Propose canonical terms (favor: user-facing consistency, codebase momentum, precision, simplicity). Write as ### Glossary under ## Requirements.
Max 1-2 questions. More needed → re-enter Quality Gate with Revise targeting ambiguous sections.
Rollback
Receiving: Read ## Rollback Notes for trigger, affected domains, decisions to preserve. Resume only affected domains — don't re-interview resolved decisions. After resolving, re-run Quality Gate, clear ## Rollback Notes.
Triggering to explore: If interview reveals scope is wrong (wrong problem, missing stakeholder, infeasible direction): append ## Rollback Notes with trigger + affected domains + preserved decisions. "This changes the scope, not just requirements. Recommend revisiting /explore."
After Delivering
Analyze requirements for UI-facing stories (screens, user flows, visual interactions). If any exist: "Requirements are ready. This feature introduces [N] user-facing stories — I recommend /design next, then /architect." If none: "Requirements are ready. This is backend-only — skip /design and run /architect." Either way: "Review and tell me what to change first."
Update directly on change requests. Flag conflicts with earlier decisions before updating.
Update ## Decisions Log and ## Pipeline Status with define row.
More from michaelmerrill/skills
design
Design specification interview → standalone spec.md (flows, screens, states, components, responsive, a11y). Triggers: 'design this,' 'what screens,' 'how should users interact,' post-product. Not for: technical design (engineering), requirements (product). Skip for API-only, CLI, backend, or infra features.
8plan
Decompose technical design into agent-sized implementation issues → numbered markdown files + standalone plan.md. Triggers: 'plan this,' 'break into issues,' 'create tasks,' 'ready to implement,' post-engineering. Not for: designs without file paths/phases (run engineering first).
7design-ux
MUST USE when a user wants to design user flows, interaction patterns, or screen-level UX for a feature that has defined requirements. This is the UX design step in the planning pipeline (write-a-prd → review-prd → glossary → design-ux → design-feature → review-plan). Typical signals — "design the UX," "how should users interact with this," "what should the UI look like," "design the flows," "design-ux," "what screens do we need," or following up after a review-prd or glossary session. Also applies when the user has a PRD and wants to figure out the user experience before technical design. Conducts a structured interview to produce a UX specification — user flows, screen inventory, component mapping, interaction specs, and accessibility requirements. Do NOT use for technical design (use design-feature), writing requirements (use write-a-prd), reviewing plans (use review-plan), scoping/feasibility (use plan-feature), or when the feature has no user-facing UI (API-only, backend, CLI tools).
6plan-feature
Scoping interview for new features -> scope doc with go/no-go. Triggers: user wants to add/build/implement any new capability. First pipeline step. Not for: bugs, PRDs (write-a-prd), design (design-feature), executing existing specs.
6explore
Scope and assess new feature ideas → living doc with go/no-go. Elaborates vague ideas into clear concepts. First pipeline step. Triggers: user wants to add/build/implement any new capability. Not for: bugs (triage-issue), requirements (define), design (design/architect).
5triage-issue
Investigate bug -> root cause analysis -> issue file with TDD fix plan. Triggers: 'bug,' 'broken,' 'not working,' 'regression,' 'error,' 'triage this.' Not for: new features (scope), technical design (engineering), code review.
5