Analyze (Phase 2)
Turn a task into structured, testable requirements.
Prerequisite
The plan gate must exist: .claude/sdlc/gates/plan-<task-slug>.md. If it does not, tell the human to run /plan first.
Step 1 — Detect frontend involvement
Before writing requirements, determine whether the task touches a user interface. Check:
- The plan's in-scope files for UI frameworks (React, Vue, Angular, HTML templates, mobile views)
- Keywords in the plan: "screen", "page", "form", "button", "UI", "UX", "design"
If yes, and no UX artifact exists under .claude/sdlc/architecture/ux/:
- Halt. Ask the human for UX designs (Figma link, wireframes, mockups) and brand guidelines (colors, typography, spacing tokens, component library).
- Do not proceed to write requirements until a UX artifact is linked or written at
.claude/sdlc/architecture/ux/<task-slug>.md.
This is a hard rule. Frontend without UX specs produces UI debt.
Step 2 — Write requirements
Write to .claude/sdlc/requirements/<task-slug>.md using templates/requirements.md. Each requirement has:
- Stable ID:
REQ-<n>— never renumbered once published - Title: short imperative
- Description: what the system must do
- Acceptance criteria: testable, unambiguous (Given/When/Then works)
- Priority: must / should / could
- Source: ticket, CR, stakeholder, or project scope section
- Dependencies: other REQ IDs or external systems
Stable IDs matter: Design references them, Build validates against them, Test maps cases to them, Deploy records them, Docs traces them.
Step 3 — Contract / scope coverage check
For each requirement, confirm it maps to a section of .claude/sdlc/scope.md (or the relevant contract/SOW artifact). Any unmapped requirement is a scope question — surface it, don't hide it. The human decides whether to expand scope or drop the requirement.
Produce a coverage table in the requirements file:
| REQ ID | Scope section | Status |
|---|---|---|
| REQ-001 | 2.1 Checkout | ✓ mapped |
| REQ-002 | — | ? unmapped |
Step 4 — Human gate
Summarize: total REQs, mapped vs. unmapped, frontend yes/no, UX artifact status. Ask the human to confirm. Write the sign-off to .claude/sdlc/gates/analyze-<task-slug>.md.
What this skill must NOT do
- Do not design architecture here (that's Phase 3).
- Do not skip the UX ask for frontend work — "we'll figure it out in build" is how UX debt accrues.
- Do not renumber REQ IDs on edits — add new ones and deprecate old ones in place.
References
templates/requirements.mdtemplates/gate.mddocs/SDLC.mdAnalyze
Next step hint
After writing the gate file, pipe the next_suggestions conditions to skills/_shared/next-hint.sh and print any output:
printf '%s\n' \
'analyze_gate_signed|run /design to produce the architecture bundle and test cases' \
'pending_signoff_for_current_user|write your sign-off at sign-offs/<REQ-ID>-<role>.md, then /design when all roles are covered' \
| bash skills/_shared/next-hint.sh
Print any output verbatim. If the script outputs nothing, add nothing.