원클릭으로
new-use-case
// Define a new use case by interviewing the user, then write a filled-in `spec/use-cases/use-case-NNN-short-name.md`. Use when the user wants to add, draft, or specify a new feature/use case.
// Define a new use case by interviewing the user, then write a filled-in `spec/use-cases/use-case-NNN-short-name.md`. Use when the user wants to add, draft, or specify a new feature/use case.
Implement a use case from the spec/ folder. Use when asked to implement, build, or work on a use case.
Write and run tests for a use case. Use when writing tests for an implemented use case.
Visually verify an implemented use case using Playwright MCP. Use after implementing UI changes.
| name | new-use-case |
| description | Define a new use case by interviewing the user, then write a filled-in `spec/use-cases/use-case-NNN-short-name.md`. Use when the user wants to add, draft, or specify a new feature/use case. |
Interview the user to capture a new use case, then write it to spec/use-cases/use-case-NNN-short-name.md using spec/use-cases/use-case-template.md as the structure.
The goal is a complete, implementation-ready spec. A use case that lacks actors, preconditions, a trigger, a main flow, alternative flows, postconditions, business rules, or routes is not done — keep interviewing until every section is filled in.
spec/project-context.md and spec/architecture.md so questions stay consistent with the project's vision, users, and stack.spec/datamodel/datamodel.md if it exists — refer to actual entities when discussing data.spec/use-cases/ to:
NNN number (zero-padded, e.g. 004).spec/use-cases/use-case-template.md — it is the authoritative shape of the output.If any of these files are missing, tell the user and stop; the project isn't ready for a use case yet.
Drive a focused conversation. Ask one topic at a time, in the order below. Keep questions short. When there is a clear small set of choices (primary actor, access level, UI tech, status), present them as a multiple-choice question. Use plain chat for open-ended answers (main flow, alternative flows, business rules). Never ask the user to "fill in the template" themselves — you are doing that for them.
After each answer, restate your understanding in one sentence before moving on, so misunderstandings surface early.
As a … I want to … so that … sentence and confirm it. This becomes the Goal: line in the template.browse-movies, "user buys ticket" → buy-ticket). It will show up in the final summary; the user can correct it there if they care.1. User clicks X. 2. System shows Y. 3. User submits Z. 4. System persists and navigates to W.). Each step is one observable action.BrowseMoviesTest, BuyTickets.test.tsx)./use-case-tests; here we are just declaring intent.Once all sections are gathered:
spec/use-cases/use-case-<NNN>-<short-name>.md, where <NNN> is the next free number from step 3 of "Before You Ask Anything".spec/use-cases/use-case-template.md — keep the same section order, headings, and tables. Remove the leading > Copy this template … instruction block.[bracketed placeholder]. Do not leave any behind. If something is genuinely unknown, ask the user before writing — don't invent.**Status:** Pending and **Date:** <today's date>.- [ ] checkboxes only in the Tests section.<NNN> when ready to build it.