sdlc-framework 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +321 -0
- package/bin/install.js +193 -0
- package/package.json +39 -0
- package/src/commands/close.md +200 -0
- package/src/commands/debug.md +124 -0
- package/src/commands/fast.md +149 -0
- package/src/commands/fix.md +104 -0
- package/src/commands/help.md +144 -0
- package/src/commands/hotfix.md +99 -0
- package/src/commands/impl.md +142 -0
- package/src/commands/init.md +93 -0
- package/src/commands/milestone.md +136 -0
- package/src/commands/pause.md +115 -0
- package/src/commands/research.md +136 -0
- package/src/commands/resume.md +103 -0
- package/src/commands/review.md +195 -0
- package/src/commands/spec.md +164 -0
- package/src/commands/status.md +118 -0
- package/src/commands/verify.md +153 -0
- package/src/references/clarification-strategy.md +352 -0
- package/src/references/engineering-laws.md +374 -0
- package/src/references/loop-phases.md +331 -0
- package/src/references/playwright-testing.md +298 -0
- package/src/references/prompt-detection.md +264 -0
- package/src/references/sub-agent-strategy.md +260 -0
- package/src/rules/commands.md +180 -0
- package/src/rules/style.md +354 -0
- package/src/rules/templates.md +238 -0
- package/src/rules/workflows.md +314 -0
- package/src/templates/HANDOFF.md +121 -0
- package/src/templates/LAWS.md +521 -0
- package/src/templates/PROJECT.md +112 -0
- package/src/templates/REVIEW.md +145 -0
- package/src/templates/ROADMAP.md +101 -0
- package/src/templates/SPEC.md +231 -0
- package/src/templates/STATE.md +106 -0
- package/src/templates/SUMMARY.md +126 -0
- package/src/workflows/close-phase.md +189 -0
- package/src/workflows/debug-flow.md +302 -0
- package/src/workflows/fast-forward.md +340 -0
- package/src/workflows/fix-findings.md +235 -0
- package/src/workflows/hotfix-flow.md +190 -0
- package/src/workflows/impl-phase.md +229 -0
- package/src/workflows/init-project.md +249 -0
- package/src/workflows/milestone-management.md +169 -0
- package/src/workflows/pause-work.md +153 -0
- package/src/workflows/research.md +219 -0
- package/src/workflows/resume-project.md +159 -0
- package/src/workflows/review-phase.md +337 -0
- package/src/workflows/spec-phase.md +379 -0
- package/src/workflows/transition-phase.md +203 -0
- package/src/workflows/verify-phase.md +280 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdlc:spec
|
|
3
|
+
description: Define specification with acceptance criteria and task dependencies
|
|
4
|
+
argument-hint: "[phase-plan]"
|
|
5
|
+
allowed-tools: [Read, Write, Glob, Grep, AskUserQuestion]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<objective>
|
|
9
|
+
Define a complete specification for one unit of work (a "plan"). Produce a SPEC.md file containing objective, acceptance criteria, task breakdown, dependency graph, and boundaries.
|
|
10
|
+
|
|
11
|
+
**When to use:** After /sdlc:init or after /sdlc:close completes a previous plan. This is the PLANNING phase of the SDLC loop.
|
|
12
|
+
|
|
13
|
+
**What it does:**
|
|
14
|
+
1. Read current state from .sdlc/STATE.md, PROJECT.md, and ROADMAP.md.
|
|
15
|
+
2. Ask clarification questions about what to build — never guess, never assume.
|
|
16
|
+
3. Present architectural recommendations with concrete trade-offs.
|
|
17
|
+
4. Define acceptance criteria in BDD format (Given/When/Then).
|
|
18
|
+
5. Break work into tasks with dependency analysis for parallel execution.
|
|
19
|
+
6. Write SPEC.md with everything an implementer needs.
|
|
20
|
+
7. Run spec integrity review (completeness, consistency, feasibility checks).
|
|
21
|
+
8. Present spec for user APPROVAL — implementation does not start until approved.
|
|
22
|
+
|
|
23
|
+
**What happens next:** After user approves the spec, framework directs you to /sdlc:impl.
|
|
24
|
+
|
|
25
|
+
**Critical rule:** This command asks questions. It does NOT write code. It does NOT make assumptions. Every ambiguity triggers a clarification question.
|
|
26
|
+
</objective>
|
|
27
|
+
|
|
28
|
+
<execution_context>
|
|
29
|
+
@~/.claude/sdlc-framework/workflows/create-spec.md
|
|
30
|
+
@.sdlc/STATE.md
|
|
31
|
+
@.sdlc/PROJECT.md
|
|
32
|
+
@.sdlc/ROADMAP.md
|
|
33
|
+
@.sdlc/LAWS.md
|
|
34
|
+
</execution_context>
|
|
35
|
+
|
|
36
|
+
<context>
|
|
37
|
+
$ARGUMENTS — optional phase-plan identifier (e.g., "phase-1/plan-2" or a description of work).
|
|
38
|
+
|
|
39
|
+
Read these files to understand current state:
|
|
40
|
+
- .sdlc/STATE.md — current loop position, active phase, previous plans.
|
|
41
|
+
- .sdlc/PROJECT.md — project context, tech stack, quality priorities.
|
|
42
|
+
- .sdlc/ROADMAP.md — milestones, phases, and planned work.
|
|
43
|
+
- .sdlc/LAWS.md — engineering laws that constrain implementation.
|
|
44
|
+
|
|
45
|
+
Scan the codebase to understand existing structure, patterns, and conventions.
|
|
46
|
+
</context>
|
|
47
|
+
|
|
48
|
+
<process>
|
|
49
|
+
Follow workflow: @~/.claude/sdlc-framework/workflows/create-spec.md
|
|
50
|
+
|
|
51
|
+
Step-by-step:
|
|
52
|
+
|
|
53
|
+
1. **Load state**
|
|
54
|
+
- Read .sdlc/STATE.md. Confirm loop_position is SPEC. If not, warn the user: "Loop position is <position>, not SPEC. Run /sdlc:close first or confirm you want to override."
|
|
55
|
+
- Read .sdlc/PROJECT.md for project context.
|
|
56
|
+
- Read .sdlc/ROADMAP.md to identify the current phase and next planned work.
|
|
57
|
+
|
|
58
|
+
2. **Understand the request**
|
|
59
|
+
- If $ARGUMENTS provided, use it as the starting point.
|
|
60
|
+
- If no arguments, ask: "What do you want to build or change? Describe the feature, fix, or refactor."
|
|
61
|
+
|
|
62
|
+
3. **Ask clarification questions** (use AskUserQuestion for each)
|
|
63
|
+
Do NOT proceed until ambiguities are resolved. Common questions:
|
|
64
|
+
- "Who is the user/actor for this feature?"
|
|
65
|
+
- "What is the expected input and output?"
|
|
66
|
+
- "Are there edge cases you already know about?"
|
|
67
|
+
- "Does this interact with existing features? Which ones?"
|
|
68
|
+
- "What should happen when <error condition>?"
|
|
69
|
+
- "Is there a performance requirement?"
|
|
70
|
+
- "Is there a UI/UX design, or should I propose one?"
|
|
71
|
+
|
|
72
|
+
Ask at minimum 2 clarification questions. Ask more if the scope is ambiguous.
|
|
73
|
+
|
|
74
|
+
4. **Present recommendations with trade-offs**
|
|
75
|
+
For each significant design decision, present 2-3 options:
|
|
76
|
+
- Option A (recommended): description, effort, risk, maintenance burden.
|
|
77
|
+
- Option B: description, effort, risk, maintenance burden.
|
|
78
|
+
- Option C (do nothing / defer): description, risk of deferring.
|
|
79
|
+
Ask the user to choose before proceeding.
|
|
80
|
+
|
|
81
|
+
5. **Define acceptance criteria in BDD format**
|
|
82
|
+
Write Given/When/Then scenarios for each user-facing behavior:
|
|
83
|
+
```
|
|
84
|
+
AC-1: [Short title]
|
|
85
|
+
Given [precondition]
|
|
86
|
+
When [action]
|
|
87
|
+
Then [expected outcome]
|
|
88
|
+
```
|
|
89
|
+
Include happy path, error cases, and edge cases.
|
|
90
|
+
Present acceptance criteria to the user and ask: "Do these cover all cases? Anything to add or change?"
|
|
91
|
+
|
|
92
|
+
6. **Break into tasks with dependency analysis**
|
|
93
|
+
- List every discrete task needed to implement the spec.
|
|
94
|
+
- For each task, identify:
|
|
95
|
+
- Files to create or modify.
|
|
96
|
+
- Dependencies on other tasks (which tasks must complete first).
|
|
97
|
+
- Estimated complexity (low/medium/high).
|
|
98
|
+
- Build a dependency graph:
|
|
99
|
+
- Independent tasks (no dependencies) can run in parallel.
|
|
100
|
+
- Dependent tasks are ordered sequentially.
|
|
101
|
+
- Group tasks into execution waves (wave 1 = all independent, wave 2 = depends on wave 1, etc.).
|
|
102
|
+
|
|
103
|
+
7. **Define boundaries**
|
|
104
|
+
Explicitly state:
|
|
105
|
+
- What is IN scope.
|
|
106
|
+
- What is OUT of scope.
|
|
107
|
+
- What is DEFERRED to a future plan.
|
|
108
|
+
|
|
109
|
+
8. **Write SPEC.md**
|
|
110
|
+
Create .sdlc/specs/SPEC-<plan-id>.md with:
|
|
111
|
+
```
|
|
112
|
+
# Spec: <title>
|
|
113
|
+
## Objective
|
|
114
|
+
## Acceptance Criteria
|
|
115
|
+
## Tasks
|
|
116
|
+
### Task Dependency Graph
|
|
117
|
+
### Execution Waves
|
|
118
|
+
## Boundaries
|
|
119
|
+
### In Scope
|
|
120
|
+
### Out of Scope
|
|
121
|
+
### Deferred
|
|
122
|
+
## Files to Modify
|
|
123
|
+
## Engineering Constraints (from LAWS.md)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
9. **Spec integrity review**
|
|
127
|
+
- CHECK completeness: all tasks have required fields, all ACs have Given/When/Then
|
|
128
|
+
- CHECK consistency: every task links to an AC, no boundary violations, no cycles in DAG
|
|
129
|
+
- CHECK feasibility: task count 2-5, estimated change under ~300 lines
|
|
130
|
+
- Fix any issues found before presenting for approval
|
|
131
|
+
|
|
132
|
+
10. **User approval gate** (BLOCKING — cannot proceed without approval)
|
|
133
|
+
- Present full spec summary to user
|
|
134
|
+
- User options: APPROVE (proceed), REVISE (change and re-review), REJECT (discard)
|
|
135
|
+
- If REVISE: apply changes, re-run integrity review, re-present
|
|
136
|
+
- If REJECT: delete spec, stop
|
|
137
|
+
- If APPROVE: proceed to update state
|
|
138
|
+
|
|
139
|
+
11. **Update STATE.md**
|
|
140
|
+
- Set `current_plan: <plan-id>`
|
|
141
|
+
- Set `spec_path: .sdlc/phases/{phase}/{plan}-SPEC.md`
|
|
142
|
+
- Set `loop_position: SPEC ✓`
|
|
143
|
+
- Set `next_required_action: /sdlc:impl`
|
|
144
|
+
|
|
145
|
+
12. **Output confirmation**
|
|
146
|
+
- Print spec summary: objective, number of ACs, number of tasks, execution waves.
|
|
147
|
+
- End with NEXT ACTION REQUIRED: /sdlc:impl
|
|
148
|
+
</process>
|
|
149
|
+
|
|
150
|
+
<success_criteria>
|
|
151
|
+
- [ ] At least 2 clarification questions asked before writing the spec
|
|
152
|
+
- [ ] Every design decision presented with trade-offs and user confirmation
|
|
153
|
+
- [ ] Acceptance criteria written in BDD format (Given/When/Then)
|
|
154
|
+
- [ ] Acceptance criteria cover happy path, error cases, and edge cases
|
|
155
|
+
- [ ] Tasks broken into dependency graph with execution waves
|
|
156
|
+
- [ ] Each task identifies files to create/modify and complexity
|
|
157
|
+
- [ ] Boundaries section explicitly states in-scope, out-of-scope, and deferred items
|
|
158
|
+
- [ ] Spec integrity review passed (completeness, consistency, feasibility)
|
|
159
|
+
- [ ] User explicitly approved the spec (APPROVE response received)
|
|
160
|
+
- [ ] SPEC.md created at .sdlc/phases/{phase}/{plan}-SPEC.md
|
|
161
|
+
- [ ] STATE.md updated with current_plan, spec_path, loop_position: SPEC ✓
|
|
162
|
+
- [ ] No assumptions made — every ambiguity resolved via clarification
|
|
163
|
+
- [ ] Output ends with NEXT ACTION REQUIRED: /sdlc:impl
|
|
164
|
+
</success_criteria>
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdlc:status
|
|
3
|
+
description: "Show loop position and forced next action"
|
|
4
|
+
allowed-tools: [Read, Glob, Grep]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<objective>
|
|
8
|
+
Show exactly where you are in the SDLC loop and what you must do next. Visual progress, current state, and forced next action. Designed for junior developers who need clear guidance.
|
|
9
|
+
|
|
10
|
+
**When to use:** You are lost. You do not know what to do next. You want to see progress. Run this anytime.
|
|
11
|
+
|
|
12
|
+
**What it does:**
|
|
13
|
+
1. Read STATE.md for current position.
|
|
14
|
+
2. Display milestone, phase, plan, and loop position with a visual diagram.
|
|
15
|
+
3. Show progress bar and any blockers.
|
|
16
|
+
4. Force exactly ONE next action with an explanation of what it does and why.
|
|
17
|
+
|
|
18
|
+
**What happens next:** The forced next action. No choices.
|
|
19
|
+
</objective>
|
|
20
|
+
|
|
21
|
+
<execution_context>
|
|
22
|
+
@.sdlc/STATE.md
|
|
23
|
+
@.sdlc/ROADMAP.md
|
|
24
|
+
</execution_context>
|
|
25
|
+
|
|
26
|
+
<context>
|
|
27
|
+
No arguments required.
|
|
28
|
+
|
|
29
|
+
Read .sdlc/STATE.md for current loop position, milestone, phase, plan.
|
|
30
|
+
Read .sdlc/ROADMAP.md for milestone completion data.
|
|
31
|
+
</context>
|
|
32
|
+
|
|
33
|
+
<process>
|
|
34
|
+
Step-by-step:
|
|
35
|
+
|
|
36
|
+
1. **Read state**
|
|
37
|
+
- Read .sdlc/STATE.md. If it does not exist, output: "Framework not initialized. Run /sdlc:init first." Then stop.
|
|
38
|
+
- Extract: loop_position, current_milestone, current_phase, current_plan, blockers, deferred_issues.
|
|
39
|
+
- Read .sdlc/ROADMAP.md for milestone progress data.
|
|
40
|
+
|
|
41
|
+
2. **Display loop position (visual)**
|
|
42
|
+
- Show the core loop with the current position highlighted:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
SDLC Loop Position:
|
|
46
|
+
|
|
47
|
+
SPEC ──→ IMPLEMENT ──→ VERIFY ──→ REVIEW ──→ CLOSE
|
|
48
|
+
│ │
|
|
49
|
+
└──────────────── next cycle ←─────────────────┘
|
|
50
|
+
|
|
51
|
+
Current: [IMPLEMENT] ◄── YOU ARE HERE
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
- Use `[PHASE]` brackets around the current position.
|
|
55
|
+
- If in DEBUG or HOTFIX, show those as side branches:
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
SPEC ──→ IMPLEMENT ──→ VERIFY ──→ REVIEW ──→ CLOSE
|
|
59
|
+
│
|
|
60
|
+
├──→ [DEBUG] ◄── YOU ARE HERE
|
|
61
|
+
└──→ HOTFIX
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
3. **Display project context**
|
|
65
|
+
- Show:
|
|
66
|
+
```
|
|
67
|
+
Milestone: {name} ({completed_phases}/{total_phases} phases)
|
|
68
|
+
Phase: {name}
|
|
69
|
+
Plan: {name or "none — run /sdlc:spec"}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
4. **Show progress bar**
|
|
73
|
+
- Calculate completion percentage from ROADMAP.md.
|
|
74
|
+
- Display:
|
|
75
|
+
```
|
|
76
|
+
Progress: [████████░░░░░░░░░░░░] 40% (4/10 plans completed)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
5. **Show blockers and deferred issues**
|
|
80
|
+
- If blockers exist in STATE.md:
|
|
81
|
+
```
|
|
82
|
+
BLOCKERS:
|
|
83
|
+
- {blocker 1}
|
|
84
|
+
- {blocker 2}
|
|
85
|
+
```
|
|
86
|
+
- If deferred issues exist:
|
|
87
|
+
```
|
|
88
|
+
DEFERRED:
|
|
89
|
+
- {issue 1}
|
|
90
|
+
- {issue 2}
|
|
91
|
+
```
|
|
92
|
+
- If none: "No blockers. No deferred issues."
|
|
93
|
+
|
|
94
|
+
6. **Force ONE next action with explanation**
|
|
95
|
+
- Determine the next action from loop_position (same logic as /sdlc:resume).
|
|
96
|
+
- Explain what that action DOES and WHY it is next:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
NEXT ACTION REQUIRED: /sdlc:impl
|
|
100
|
+
|
|
101
|
+
What it does: Implements the current plan by writing code with subagent workers.
|
|
102
|
+
Why it is next: The spec phase is complete. The plan has been approved.
|
|
103
|
+
Your implementation will be verified in the next step.
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
- Junior-friendly: use plain language. Assume the reader has never used the framework.
|
|
107
|
+
</process>
|
|
108
|
+
|
|
109
|
+
<success_criteria>
|
|
110
|
+
- [ ] STATE.md read successfully
|
|
111
|
+
- [ ] Visual loop diagram displayed with current position highlighted
|
|
112
|
+
- [ ] Milestone, phase, and plan shown
|
|
113
|
+
- [ ] Progress bar calculated and displayed
|
|
114
|
+
- [ ] Blockers and deferred issues shown (or "none")
|
|
115
|
+
- [ ] Exactly ONE next action forced
|
|
116
|
+
- [ ] Next action includes plain-language explanation of what it does and why
|
|
117
|
+
- [ ] No choices, no menus — one clear path forward
|
|
118
|
+
</success_criteria>
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sdlc:verify
|
|
3
|
+
description: Automated verification via Playwright MCP and test runners
|
|
4
|
+
argument-hint: "[spec-path]"
|
|
5
|
+
allowed-tools: [Read, Write, Bash, Glob, Grep, Edit, mcp__plugin_playwright_playwright__browser_navigate, mcp__plugin_playwright_playwright__browser_snapshot, mcp__plugin_playwright_playwright__browser_click, mcp__plugin_playwright_playwright__browser_fill_form, mcp__plugin_playwright_playwright__browser_select_option, mcp__plugin_playwright_playwright__browser_hover, mcp__plugin_playwright_playwright__browser_press_key, mcp__plugin_playwright_playwright__browser_type, mcp__plugin_playwright_playwright__browser_navigate_back, mcp__plugin_playwright_playwright__browser_take_screenshot, mcp__plugin_playwright_playwright__browser_console_messages, mcp__plugin_playwright_playwright__browser_network_requests, mcp__plugin_playwright_playwright__browser_tabs, mcp__plugin_playwright_playwright__browser_wait_for, mcp__plugin_playwright_playwright__browser_evaluate, mcp__plugin_playwright_playwright__browser_handle_dialog, mcp__plugin_playwright_playwright__browser_file_upload, mcp__plugin_playwright_playwright__browser_close, mcp__plugin_playwright_playwright__browser_install, mcp__plugin_playwright_playwright__browser_resize, mcp__plugin_playwright_playwright__browser_drag, mcp__plugin_playwright_playwright__browser_run_code]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<objective>
|
|
9
|
+
Verify the implementation against every acceptance criterion in the SPEC.md. Use automated testing appropriate to the work type: Playwright MCP for UI, HTTP requests for APIs, shell commands for CLIs, and test runners for logic.
|
|
10
|
+
|
|
11
|
+
**When to use:** After /sdlc:impl completes all tasks. This is the VERIFY phase of the SDLC loop.
|
|
12
|
+
|
|
13
|
+
**What it does:**
|
|
14
|
+
1. Read acceptance criteria from SPEC.md.
|
|
15
|
+
2. Determine the verification strategy per criterion (UI test, API test, CLI test, unit test).
|
|
16
|
+
3. Execute each verification automatically.
|
|
17
|
+
4. Report pass/fail per acceptance criterion with evidence.
|
|
18
|
+
5. On failure: provide specific diagnosis and suggest fixes.
|
|
19
|
+
|
|
20
|
+
**What happens next:**
|
|
21
|
+
- All criteria pass: Framework directs you to /sdlc:review.
|
|
22
|
+
- Any criteria fail: Fix the failures, then re-run /sdlc:verify.
|
|
23
|
+
|
|
24
|
+
**Critical rule:** Every acceptance criterion gets tested. No criterion is skipped. No manual "it looks right" — automated verification only.
|
|
25
|
+
</objective>
|
|
26
|
+
|
|
27
|
+
<execution_context>
|
|
28
|
+
@~/.claude/sdlc-framework/workflows/run-verify.md
|
|
29
|
+
@.sdlc/STATE.md
|
|
30
|
+
The SPEC.md path is read from STATE.md or provided via $ARGUMENTS.
|
|
31
|
+
</execution_context>
|
|
32
|
+
|
|
33
|
+
<context>
|
|
34
|
+
$ARGUMENTS — optional path to SPEC.md. If not provided, read from .sdlc/STATE.md spec_path field.
|
|
35
|
+
|
|
36
|
+
Read these files:
|
|
37
|
+
- .sdlc/STATE.md — current plan, spec path, impl path.
|
|
38
|
+
- The SPEC.md file — acceptance criteria to verify.
|
|
39
|
+
- .sdlc/impl/IMPL-<plan-id>.md — files modified, build status.
|
|
40
|
+
</context>
|
|
41
|
+
|
|
42
|
+
<process>
|
|
43
|
+
Follow workflow: @~/.claude/sdlc-framework/workflows/run-verify.md
|
|
44
|
+
|
|
45
|
+
Step-by-step:
|
|
46
|
+
|
|
47
|
+
1. **Load state and acceptance criteria**
|
|
48
|
+
- Read .sdlc/STATE.md. Confirm loop_position is IMPL_COMPLETE. If not, warn: "Implementation not complete. Run /sdlc:impl first."
|
|
49
|
+
- Read SPEC.md. Extract all acceptance criteria (AC-1, AC-2, ...).
|
|
50
|
+
- Read IMPL.md for the list of modified files and build status.
|
|
51
|
+
|
|
52
|
+
2. **Classify each acceptance criterion by verification type**
|
|
53
|
+
For each AC, determine the appropriate test strategy:
|
|
54
|
+
|
|
55
|
+
| Work Type | Verification Method | Tools Used |
|
|
56
|
+
|-----------|-------------------|------------|
|
|
57
|
+
| UI/Frontend | Playwright MCP browser automation | browser_navigate, browser_click, browser_snapshot, browser_fill_form |
|
|
58
|
+
| REST API | HTTP requests via curl or fetch | Bash (curl commands) |
|
|
59
|
+
| GraphQL API | GraphQL queries via HTTP | Bash (curl commands) |
|
|
60
|
+
| CLI tool | Shell command execution | Bash |
|
|
61
|
+
| Business logic | Test runner (jest, vitest, pytest, etc.) | Bash (npm test, etc.) |
|
|
62
|
+
| Database | Query verification | Bash (database CLI tools) |
|
|
63
|
+
| File output | File content inspection | Read, Grep |
|
|
64
|
+
|
|
65
|
+
3. **Execute UI verifications (Playwright MCP)**
|
|
66
|
+
For each UI acceptance criterion:
|
|
67
|
+
- Install browser if needed: call browser_install.
|
|
68
|
+
- Navigate to the target URL: call browser_navigate.
|
|
69
|
+
- Take a snapshot to understand the page state: call browser_snapshot.
|
|
70
|
+
- Execute the Given/When/Then steps:
|
|
71
|
+
- **Given** (precondition): Navigate to the correct page, fill forms, click setup elements.
|
|
72
|
+
- **When** (action): Click buttons, submit forms, type input, select options.
|
|
73
|
+
- **Then** (assertion): Take a snapshot, inspect the DOM for expected elements, check console for errors, verify network requests.
|
|
74
|
+
- Take a screenshot as evidence: call browser_take_screenshot.
|
|
75
|
+
- Record pass/fail with evidence (screenshot path, DOM state, console output).
|
|
76
|
+
|
|
77
|
+
4. **Execute API verifications**
|
|
78
|
+
For each API acceptance criterion:
|
|
79
|
+
- Construct the HTTP request (method, URL, headers, body) from the AC.
|
|
80
|
+
- Execute via curl in Bash.
|
|
81
|
+
- Parse the response (status code, body, headers).
|
|
82
|
+
- Compare against expected values from the AC.
|
|
83
|
+
- Record pass/fail with evidence (request/response pairs).
|
|
84
|
+
|
|
85
|
+
5. **Execute CLI verifications**
|
|
86
|
+
For each CLI acceptance criterion:
|
|
87
|
+
- Construct the shell command from the AC.
|
|
88
|
+
- Execute via Bash.
|
|
89
|
+
- Capture stdout, stderr, and exit code.
|
|
90
|
+
- Compare against expected values from the AC.
|
|
91
|
+
- Record pass/fail with evidence (command, output, exit code).
|
|
92
|
+
|
|
93
|
+
6. **Execute logic verifications**
|
|
94
|
+
For each logic acceptance criterion:
|
|
95
|
+
- Identify the relevant test files.
|
|
96
|
+
- Run the test suite (or specific test files) via Bash.
|
|
97
|
+
- Parse test output for pass/fail counts.
|
|
98
|
+
- Record pass/fail with evidence (test runner output).
|
|
99
|
+
|
|
100
|
+
7. **Compile verification report**
|
|
101
|
+
Create .sdlc/verify/VERIFY-<plan-id>.md with:
|
|
102
|
+
```
|
|
103
|
+
# Verification Report: <plan title>
|
|
104
|
+
|
|
105
|
+
## Summary
|
|
106
|
+
- Total ACs: <count>
|
|
107
|
+
- Passed: <count>
|
|
108
|
+
- Failed: <count>
|
|
109
|
+
- Skipped: <count> (with reasons)
|
|
110
|
+
|
|
111
|
+
## Results
|
|
112
|
+
|
|
113
|
+
### AC-1: <title>
|
|
114
|
+
- Status: PASS / FAIL
|
|
115
|
+
- Verification type: UI / API / CLI / Logic
|
|
116
|
+
- Evidence: <screenshot path / response body / test output>
|
|
117
|
+
- Details: <what was checked and what was found>
|
|
118
|
+
|
|
119
|
+
### AC-2: <title>
|
|
120
|
+
...
|
|
121
|
+
|
|
122
|
+
## Failures (if any)
|
|
123
|
+
### AC-X: <title>
|
|
124
|
+
- Expected: <what should have happened>
|
|
125
|
+
- Actual: <what actually happened>
|
|
126
|
+
- Root cause: <analysis of why it failed>
|
|
127
|
+
- Suggested fix: <specific code change to fix it>
|
|
128
|
+
- Files to modify: <file paths>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
8. **Determine next action**
|
|
132
|
+
- If ALL acceptance criteria pass:
|
|
133
|
+
- Update STATE.md: set `loop_position: VERIFY_COMPLETE`
|
|
134
|
+
- Set `verify_path: .sdlc/verify/VERIFY-<plan-id>.md`
|
|
135
|
+
- Output ends with: NEXT ACTION REQUIRED: /sdlc:review
|
|
136
|
+
- If ANY acceptance criteria fail:
|
|
137
|
+
- Update STATE.md: set `loop_position: VERIFY_FAILED`
|
|
138
|
+
- Output the failure details with suggested fixes.
|
|
139
|
+
- Output ends with: "Fix the failures above, then re-run /sdlc:verify"
|
|
140
|
+
</process>
|
|
141
|
+
|
|
142
|
+
<success_criteria>
|
|
143
|
+
- [ ] Every acceptance criterion from SPEC.md has a corresponding verification
|
|
144
|
+
- [ ] Correct verification type selected per AC (UI uses Playwright, API uses curl, etc.)
|
|
145
|
+
- [ ] UI tests use Playwright MCP tools (navigate, snapshot, click, fill_form, screenshot)
|
|
146
|
+
- [ ] Each verification produces concrete evidence (screenshots, response bodies, test output)
|
|
147
|
+
- [ ] VERIFY-<plan-id>.md created with per-AC pass/fail results
|
|
148
|
+
- [ ] Failed ACs include: expected vs actual, root cause analysis, suggested fix, files to modify
|
|
149
|
+
- [ ] STATE.md updated with loop_position (VERIFY_COMPLETE or VERIFY_FAILED)
|
|
150
|
+
- [ ] If all pass: output ends with NEXT ACTION REQUIRED: /sdlc:review
|
|
151
|
+
- [ ] If any fail: output ends with "Fix the failures above, then re-run /sdlc:verify"
|
|
152
|
+
- [ ] No criteria skipped without documented reason
|
|
153
|
+
</success_criteria>
|