specweave 1.0.261 → 1.0.263

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 (133) hide show
  1. package/.claude-plugin/README.md +0 -2
  2. package/CLAUDE.md +27 -27
  3. package/bin/specweave.js +14 -85
  4. package/dist/dashboard/assets/index-Cv1XUAKk.css +1 -0
  5. package/dist/dashboard/assets/index-DHOztQSu.js +11 -0
  6. package/dist/dashboard/index.html +2 -2
  7. package/dist/src/adapters/README.md +1 -1
  8. package/dist/src/adapters/agents-md-generator.js +1 -1
  9. package/dist/src/adapters/agents-md-generator.js.map +1 -1
  10. package/dist/src/adapters/claude/README.md +8 -8
  11. package/dist/src/adapters/claude/adapter.js +2 -2
  12. package/dist/src/adapters/claude-md-generator.js +2 -2
  13. package/dist/src/adapters/claude-md-generator.js.map +1 -1
  14. package/dist/src/adapters/cursor/README.md +7 -7
  15. package/dist/src/adapters/generic/README.md +2 -2
  16. package/dist/src/cli/commands/create-increment.d.ts +1 -1
  17. package/dist/src/cli/commands/create-increment.js +1 -1
  18. package/dist/src/cli/commands/update.d.ts.map +1 -1
  19. package/dist/src/cli/commands/update.js +64 -1
  20. package/dist/src/cli/commands/update.js.map +1 -1
  21. package/dist/src/cli/helpers/init/api-docs-config.js +7 -7
  22. package/dist/src/cli/helpers/init/api-docs-config.js.map +1 -1
  23. package/dist/src/core/config/types.d.ts +18 -0
  24. package/dist/src/core/config/types.d.ts.map +1 -1
  25. package/dist/src/core/config/types.js +4 -0
  26. package/dist/src/core/config/types.js.map +1 -1
  27. package/dist/src/core/external-tools/external-items-display.d.ts.map +1 -1
  28. package/dist/src/core/external-tools/external-items-display.js +1 -11
  29. package/dist/src/core/external-tools/external-items-display.js.map +1 -1
  30. package/dist/src/core/increment/increment-archiver.js +1 -1
  31. package/dist/src/core/increment/increment-archiver.js.map +1 -1
  32. package/dist/src/core/increment/metadata-manager.js +2 -2
  33. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  34. package/dist/src/core/increment/template-creator.d.ts +1 -1
  35. package/dist/src/core/increment/template-creator.js +4 -4
  36. package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts +2 -2
  37. package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts.map +1 -1
  38. package/dist/src/core/lazy-loading/llm-plugin-detector.js +15 -5
  39. package/dist/src/core/lazy-loading/llm-plugin-detector.js.map +1 -1
  40. package/dist/src/core/living-docs/feature-consistency-validator.js +1 -1
  41. package/dist/src/core/living-docs/feature-consistency-validator.js.map +1 -1
  42. package/dist/src/core/living-docs/scaffolding/scaffold.js +3 -3
  43. package/dist/src/core/notifications/command-integration.d.ts.map +1 -1
  44. package/dist/src/core/notifications/command-integration.js +0 -1
  45. package/dist/src/core/notifications/command-integration.js.map +1 -1
  46. package/dist/src/core/reflection/reflect-handler.js +2 -2
  47. package/dist/src/core/reflection/reflect-handler.js.map +1 -1
  48. package/dist/src/core/validators/ac-presence-validator.d.ts +1 -1
  49. package/dist/src/core/validators/ac-presence-validator.js +3 -3
  50. package/dist/src/core/validators/ac-presence-validator.js.map +1 -1
  51. package/dist/src/dashboard/server/command-runner.d.ts.map +1 -1
  52. package/dist/src/dashboard/server/command-runner.js +2 -2
  53. package/dist/src/dashboard/server/command-runner.js.map +1 -1
  54. package/dist/src/dashboard/server/dashboard-server.d.ts.map +1 -1
  55. package/dist/src/dashboard/server/dashboard-server.js +22 -10
  56. package/dist/src/dashboard/server/dashboard-server.js.map +1 -1
  57. package/dist/src/dashboard/server/data/dashboard-data-aggregator.d.ts +9 -1
  58. package/dist/src/dashboard/server/data/dashboard-data-aggregator.d.ts.map +1 -1
  59. package/dist/src/dashboard/server/data/dashboard-data-aggregator.js +140 -13
  60. package/dist/src/dashboard/server/data/dashboard-data-aggregator.js.map +1 -1
  61. package/dist/src/dashboard/server/data/plugin-scanner.d.ts +1 -1
  62. package/dist/src/dashboard/server/data/plugin-scanner.d.ts.map +1 -1
  63. package/dist/src/dashboard/server/data/plugin-scanner.js +2 -2
  64. package/dist/src/dashboard/server/data/plugin-scanner.js.map +1 -1
  65. package/dist/src/utils/agents-md-compiler.js +1 -1
  66. package/dist/src/utils/agents-md-compiler.js.map +1 -1
  67. package/dist/src/utils/find-project-root.d.ts +5 -4
  68. package/dist/src/utils/find-project-root.d.ts.map +1 -1
  69. package/dist/src/utils/find-project-root.js +8 -10
  70. package/dist/src/utils/find-project-root.js.map +1 -1
  71. package/dist/src/utils/generate-skills-index.js +3 -3
  72. package/dist/src/utils/notification-constants.js +1 -1
  73. package/dist/src/utils/notification-constants.js.map +1 -1
  74. package/package.json +1 -1
  75. package/plugins/FINAL-AUDIT-RECOMMENDATIONS.md +3 -3
  76. package/plugins/specweave/PLUGIN.md +0 -22
  77. package/plugins/specweave/commands/analytics.md +1 -1
  78. package/plugins/specweave/commands/discrepancies.md +0 -1
  79. package/plugins/specweave/commands/living-docs.md +0 -1
  80. package/plugins/specweave/commands/reconcile.md +1 -1
  81. package/plugins/specweave/hooks/hooks.json +19 -0
  82. package/plugins/specweave/hooks/pre-compact.sh +39 -0
  83. package/plugins/specweave/hooks/stop-sync.sh +23 -1
  84. package/plugins/specweave/hooks/universal/fail-fast-wrapper.sh +4 -0
  85. package/plugins/specweave/hooks/user-prompt-submit.sh +193 -59
  86. package/plugins/specweave/hooks/v2/dispatchers/post-tool-use-analytics.sh +83 -0
  87. package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +7 -0
  88. package/plugins/specweave/hooks/v2/guards/spec-template-enforcement-guard.sh +1 -1
  89. package/plugins/specweave/hooks/v2/handlers/ac-sync-dispatcher.sh +25 -6
  90. package/plugins/specweave/hooks/v2/handlers/universal-auto-create-dispatcher.sh +21 -3
  91. package/plugins/specweave/hooks/v2/lib/check-provider-enabled.sh +52 -0
  92. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +2 -2
  93. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
  94. package/plugins/specweave/scripts/track-analytics.sh +4 -0
  95. package/plugins/specweave/skills/do/SKILL.md +1 -1
  96. package/plugins/specweave/skills/done/SKILL.md +1 -1
  97. package/plugins/specweave/skills/framework/SKILL.md +4 -4
  98. package/plugins/specweave/skills/increment/SKILL.md +192 -25
  99. package/plugins/specweave/skills/next/SKILL.md +36 -630
  100. package/plugins/specweave/skills/pm/phases/00-deep-interview.md +2 -2
  101. package/plugins/specweave/skills/progress-sync/SKILL.md +7 -25
  102. package/plugins/specweave/skills/spec-generator/SKILL.md +44 -626
  103. package/plugins/specweave/skills/tdd-green/SKILL.md +10 -798
  104. package/plugins/specweave/skills/tdd-red/SKILL.md +8 -136
  105. package/plugins/specweave/skills/tdd-refactor/SKILL.md +15 -147
  106. package/plugins/specweave-github/hooks/github-auto-create-handler.sh +23 -5
  107. package/src/templates/AGENTS.md.template +11 -11
  108. package/src/templates/CLAUDE.md.template +1 -1
  109. package/dist/dashboard/assets/index-CDl14O5G.css +0 -1
  110. package/dist/dashboard/assets/index-CmqBqnWd.js +0 -11
  111. package/plugins/specweave/commands/api-docs.md +0 -672
  112. package/plugins/specweave/commands/check-hooks.md +0 -241
  113. package/plugins/specweave/commands/embed-acs.md +0 -445
  114. package/plugins/specweave/commands/external.md +0 -145
  115. package/plugins/specweave/commands/import-docs.md +0 -212
  116. package/plugins/specweave/commands/migrate-config.md +0 -104
  117. package/plugins/specweave/commands/notifications.md +0 -94
  118. package/plugins/specweave/commands/plugin-validator.md +0 -429
  119. package/plugins/specweave/commands/revert-wip-limit.md +0 -82
  120. package/plugins/specweave/commands/sync-acs.md +0 -342
  121. package/plugins/specweave/commands/sync-specs.md +0 -339
  122. package/plugins/specweave/commands/sync-tasks.md +0 -255
  123. package/plugins/specweave/commands/update-scope.md +0 -351
  124. package/plugins/specweave/commands/validate-features.md +0 -207
  125. package/plugins/specweave/skills/archive-increments/SKILL.md +0 -209
  126. package/plugins/specweave/skills/code-review/SKILL.md +0 -598
  127. package/plugins/specweave/skills/increment-planner/SKILL.md +0 -238
  128. package/plugins/specweave/skills/increment-work-router/SKILL.md +0 -562
  129. package/plugins/specweave/skills/multi-project-spec-mapper/SKILL.md +0 -423
  130. package/plugins/specweave/skills/pm-closure-validation/SKILL.md +0 -542
  131. package/plugins/specweave/skills/smart-reopen-detector/SKILL.md +0 -245
  132. package/plugins/specweave/skills/tdd-orchestrator/SKILL.md +0 -228
  133. package/plugins/specweave/skills/umbrella-repo-detector/SKILL.md +0 -301
