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.
Files changed (53) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +321 -0
  3. package/bin/install.js +193 -0
  4. package/package.json +39 -0
  5. package/src/commands/close.md +200 -0
  6. package/src/commands/debug.md +124 -0
  7. package/src/commands/fast.md +149 -0
  8. package/src/commands/fix.md +104 -0
  9. package/src/commands/help.md +144 -0
  10. package/src/commands/hotfix.md +99 -0
  11. package/src/commands/impl.md +142 -0
  12. package/src/commands/init.md +93 -0
  13. package/src/commands/milestone.md +136 -0
  14. package/src/commands/pause.md +115 -0
  15. package/src/commands/research.md +136 -0
  16. package/src/commands/resume.md +103 -0
  17. package/src/commands/review.md +195 -0
  18. package/src/commands/spec.md +164 -0
  19. package/src/commands/status.md +118 -0
  20. package/src/commands/verify.md +153 -0
  21. package/src/references/clarification-strategy.md +352 -0
  22. package/src/references/engineering-laws.md +374 -0
  23. package/src/references/loop-phases.md +331 -0
  24. package/src/references/playwright-testing.md +298 -0
  25. package/src/references/prompt-detection.md +264 -0
  26. package/src/references/sub-agent-strategy.md +260 -0
  27. package/src/rules/commands.md +180 -0
  28. package/src/rules/style.md +354 -0
  29. package/src/rules/templates.md +238 -0
  30. package/src/rules/workflows.md +314 -0
  31. package/src/templates/HANDOFF.md +121 -0
  32. package/src/templates/LAWS.md +521 -0
  33. package/src/templates/PROJECT.md +112 -0
  34. package/src/templates/REVIEW.md +145 -0
  35. package/src/templates/ROADMAP.md +101 -0
  36. package/src/templates/SPEC.md +231 -0
  37. package/src/templates/STATE.md +106 -0
  38. package/src/templates/SUMMARY.md +126 -0
  39. package/src/workflows/close-phase.md +189 -0
  40. package/src/workflows/debug-flow.md +302 -0
  41. package/src/workflows/fast-forward.md +340 -0
  42. package/src/workflows/fix-findings.md +235 -0
  43. package/src/workflows/hotfix-flow.md +190 -0
  44. package/src/workflows/impl-phase.md +229 -0
  45. package/src/workflows/init-project.md +249 -0
  46. package/src/workflows/milestone-management.md +169 -0
  47. package/src/workflows/pause-work.md +153 -0
  48. package/src/workflows/research.md +219 -0
  49. package/src/workflows/resume-project.md +159 -0
  50. package/src/workflows/review-phase.md +337 -0
  51. package/src/workflows/spec-phase.md +379 -0
  52. package/src/workflows/transition-phase.md +203 -0
  53. 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>