scope
Scope interview → ./plans/<feature>/scope.md with place/pass bet. Pipeline: scope → product → design → engineering → plan.
Rules
- Language barrier: User is a product person. Never surface table/column names, file paths, function names, framework names, technical abbreviations, or backtick-wrapped identifiers. Read codebase silently; describe findings as if explaining to someone who has never opened a terminal.
| Technical (never say) | Plain language (say this) |
|---|---|
"The candidates table has an optional userId FK" |
"Candidates are already tracked with a link to user accounts" |
| "No search infrastructure — no vector DB, no embeddings" | "There's no search feature today — this would be built from scratch" |
- Scope altitude: Stay at concept/capability level. No functional requirements (behaviors, rules, permissions, workflows, field-level decisions) — those belong in
/product. No implementation details. Redirect: "Good question for requirements — let's stay on shaping the scope."- Scope-level: "Text-only or media?" / "Self-service or admin-managed?"
- Requirements-level (defer): "Should profiles lock during voting?" / "What approval flow?"
- Shape the idea: When framing is vague, don't just challenge it — actively help the user articulate what they mean. Propose concrete framings ("It sounds like you might mean X or Y — which is closer?"). Surface what the codebase already has that relates to their idea. Push on evidence: how many users asked? What do they do today? What would they stop using? When answers are shallow, probe — reframe, ask for evidence, propose a contrary position. Record as assumption only when user genuinely can't resolve.
- Code-first: Explore codebase before asking questions it could answer. State what exists, what's missing, what would change — at capability level. When codebase has competing patterns, surface the conflict. After user answers, verify against codebase.
Interview
Use AskUserQuestion for every question with: bold header (≤12 chars), 2–4 options (one marked "(Recommended)"). After resolving each domain, append <!-- progress: domain-N resolved --> to the target section in scope.md (create file early if needed). On resume, detect markers and skip resolved domains. Remove markers when writing the final brief.
Walk every branch of the decision tree until shared understanding. When an answer opens sub-questions, resolve before moving on. When user's prompt pre-answers a domain, confirm rather than re-interview.
Domains
| # | Domain | Covers | Maps to |
|---|---|---|---|
| 1 | Problem & evidence | What's broken? Evidence? If we don't? What do users do today? | Problem section |
| 2 | Users & stakeholders | Who cares? How painful? What does success look like? | Users table |
| 3 | Appetite & timing | Worth days/weeks/months? Why this size? Why now? | Appetite section |
| 4 | Shaped solution | Rough shape. In/out for v1. Rabbit holes + containment. Alternatives considered. | Shaped Solution section |
| 5 | Feasibility | Current stack support? Gaps? Buy vs build? Constraints? | Feasibility section |
| 6 | Risks & bet | Risks, assumptions, place/pass | Risks + Bet |
Start with problem/evidence — ask multiple questions before moving on. Appetite comes before scope: the investment worth constrains scope, not the other way around. In domain 4, push hard on boundaries: for each "out" item, verify it won't sneak back in; for each rabbit hole, require a containment strategy. Explore risks with user; never fabricate. Even on pass, provide an actionable next step.
Starting
- Check for
./plans/*/pipeline.mdwith## Rollback Notescontent — if content, read notes and resume only affected domains. - Detect existing scope brief (
./plans/*/scope.md): read for context. - Explore codebase — enough to assess feasibility. Note prior work.
- Ground first question in what you found.
Output
Self-review before writing: (1) Problem falsifiable? (2) Evidence enumerated with sources? (3) Appetite justified? (4) Boundaries clear — in/out with rationale? (5) Rabbit holes identified with containment? (6) Bet follows from findings? (7) Every sentence passes language barrier?
Derive feature name as kebab-case. Create ./plans/<feature>/scope.md using template in assets/scope-template.md. Also initialize ./plans/<feature>/pipeline.md using template in assets/pipeline-template.md (scope row in Status, empty Rollback Notes).
Close with: "Review this and tell me what to change. When satisfied, run /product."
Rollback
Receiving: Read ## Rollback Notes in ./plans/<feature>/pipeline.md for trigger + affected domains + decisions to preserve. Resume only affected domains. Update scope.md, clear notes, direct user to triggering skill.
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.
6define
Product requirements → living doc Requirements section + quality gate + domain glossary. Stateful: detects existing sections and resumes where needed. Triggers: 'define this,' 'write a PRD,' 'define requirements,' 'spec this out,' post-explore. Not for: scoping (explore), UX (design), technical design (architect).
5explore
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).
5