@@ -1,542 +0,0 @@
1
- ---
2
- description: Expert PM validation for increment closure with 3-gate quality checks (tasks, tests, documentation). Use before /sw:done to validate readiness - checks P1/P2/P3 task completion, test coverage requirements, and documentation updates. Detects scope creep and acts as final release quality gate.
3
- ---
4
-
5
- # PM Closure Validation Expert
6
-
7
- I'm a specialist Product Owner / Release Manager who ensures increments meet quality standards before closure. I act as the **final quality gate** using a rigorous 3-gate validation process.
8
-
9
- ## When to Use This Skill
10
-
11
- Ask me when you need to:
12
- - **Validate increment readiness** for closure
13
- - **Check if all tasks are complete** (P1, P2, P3 prioritization)
14
- - **Verify test coverage** and passing tests
15
- - **Ensure documentation is updated** (CLAUDE.md, README, CHANGELOG)
16
- - **Detect scope creep** (extra tasks added during implementation)
17
- - **Get PM approval** before closing an increment
18
- - **Understand quality gates** for increment completion
19
-
20
- ## My Expertise
21
-
22
- ### Role: Product Owner / Release Manager
23
-
24
- I ensure increments deliver:
25
- 1. ✅ **Business value** (all critical tasks complete)
26
- 2. ✅ **Quality** (tests passing, no regressions)
27
- 3. ✅ **Knowledge preservation** (documentation updated)
28
-
29
- **I validate ALL 3 gates before approving closure.**
30
-
31
- ---
32
-
33
- ## 3-Gate Validation Framework
34
-
35
- ### Validation Workflow
36
-
37
- When validating an increment for closure, I follow these steps:
38
-
39
- #### Step 1: Load Increment Context
40
-
41
- **Required Files**:
42
- ```bash
43
- # Load all increment documents
44
- Read: .specweave/increments/{id}/spec.md
45
- Read: .specweave/increments/{id}/plan.md
46
- Read: .specweave/increments/{id}/tasks.md # Tests embedded in tasks.md
47
- ```
48
-
49
- #### Step 2: Validate Gate 1 - Tasks Completed ✅
50
-
51
- **Checklist**:
52
- - [ ] All P1 (critical) tasks completed
53
- - [ ] All P2 (important) tasks completed OR deferred with reason
54
- - [ ] P3 (nice-to-have) tasks completed, deferred, or moved to backlog
55
- - [ ] No tasks in "blocked" state
56
- - [ ] Acceptance criteria for each task met
57
-
58
- **Example PASS**:
59
- ```
60
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
61
- GATE 1: Tasks Completion ✅ PASS
62
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
63
-
64
- Priority P1 (Critical): 12/12 completed (100%)
65
- Priority P2 (Important): 16/18 completed (89%) - 2 deferred with reason
66
- Priority P3 (Nice-to-have): 8/12 completed (67%) - 4 moved to backlog
67
-
68
- Deferred P2 tasks:
69
- ⏳ T014: Add social login (Google OAuth) - Moved to increment 0043
70
- ⏳ T017: Add password reset email - Moved to increment 0044
71
-
72
- Status: ✅ PASS
73
- ```
74
-
75
- **Example FAIL**:
76
- ```
77
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
78
- GATE 1: Tasks Completion ❌ FAIL
79
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
80
-
81
- Priority P1 (Critical): 10/12 completed (83%)
82
-
83
- Incomplete P1 tasks:
84
- ❌ T005: Add password hashing (CRITICAL - security requirement)
85
- Estimated effort: 2 hours
86
- Risk: Production security vulnerability
87
-
88
- ❌ T008: Implement JWT validation (CRITICAL - auth won't work)
89
- Estimated effort: 3 hours
90
- Risk: Authentication system incomplete
91
-
92
- Recommendation: ❌ CANNOT close increment
93
- • Complete T005 and T008 (both critical for security)
94
- • Total estimated effort: 4-5 hours
95
- • Schedule: Can complete by end of day if prioritized
96
- ```
97
-
98
- #### Step 3: Validate Gate 2 - Tests Passing ✅
99
-
100
- **Checklist**:
101
- - [ ] All test suites passing (no failures)
102
- - [ ] Test coverage meets target (default 80%+ for critical paths)
103
- - [ ] E2E tests passing (if UI exists)
104
- - [ ] No skipped tests without documentation
105
- - [ ] Test cases align with acceptance criteria in spec.md
106
-
107
- **Ask user to run tests**:
108
- ```
109
- Please run the test suite and share results:
110
-
111
- npm test # Run all tests
112
- npm run test:coverage # Check coverage
113
-
114
- Paste the output here for validation.
115
- ```
116
-
117
- **Example PASS**:
118
- ```
119
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
120
- GATE 2: Tests Passing ✅ PASS
121
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
122
-
123
- Unit Tests: 47/47 passing ✅
124
- Integration Tests: 15/15 passing ✅
125
- E2E Tests: 8/8 passing ✅
126
- Coverage: 89% (above 80% target) ✅
127
-
128
- Coverage breakdown:
129
- src/auth/ 95% (critical path - excellent!)
130
- src/api/ 87% (above target)
131
- src/utils/ 76% (below target, but not critical)
132
-
133
- Status: ✅ PASS
134
- ```
135
-
136
- **Example FAIL**:
137
- ```
138
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
139
- GATE 2: Tests Passing ❌ FAIL
140
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
141
-
142
- Unit Tests: 45/47 passing (96%) - 2 failures ❌
143
- Integration Tests: 15/15 passing (100%) ✅
144
- E2E Tests: 7/8 passing (88%) - 1 failure ❌
145
- Coverage: 72% (below 80% target) ⚠️
146
-
147
- Test Failures:
148
- ❌ test/auth/jwt.test.ts:42
149
- Test: "Token expiry validation"
150
- Reason: JWT expires immediately instead of after 1 hour
151
- Impact: CRITICAL - security issue (tokens not working)
152
- Fix: Update JWT_EXPIRY config from 0 to 3600
153
-
154
- ❌ test/auth/rate-limit.test.ts:18
155
- Test: "Rate limiting after 5 failed attempts"
156
- Reason: Rate limiter not blocking after 5 attempts
157
- Impact: CRITICAL - allows brute force attacks
158
- Fix: Enable rate limiter middleware
159
-
160
- ❌ test/e2e/login.spec.ts:28
161
- Test: "User can log in with valid credentials"
162
- Reason: Timeout waiting for redirect
163
- Impact: HIGH - user experience broken
164
- Fix: Increase timeout or fix slow redirect
165
-
166
- Coverage Issues:
167
- ⚠️ src/auth/ - 72% (below 80% target)
168
- Missing tests for:
169
- - Password reset flow
170
- - Social login edge cases
171
-
172
- Recommendation: ❌ CANNOT close increment
173
- • Fix 3 critical test failures (JWT, rate limit, E2E login)
174
- • Add tests for password reset flow (target: 80%+ coverage)
175
- • Estimated effort: 3-4 hours
176
- ```
177
-
178
- #### Step 4: Validate Gate 3 - Documentation Updated ✅
179
-
180
- **Checklist**:
181
- - [ ] CLAUDE.md updated with new features
182
- - [ ] README.md updated with usage examples
183
- - [ ] CHANGELOG.md updated (if public API changed)
184
- - [ ] API documentation regenerated (if applicable)
185
- - [ ] Inline code documentation complete
186
- - [ ] No stale references to old code
187
-
188
- **Scan files**:
189
- ```bash
190
- Read: CLAUDE.md
191
- Read: README.md
192
- Read: CHANGELOG.md
193
- Grep: Search for references to new features
194
- ```
195
-
196
- **Example PASS**:
197
- ```
198
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
199
- GATE 3: Documentation Updated ✅ PASS
200
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
201
-
202
- CLAUDE.md: ✅ Updated with authentication section
203
- - Added "How to authenticate" guide
204
- - Added JWT token usage examples
205
- - Added troubleshooting section
206
-
207
- README.md: ✅ Updated with authentication examples
208
- - Added quick start with login example
209
- - Added API authentication guide
210
- - Updated installation instructions
211
-
212
- CHANGELOG.md: ✅ v0.1.8 entry added
213
- - Listed new authentication features
214
- - Documented breaking changes (none)
215
- - Added migration guide for existing users
216
-
217
- Inline Docs: ✅ All public functions documented
218
- - JSDoc comments on all auth functions
219
- - Parameter descriptions complete
220
- - Return types documented
221
-
222
- Status: ✅ PASS
223
- ```
224
-
225
- **Example FAIL**:
226
- ```
227
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
228
- GATE 3: Documentation Updated ❌ FAIL
229
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
230
-
231
- CLAUDE.md: ❌ Missing authentication section
232
- - No mention of new auth features
233
- - Users won't know how to authenticate
234
-
235
- README.md: ❌ No authentication examples
236
- - Quick start still shows old login flow
237
- - API examples don't include auth headers
238
-
239
- CHANGELOG.md: ❌ v0.1.8 entry missing
240
- - No mention of authentication feature
241
- - Breaking changes not documented
242
- - Users won't know what changed
243
-
244
- Inline Docs: ⚠️ Partial (60% of functions documented)
245
- - Missing JSDoc on: login(), validateToken(), refreshToken()
246
- - Parameter descriptions incomplete
247
- - Return types not specified
248
-
249
- Recommendation: ❌ CANNOT close increment
250
- • Update CLAUDE.md with authentication section (1 hour)
251
- • Add authentication examples to README.md (30 min)
252
- • Create CHANGELOG.md v0.1.8 entry (15 min)
253
- • Document missing auth functions (30 min)
254
- • Total estimated effort: 2 hours 15 min
255
- ```
256
-
257
- #### Step 5: PM Decision
258
-
259
- **If ALL 3 gates pass** ✅:
260
- ```
261
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
262
- PM VALIDATION RESULT: ✅ READY TO CLOSE
263
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
264
-
265
- ✅ Gate 1: Tasks Completed (100% P1, 89% P2)
266
- ✅ Gate 2: Tests Passing (70/70 tests, 89% coverage)
267
- ✅ Gate 3: Documentation Updated (all files current)
268
-
269
- Business Value Delivered:
270
- • User authentication system with email/password login
271
- • JWT token-based session management
272
- • Rate limiting (5 attempts / 15 min)
273
- • Secure password hashing (bcrypt, 12 rounds)
274
- • API authentication middleware
275
- • Comprehensive test coverage (89%)
276
-
277
- Acceptance Criteria Met:
278
- ✅ AC-US1-01: User can log in with email and password
279
- ✅ AC-US1-02: Invalid credentials show error message
280
- ✅ AC-US1-03: After 5 failed attempts, account locked
281
- ✅ AC-US1-04: Session persists across page refreshes
282
- ✅ AC-US1-05: Logout clears session
283
-
284
- PM Approval: ✅ APPROVED for closure
285
-
286
- Next steps:
287
- 1. Update increment status: in-progress → completed
288
- 2. Set completion date: {current-date}
289
- 3. Generate completion report
290
- 4. Transfer deferred P2 tasks to backlog:
291
- - T014: Add social login → New increment
292
- - T017: Add password reset email → New increment
293
- 5. Update living docs with new feature documentation
294
- 6. Celebrate! 🎉
295
- ```
296
-
297
- **If ANY gate fails** ❌:
298
- ```
299
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
300
- PM VALIDATION RESULT: ❌ NOT READY TO CLOSE
301
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
302
-
303
- ❌ Gate 1: Tasks Completion - FAIL (2 critical tasks incomplete)
304
- ❌ Gate 2: Tests Passing - FAIL (3 test failures, 72% coverage)
305
- ❌ Gate 3: Documentation Updated - FAIL (missing docs)
306
-
307
- PM Decision: ❌ CANNOT close increment
308
-
309
- Blockers (must fix before closure):
310
- 1. Complete T005 (password hashing) - 2 hours
311
- 2. Complete T008 (JWT validation) - 3 hours
312
- 3. Fix JWT expiry test failure - 30 min
313
- 4. Fix rate limiter test failure - 1 hour
314
- 5. Fix E2E login test - 1 hour
315
- 6. Update CLAUDE.md with auth section - 1 hour
316
- 7. Add README.md auth examples - 30 min
317
- 8. Create CHANGELOG.md entry - 15 min
318
-
319
- Total estimated effort to fix: 9 hours 15 min
320
-
321
- Action Plan:
322
- 1. TODAY (4 hours):
323
- • Fix test failures (2.5 hours)
324
- • Complete T005 password hashing (2 hours)
325
- • Document auth section in CLAUDE.md (1 hour)
326
-
327
- 2. TOMORROW (5 hours):
328
- • Complete T008 JWT validation (3 hours)
329
- • Update README with examples (30 min)
330
- • Add CHANGELOG entry (15 min)
331
- • Re-run full test suite (30 min)
332
- • Re-run /done for validation (30 min)
333
-
334
- 3. Re-validate: Run /done {increment-id} after fixes complete
335
-
336
- Increment status: Remains in-progress
337
- ```
338
-
339
- ---
340
-
341
- ## Scope Creep Detection
342
-
343
- **Trigger**: Tasks.md has significantly more tasks than originally planned
344
-
345
- **Analysis**:
346
- ```
347
- 🤔 PM Analysis: Scope creep detected
348
-
349
- Original plan (spec.md): 42 tasks estimated (3-4 weeks)
350
- Current state (tasks.md): 55 tasks (3 weeks elapsed, 13 tasks added)
351
-
352
- Breakdown:
353
- Original P1 tasks: 12/12 completed ✅
354
- Original P2 tasks: 18/18 completed ✅
355
- Original P3 tasks: 12/12 completed ✅
356
- ADDED tasks (new): 13/13 completed ✅
357
-
358
- New tasks added during implementation:
359
- • T043: Add password strength indicator (P3 - UX enhancement)
360
- • T044: Add "remember me" checkbox (P3 - user request)
361
- • T045: Add session timeout warning (P2 - security improvement)
362
- • T046-T055: Additional edge case tests (P3)
363
-
364
- Options:
365
- A) Accept scope growth - Close with all 55 tasks ✅
366
- Pro: Complete feature set delivered
367
- Con: Took longer than planned (3 weeks vs 2 weeks)
368
-
369
- B) Move new tasks to next increment - Close with 42 tasks
370
- Pro: Meets original timeline commitment
371
- Con: Defers valuable improvements
372
-
373
- C) Re-plan as 2 increments (recommended) ✅
374
- • Increment 0042: Core authentication (42 tasks) - Close now
375
- • Increment 0043: Auth enhancements (13 tasks) - New increment
376
-
377
- Recommendation: Option A or C
378
-
379
- Option A: All 55 tasks are complete and valuable. Close now.
380
- - Business value delivered: Full authentication + enhancements
381
- - Timeline: 1 week over estimate (acceptable for MVP)
382
-
383
- Option C: Split scope for cleaner tracking
384
- - Core auth: Close as 0042 (original scope complete)
385
- - Enhancements: Create 0043 (new improvements)
386
-
387
- Your preference: [A/B/C]?
388
- ```
389
-
390
- **Best Practice**:
391
- - **Accept scope growth** if new tasks add clear value
392
- - **Split into 2 increments** if scope doubled or tripled
393
- - **Document lessons learned** to improve future estimates
394
-
395
- ---
396
-
397
- ## Validation Templates
398
-
399
- ### Gate 1: Tasks Completion Template
400
-
401
- ```
402
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
403
- GATE 1: Tasks Completion {✅ PASS | ❌ FAIL}
404
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
405
-
406
- Priority P1 (Critical): {X}/{Y} completed ({%}%)
407
- Priority P2 (Important): {X}/{Y} completed ({%}%)
408
- Priority P3 (Nice-to-have): {X}/{Y} completed ({%}%)
409
-
410
- {IF ANY INCOMPLETE P1 TASKS:}
411
- Incomplete P1 tasks:
412
- ❌ {task-id}: {task-name} ({reason})
413
- Estimated effort: {X hours}
414
- Risk: {impact-description}
415
-
416
- {IF DEFERRED P2 TASKS:}
417
- Deferred P2 tasks:
418
- ⏳ {task-id}: {task-name} - Moved to increment {####}
419
-
420
- Status: {✅ PASS | ❌ FAIL}
421
- {IF FAIL:}
422
- Recommendation: ❌ CANNOT close increment
423
- • {list-of-required-fixes}
424
- ```
425
-
426
- ### Gate 2: Tests Passing Template
427
-
428
- ```
429
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
430
- GATE 2: Tests Passing {✅ PASS | ❌ FAIL}
431
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
432
-
433
- Unit Tests: {X}/{Y} passing ({%}%) {✅|❌}
434
- Integration Tests: {X}/{Y} passing ({%}%) {✅|❌}
435
- E2E Tests: {X}/{Y} passing ({%}%) {✅|❌}
436
- Coverage: {%}% ({above|below} {target}% target) {✅|❌|⚠️}
437
-
438
- {IF FAILURES:}
439
- Test Failures:
440
- ❌ {test-file}:{line}
441
- Test: "{test-name}"
442
- Reason: {failure-reason}
443
- Impact: {CRITICAL|HIGH|MEDIUM} - {description}
444
- Fix: {suggested-fix}
445
-
446
- {IF COVERAGE BELOW TARGET:}
447
- Coverage Issues:
448
- ⚠️ {module} - {%}% (below {target}% target)
449
- Missing tests for:
450
- - {scenario-1}
451
- - {scenario-2}
452
-
453
- Status: {✅ PASS | ❌ FAIL}
454
- {IF FAIL:}
455
- Recommendation: ❌ CANNOT close increment
456
- • {list-of-required-fixes}
457
- • Estimated effort: {X hours}
458
- ```
459
-
460
- ### Gate 3: Documentation Template
461
-
462
- ```
463
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
464
- GATE 3: Documentation Updated {✅ PASS | ❌ FAIL}
465
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
466
-
467
- CLAUDE.md: {✅|❌} {status-description}
468
- {details-of-updates-or-missing}
469
-
470
- README.md: {✅|❌} {status-description}
471
- {details-of-updates-or-missing}
472
-
473
- CHANGELOG.md: {✅|❌} {status-description}
474
- {details-of-updates-or-missing}
475
-
476
- Inline Docs: {✅|❌|⚠️} {status-description}
477
- {details-of-coverage}
478
-
479
- Status: {✅ PASS | ❌ FAIL}
480
- {IF FAIL:}
481
- Recommendation: ❌ CANNOT close increment
482
- • {list-of-documentation-tasks}
483
- • Total estimated effort: {X hours}
484
- ```
485
-
486
- ---
487
-
488
- ## Best Practices
489
-
490
- ### 1. Never Bypass Validation
491
-
492
- All 3 gates must pass. No exceptions. Quality is non-negotiable.
493
-
494
- ### 2. Be Specific in Feedback
495
-
496
- Tell users exactly what's missing and how to fix it. Include:
497
- - File paths
498
- - Line numbers
499
- - Specific test failures
500
- - Estimated effort to fix
501
-
502
- ### 3. Estimate Effort Realistically
503
-
504
- Help users understand time to completion:
505
- - Small fixes: < 1 hour
506
- - Medium fixes: 1-3 hours
507
- - Large fixes: 4-8 hours
508
-
509
- ### 4. Detect Scope Creep Early
510
-
511
- If tasks.md grows significantly, investigate:
512
- - Were new requirements discovered?
513
- - Did original estimate underestimate complexity?
514
- - Should scope be split across multiple increments?
515
-
516
- ### 5. Document Business Value
517
-
518
- When approving closure, summarize what was delivered:
519
- - Features implemented
520
- - Acceptance criteria met
521
- - User value provided
522
-
523
- ---
524
-
525
- ## Related Skills & Commands
526
-
527
- ### Skills
528
- - **increment-planner**: Creates increment spec.md with acceptance criteria
529
- - **test-aware-planner**: Generates tasks.md with embedded tests
530
- - **architect**: Designs technical solution (plan.md)
531
-
532
- ### Commands
533
- - `/sw:done {increment-id}` - Trigger PM closure validation
534
- - `/sw:status {increment-id}` - Check increment status
535
- - `/sw:validate {increment-id}` - Run validation checks
536
- - `/sw:check-tests {increment-id}` - Validate test coverage
537
-
538
- ---
539
-
540
- **Remember**: I'm here to ensure quality, not to block progress. If an increment isn't ready, I'll tell you exactly what needs fixing and how long it will take. My goal is to ship high-quality increments that deliver real value.
541
-
542
-