fraim-framework 2.0.56 → 2.0.58

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 (224) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/bin/fraim-mcp.js +14 -0
  3. package/bin/fraim.js +23 -0
  4. package/dist/src/cli/commands/init-project.js +10 -4
  5. package/dist/src/cli/commands/mcp.js +65 -0
  6. package/dist/src/cli/setup/mcp-config-generator.js +19 -16
  7. package/dist/src/fraim/issue-tracking/ado-provider.js +304 -0
  8. package/dist/src/fraim/issue-tracking/factory.js +63 -0
  9. package/dist/src/fraim/issue-tracking/github-provider.js +200 -0
  10. package/dist/src/fraim/issue-tracking/types.js +7 -0
  11. package/dist/src/fraim/issue-tracking-config.js +83 -0
  12. package/dist/src/local-mcp-server/stdio-server.js +207 -0
  13. package/dist/src/utils/workflow-parser.js +81 -0
  14. package/package.json +17 -12
  15. package/registry/scripts/pdf-styles.css +172 -0
  16. package/registry/scripts/prep-issue.sh +46 -4
  17. package/registry/scripts/profile-server.ts +131 -130
  18. package/registry/stubs/workflows/customer-development/user-survey-dispatch.md +1 -1
  19. package/registry/stubs/workflows/customer-development/users-to-target.md +1 -1
  20. package/registry/stubs/workflows/product-building/design.md +1 -1
  21. package/registry/stubs/workflows/product-building/implement.md +1 -1
  22. package/Claude.md +0 -1
  23. package/dist/registry/ai-manager-rules/customer-development-phases/phase1-customer-profiling.md +0 -101
  24. package/dist/registry/ai-manager-rules/customer-development-phases/phase2-platform-discovery.md +0 -235
  25. package/dist/registry/ai-manager-rules/customer-development-phases/phase3-prospect-qualification.md +0 -243
  26. package/dist/registry/ai-manager-rules/customer-development-phases/phase4-inventory-compilation.md +0 -206
  27. package/dist/registry/ai-manager-rules/design-phases/design-completeness-review.md +0 -73
  28. package/dist/registry/ai-manager-rules/design-phases/design-design.md +0 -145
  29. package/dist/registry/ai-manager-rules/implement-phases/implement-code.md +0 -283
  30. package/dist/registry/ai-manager-rules/implement-phases/implement-completeness-review.md +0 -120
  31. package/dist/registry/ai-manager-rules/implement-phases/implement-regression.md +0 -173
  32. package/dist/registry/ai-manager-rules/implement-phases/implement-repro.md +0 -104
  33. package/dist/registry/ai-manager-rules/implement-phases/implement-scoping.md +0 -100
  34. package/dist/registry/ai-manager-rules/implement-phases/implement-smoke.md +0 -237
  35. package/dist/registry/ai-manager-rules/implement-phases/implement-spike.md +0 -121
  36. package/dist/registry/ai-manager-rules/implement-phases/implement-validate.md +0 -375
  37. package/dist/registry/ai-manager-rules/retrospective.md +0 -116
  38. package/dist/registry/ai-manager-rules/shared-phases/address-pr-feedback.md +0 -188
  39. package/dist/registry/ai-manager-rules/shared-phases/submit-pr.md +0 -202
  40. package/dist/registry/ai-manager-rules/shared-phases/wait-for-pr-review.md +0 -170
  41. package/dist/registry/ai-manager-rules/spec-phases/spec-competitor-analysis.md +0 -105
  42. package/dist/registry/ai-manager-rules/spec-phases/spec-completeness-review.md +0 -66
  43. package/dist/registry/ai-manager-rules/spec-phases/spec-spec.md +0 -139
  44. package/dist/registry/ai-manager-rules/user-survey-phases/phase1-survey-scoping.md +0 -60
  45. package/dist/registry/ai-manager-rules/user-survey-phases/phase2-survey-build-linkedin.md +0 -23
  46. package/dist/registry/ai-manager-rules/user-survey-phases/phase3-survey-build-reddit.md +0 -22
  47. package/dist/registry/ai-manager-rules/user-survey-phases/phase4-survey-build-x.md +0 -21
  48. package/dist/registry/ai-manager-rules/user-survey-phases/phase5-survey-build-facebook.md +0 -19
  49. package/dist/registry/ai-manager-rules/user-survey-phases/phase6-survey-build-custom.md +0 -15
  50. package/dist/registry/ai-manager-rules/user-survey-phases/phase7-survey-dispatch.md +0 -45
  51. package/dist/registry/providers/ado.json +0 -19
  52. package/dist/registry/providers/github.json +0 -19
  53. package/dist/registry/scripts/cleanup-branch.js +0 -287
  54. package/dist/registry/scripts/evaluate-code-quality.js +0 -66
  55. package/dist/registry/scripts/exec-with-timeout.js +0 -142
  56. package/dist/registry/scripts/generate-engagement-emails.js +0 -705
  57. package/dist/registry/scripts/newsletter-helpers.js +0 -671
  58. package/dist/registry/scripts/profile-server.js +0 -388
  59. package/dist/registry/scripts/run-thank-you-workflow.js +0 -92
  60. package/dist/registry/scripts/send-newsletter-simple.js +0 -85
  61. package/dist/registry/scripts/send-thank-you-emails.js +0 -54
  62. package/dist/registry/scripts/validate-openapi-limits.js +0 -311
  63. package/dist/registry/scripts/validate-test-coverage.js +0 -262
  64. package/dist/registry/scripts/verify-test-coverage.js +0 -66
  65. package/dist/registry/templates/bootstrap/ARCHITECTURE-TEMPLATE.md +0 -53
  66. package/dist/registry/templates/bootstrap/CODE-QUALITY-REPORT-TEMPLATE.md +0 -37
  67. package/dist/registry/templates/bootstrap/TEST-COVERAGE-REPORT-TEMPLATE.md +0 -35
  68. package/dist/registry/templates/business-development/IDEATION-REPORT-TEMPLATE.md +0 -29
  69. package/dist/registry/templates/business-development/PRICING-STRATEGY-TEMPLATE.md +0 -126
  70. package/dist/registry/templates/customer-development/customer-interview-template.md +0 -99
  71. package/dist/registry/templates/customer-development/customer-persona-template.md +0 -69
  72. package/dist/registry/templates/customer-development/follow-up-email-templates.md +0 -132
  73. package/dist/registry/templates/customer-development/insight-analysis-template.md +0 -74
  74. package/dist/registry/templates/customer-development/prospect-inventory-template.csv +0 -3
  75. package/dist/registry/templates/customer-development/search-strategy-template.md +0 -123
  76. package/dist/registry/templates/customer-development/strategic-recommendations-template.md +0 -53
  77. package/dist/registry/templates/customer-development/thank-you-email-template.html +0 -124
  78. package/dist/registry/templates/customer-development/thank-you-note-template.md +0 -16
  79. package/dist/registry/templates/customer-development/triage-log-template.md +0 -278
  80. package/dist/registry/templates/customer-development/weekly-newsletter-template.html +0 -204
  81. package/dist/registry/templates/evidence/Design-Evidence.md +0 -30
  82. package/dist/registry/templates/evidence/Implementation-BugEvidence.md +0 -94
  83. package/dist/registry/templates/evidence/Implementation-FeatureEvidence.md +0 -129
  84. package/dist/registry/templates/evidence/Spec-Evidence.md +0 -19
  85. package/dist/registry/templates/help/HelpNeeded.md +0 -14
  86. package/dist/registry/templates/legal/NDA-TEMPLATE.md +0 -170
  87. package/dist/registry/templates/legal/PATENT-TEMPLATE.md +0 -372
  88. package/dist/registry/templates/legal/TRADEMARK-TEMPLATE.md +0 -339
  89. package/dist/registry/templates/legal/contract-review-checklist.md +0 -193
  90. package/dist/registry/templates/legal/review-report-template.md +0 -198
  91. package/dist/registry/templates/legal/saas-terms-template.md +0 -174
  92. package/dist/registry/templates/legal/sow-template.md +0 -117
  93. package/dist/registry/templates/legal/template-variables.md +0 -131
  94. package/dist/registry/templates/marketing/DOMAIN-REGISTRATION-TEMPLATE.md +0 -194
  95. package/dist/registry/templates/marketing/HBR-ARTICLE-TEMPLATE.md +0 -66
  96. package/dist/registry/templates/marketing/STORYTELLING-TEMPLATE.md +0 -130
  97. package/dist/registry/templates/marketing/WEBSITE-TEMPLATE.md +0 -262
  98. package/dist/registry/templates/marketing/github-pages-workflow.yml +0 -64
  99. package/dist/registry/templates/replicate/implementation-checklist.md +0 -39
  100. package/dist/registry/templates/replicate/use-cases-template.md +0 -88
  101. package/dist/registry/templates/retrospective/RETROSPECTIVE-TEMPLATE.md +0 -55
  102. package/dist/registry/templates/specs/BUGSPEC-TEMPLATE.md +0 -37
  103. package/dist/registry/templates/specs/FEATURESPEC-TEMPLATE.md +0 -66
  104. package/dist/registry/templates/specs/TECHSPEC-TEMPLATE.md +0 -39
  105. package/dist/registry/workflows/bootstrap/create-architecture.md +0 -38
  106. package/dist/registry/workflows/bootstrap/detect-broken-windows.md +0 -300
  107. package/dist/registry/workflows/bootstrap/evaluate-code-quality.md +0 -35
  108. package/dist/registry/workflows/bootstrap/verify-test-coverage.md +0 -36
  109. package/dist/registry/workflows/brainstorming/blue-sky-brainstorming.md +0 -211
  110. package/dist/registry/workflows/brainstorming/codebase-brainstorming.md +0 -165
  111. package/dist/registry/workflows/business-development/create-business-plan.md +0 -737
  112. package/dist/registry/workflows/business-development/ideate-business-opportunity.md +0 -55
  113. package/dist/registry/workflows/business-development/price-product.md +0 -325
  114. package/dist/registry/workflows/compliance/detect-compliance-requirements.md +0 -78
  115. package/dist/registry/workflows/compliance/generate-audit-evidence.md +0 -75
  116. package/dist/registry/workflows/compliance/soc2-evidence-generator.md +0 -332
  117. package/dist/registry/workflows/customer-development/insight-analysis.md +0 -156
  118. package/dist/registry/workflows/customer-development/insight-triage.md +0 -938
  119. package/dist/registry/workflows/customer-development/interview-preparation.md +0 -452
  120. package/dist/registry/workflows/customer-development/linkedin-outreach.md +0 -593
  121. package/dist/registry/workflows/customer-development/strategic-brainstorming.md +0 -146
  122. package/dist/registry/workflows/customer-development/thank-customers.md +0 -203
  123. package/dist/registry/workflows/customer-development/user-survey-dispatch.md +0 -60
  124. package/dist/registry/workflows/customer-development/users-to-target.md +0 -112
  125. package/dist/registry/workflows/customer-development/weekly-newsletter.md +0 -366
  126. package/dist/registry/workflows/deploy/cloud-deployment.md +0 -310
  127. package/dist/registry/workflows/improve-fraim/contribute.md +0 -32
  128. package/dist/registry/workflows/improve-fraim/file-issue.md +0 -32
  129. package/dist/registry/workflows/learning/build-skillset.md +0 -212
  130. package/dist/registry/workflows/learning/synthesize-learnings.md +0 -284
  131. package/dist/registry/workflows/legal/contract-review-analysis.md +0 -382
  132. package/dist/registry/workflows/legal/nda.md +0 -69
  133. package/dist/registry/workflows/legal/patent-filing.md +0 -76
  134. package/dist/registry/workflows/legal/saas-contract-development.md +0 -213
  135. package/dist/registry/workflows/legal/trademark-filing.md +0 -77
  136. package/dist/registry/workflows/marketing/content-creation.md +0 -37
  137. package/dist/registry/workflows/marketing/convert-to-pdf.md +0 -235
  138. package/dist/registry/workflows/marketing/create-modern-website.md +0 -456
  139. package/dist/registry/workflows/marketing/domain-registration.md +0 -323
  140. package/dist/registry/workflows/marketing/hbr-article.md +0 -73
  141. package/dist/registry/workflows/marketing/launch-checklist.md +0 -37
  142. package/dist/registry/workflows/marketing/marketing-strategy.md +0 -45
  143. package/dist/registry/workflows/marketing/storytelling.md +0 -65
  144. package/dist/registry/workflows/performance/analyze-performance.md +0 -65
  145. package/dist/registry/workflows/product-building/design.md +0 -103
  146. package/dist/registry/workflows/product-building/implement.md +0 -74
  147. package/dist/registry/workflows/product-building/iterate-on-pr-comments.md +0 -70
  148. package/dist/registry/workflows/product-building/prep-issue.md +0 -41
  149. package/dist/registry/workflows/product-building/prototype.md +0 -65
  150. package/dist/registry/workflows/product-building/resolve.md +0 -168
  151. package/dist/registry/workflows/product-building/retrospect.md +0 -86
  152. package/dist/registry/workflows/product-building/spec.md +0 -181
  153. package/dist/registry/workflows/product-building/test.md +0 -125
  154. package/dist/registry/workflows/productivity-report/productivity-report.md +0 -263
  155. package/dist/registry/workflows/quality-assurance/browser-validation.md +0 -221
  156. package/dist/registry/workflows/quality-assurance/iterative-improvement-cycle.md +0 -562
  157. package/dist/registry/workflows/replicate/replicate-discovery.md +0 -336
  158. package/dist/registry/workflows/replicate/replicate-to-issues.md +0 -324
  159. package/dist/registry/workflows/reviewer/review-implementation-vs-design-spec.md +0 -638
  160. package/dist/registry/workflows/reviewer/review-implementation-vs-feature-spec.md +0 -675
  161. package/dist/registry/workflows/startup-credits/aws-activate-application.md +0 -535
  162. package/dist/registry/workflows/startup-credits/google-cloud-application.md +0 -647
  163. package/dist/registry/workflows/startup-credits/microsoft-azure-application.md +0 -538
  164. package/dist/scripts/build-stub-registry.js +0 -108
  165. package/dist/src/ai-manager/ai-manager.js +0 -480
  166. package/dist/src/ai-manager/phase-flow.js +0 -357
  167. package/dist/src/ai-manager/types.js +0 -5
  168. package/dist/src/fraim-mcp-server.js +0 -1885
  169. package/dist/tests/debug-tools.js +0 -80
  170. package/dist/tests/shared-server-utils.js +0 -57
  171. package/dist/tests/test-add-ide.js +0 -283
  172. package/dist/tests/test-ai-coach-edge-cases.js +0 -420
  173. package/dist/tests/test-ai-coach-mcp-integration.js +0 -450
  174. package/dist/tests/test-ai-coach-performance.js +0 -328
  175. package/dist/tests/test-ai-coach-phase-content.js +0 -264
  176. package/dist/tests/test-ai-coach-workflows.js +0 -514
  177. package/dist/tests/test-cli.js +0 -228
  178. package/dist/tests/test-client-scripts-validation.js +0 -167
  179. package/dist/tests/test-complete-setup-flow.js +0 -110
  180. package/dist/tests/test-config-system.js +0 -279
  181. package/dist/tests/test-debug-session.js +0 -134
  182. package/dist/tests/test-end-to-end-hybrid-validation.js +0 -328
  183. package/dist/tests/test-enhanced-session-init.js +0 -188
  184. package/dist/tests/test-first-run-journey.js +0 -368
  185. package/dist/tests/test-fraim-issues.js +0 -59
  186. package/dist/tests/test-genericization.js +0 -44
  187. package/dist/tests/test-hybrid-script-execution.js +0 -340
  188. package/dist/tests/test-ide-detector.js +0 -46
  189. package/dist/tests/test-improved-setup.js +0 -121
  190. package/dist/tests/test-mcp-config-generator.js +0 -99
  191. package/dist/tests/test-mcp-connection.js +0 -107
  192. package/dist/tests/test-mcp-issue-integration.js +0 -156
  193. package/dist/tests/test-mcp-lifecycle-methods.js +0 -240
  194. package/dist/tests/test-mcp-shared-server.js +0 -308
  195. package/dist/tests/test-mcp-template-processing.js +0 -160
  196. package/dist/tests/test-modular-issue-tracking.js +0 -165
  197. package/dist/tests/test-node-compatibility.js +0 -95
  198. package/dist/tests/test-npm-install.js +0 -68
  199. package/dist/tests/test-package-size.js +0 -108
  200. package/dist/tests/test-pr-review-workflow.js +0 -307
  201. package/dist/tests/test-prep-issue.js +0 -129
  202. package/dist/tests/test-productivity-integration.js +0 -157
  203. package/dist/tests/test-script-location-independence.js +0 -198
  204. package/dist/tests/test-script-sync.js +0 -557
  205. package/dist/tests/test-server-utils.js +0 -32
  206. package/dist/tests/test-session-rehydration.js +0 -148
  207. package/dist/tests/test-setup-integration.js +0 -98
  208. package/dist/tests/test-setup-scenarios.js +0 -322
  209. package/dist/tests/test-standalone.js +0 -143
  210. package/dist/tests/test-stub-registry.js +0 -136
  211. package/dist/tests/test-sync-stubs.js +0 -143
  212. package/dist/tests/test-sync-version-update.js +0 -93
  213. package/dist/tests/test-telemetry.js +0 -193
  214. package/dist/tests/test-token-validator.js +0 -30
  215. package/dist/tests/test-user-journey.js +0 -236
  216. package/dist/tests/test-users-to-target-workflow.js +0 -253
  217. package/dist/tests/test-utils.js +0 -109
  218. package/dist/tests/test-wizard.js +0 -71
  219. package/dist/tests/test-workflow-discovery.js +0 -242
  220. package/labels.json +0 -52
  221. package/registry/agent-guardrails.md +0 -63
  222. package/registry/fraim.md +0 -48
  223. package/setup.js +0 -171
  224. package/tsconfig.json +0 -23
@@ -1,638 +0,0 @@
1
- # Review Implementation vs Design Spec
2
-
3
- ## INTENT
4
- To systematically verify that the implementation matches the approved technical design (RFC), ensuring all technical requirements, test cases, and validation scenarios are complete.
5
-
6
- ## PRINCIPLES
7
- - **Design-Driven Validation**: Every requirement in the RFC must be verified
8
- - **Test Matrix Compliance**: All test cases from design spec must exist and pass
9
- - **Architecture Alignment**: Implementation must follow design decisions
10
- - **Evidence-Based**: All claims must be backed by actual evidence
11
- - **Gap Identification**: Systematically identify what's missing, not just what exists
12
-
13
- ## REVIEW WORKFLOW
14
-
15
- ### Step 1: Issue Identification and Evidence Loading
16
- - Get {issue_number} from context
17
-
18
- **GitHub Repository Context**: Before using GitHub MCP tools, read the local `.fraim/config.json` file to get the repository context:
19
- - Use `git.repoOwner` for the GitHub repository owner
20
- - Use `git.repoName` for the GitHub repository name
21
- - These values are required for GitHub MCP API calls (owner/repo parameters)
22
-
23
- - Verify issue has `phase:impl` and `status:needs-review` labels
24
- - Locate RFC: `docs/rfcs/{issue}-*.md`
25
- - If RFC doesn't exist: ❌ BLOCKER - Cannot review without design spec. Request design phase first.
26
- - **Determine Issue Type**: Check if this is a bug fix or feature
27
- - Check RFC title/description or issue title for "bug", "fix", "error", etc.
28
- - Bug fixes require regression tests (see Step 4.4 Regression Test Verification)
29
- - **Load Implementation Evidence**: Read `docs/evidence/{issue}-implementation-evidence.md`
30
- - If evidence doesn't exist: ❌ BLOCKER - Implementation agent must create evidence document first
31
- - Review evidence for completeness and quality
32
- - **Check for Existing Feedback**: Check if `docs/evidence/{issue}-design-reviewer-feedback.md` exists
33
- - If exists, this is an iteration (check iteration count)
34
- - Track iteration number (max 3 iterations)
35
-
36
- ### Step 2: RFC Analysis
37
- **MUST read and extract:**
38
- - Technical requirements (API changes, schema changes, etc.)
39
- - Test Matrix section (unit, integration, E2E tests required)
40
- - Validation Plan section (all validation scenarios)
41
- - Architecture decisions (service boundaries, patterns)
42
- - Risk mitigations (how they were addressed)
43
- - Observability requirements (logs, metrics, alerts)
44
-
45
- **Create a checklist mapping:**
46
- - List each requirement from RFC
47
- - List each test case from Test Matrix
48
- - List each validation scenario from Validation Plan
49
- - This becomes your review checklist
50
-
51
- ### Step 3: Implementation Code Review
52
- **For each technical requirement in RFC:**
53
- - [ ] Verify requirement is implemented in code
54
- - Search codebase for implementation
55
- - Check file paths match design
56
- - Verify code exists and is not just stubbed
57
- - [ ] Check code follows architecture decisions
58
- - Service boundaries match design
59
- - Patterns match design (e.g., spike-first, deterministic separation)
60
- - No over-engineering beyond design scope
61
- - [ ] Verify API/schema changes match RFC exactly
62
- - Check OpenAPI spec matches (if applicable)
63
- - Check database schema matches (if applicable)
64
- - Verify field names, types, constraints match
65
- - [ ] Check error handling matches design
66
- - Error responses match design
67
- - Error codes match design
68
- - Error messages match design
69
- - [ ] Verify observability (logs, metrics) matches design
70
- - Log statements exist where specified
71
- - Metrics tracked where specified
72
- - Alerts configured where specified
73
-
74
- **Document findings:**
75
- - Create table: Requirement | Status | Evidence Location | Notes
76
-
77
- ### Step 4: Test Matrix Validation
78
- **For each test type in RFC Test Matrix:**
79
-
80
- #### Unit Tests
81
- - [ ] **Count Required**: How many unit tests does RFC specify?
82
- - [ ] **Count Found**: How many unit test files exist? (`test-{issue}-*.ts` or similar)
83
- - [ ] **Verify Existence**: Check each listed test case exists
84
- - [ ] **Run Tests**: Execute `npm run test test-{issue}-*.ts` (or appropriate command)
85
- - [ ] **Verify Exit Code**: Must be 0 (success)
86
- - [ ] **Check Output**: All tests must pass (not just "some tests pass")
87
- - [ ] **Document Results**: Include actual test output in review evidence
88
-
89
- #### Integration Tests
90
- - [ ] **Count Required**: How many integration tests does RFC specify?
91
- - [ ] **Count Found**: How many integration test files exist?
92
- - [ ] **Verify Existence**: Check each listed test case exists
93
- - [ ] **Run Tests**: Execute integration tests with proper mocks
94
- - [ ] **Verify Service Interactions**: Check mocks validate service calls match design
95
- - [ ] **Verify Exit Code**: Must be 0 (success)
96
- - [ ] **Document Results**: Include actual test output in review evidence
97
-
98
- #### E2E Tests
99
- - [ ] **Count Required**: How many E2E tests does RFC specify?
100
- - [ ] **Count Found**: How many E2E test files exist?
101
- - [ ] **Verify Existence**: Check each listed test case exists
102
- - [ ] **Run Tests**: Execute E2E tests (may require server running)
103
- - [ ] **Verify End-to-End Flow**: Complete workflow must work
104
- - [ ] **Verify Exit Code**: Must be 0 (success)
105
- - [ ] **Document Results**: Include actual test output in review evidence
106
-
107
- **If test matrix says "X test cases" but only Y exist:**
108
- - ❌ BLOCKER: Missing test cases
109
- - Must identify which tests are missing (list specific test names)
110
- - Cannot approve until all tests from matrix exist and pass
111
-
112
- **Document findings:**
113
- - Create table: Test Type | Required | Found | Passing | Evidence | Missing Tests
114
-
115
- #### Test Quality Validation (Anti-Pattern Detection)
116
- **🚨 CRITICAL: Verify tests validate runtime behavior, not code structure**
117
-
118
- **For each test file found (test-{issue}-*.ts):**
119
- - [ ] **Check for Static Analysis Anti-Pattern**: Verify tests don't use `fs.readFileSync()` for code structure checks
120
- - Check: `grep -E "fs\.readFileSync|readFileSync" test-{issue}-*.ts`
121
- - ❌ BLOCKER if found - tests are doing static analysis, not runtime testing
122
- - Expected: Tests should execute code, not read source files
123
- - Reference: `retrospectives/issue-723-weak-test-validation-anti-pattern-postmortem.md`
124
- - [ ] **Verify Runtime Behavior Testing**: Check tests actually execute code paths
125
- - Review test code to ensure it calls actual functions/services
126
- - Verify tests check observable outcomes (API responses, database state, logs)
127
- - ❌ BLOCKER if tests only check code structure without execution
128
- - [ ] **Check for Mock Anti-Pattern**: Verify tests don't mock the core functionality being tested
129
- - Check: Are mocks used for dependencies (✅) or for the thing being tested (❌)?
130
- - ❌ BLOCKER if core functionality is mocked
131
- - Expected: Mock dependencies, test actual implementation
132
- - [ ] **Verify State Validation**: Check tests validate state changes
133
- - Tests should check database state, API responses, or service interactions
134
- - ❌ BLOCKER if tests don't validate any state changes
135
- - Expected: Tests verify before/after state or observable outcomes
136
-
137
- **Document findings:**
138
- - Create table: Test File | Static Analysis Check | Runtime Behavior | Mock Usage | State Validation | Status
139
-
140
- #### Regression Test Verification (For Bug Fixes)
141
- **If this is a bug fix (check RFC or issue description):**
142
- - [ ] **Identify Bug**: Understand what the bug was from RFC/issue
143
- - [ ] **Check for Regression Test**: Verify test file includes regression test for the bug
144
- - Check test file for test case that reproduces the bug
145
- - Test should be named something like "regression test for bug X" or similar
146
- - [ ] **Verify Test Pattern**: Regression test must follow correct pattern
147
- - ❌ BLOCKER if test passes/fails regardless of bug (wrong pattern)
148
- - ✅ CORRECT: Test fails with bug → Test passes with fix
149
- - ❌ WRONG: Test passes with bug AND with fix (doesn't reproduce bug)
150
- - ❌ WRONG: Test fails with bug AND with fix (environmental issue)
151
- - [ ] **Verify Test Behavior** (if possible):
152
- - Ideally: Revert fix temporarily, run test → should fail
153
- - Reapply fix, run test → should pass
154
- - If not possible, verify test logic would fail with buggy code
155
-
156
- **Document findings:**
157
- - Bug Fix: ✅ Yes / ❌ No
158
- - Regression Test: ✅ Found / ❌ Missing
159
- - Test Pattern: ✅ Correct (fails with bug, passes with fix) / ❌ Wrong pattern
160
- - Notes: [Any issues with regression test]
161
-
162
- ### Step 4.5: Common Error Pattern Checks
163
- **🚨 CRITICAL: Check for common test and code quality issues**
164
-
165
- #### Test Structure Validation
166
- **For each test file found (test-{issue}-*.ts):**
167
- - [ ] **BaseTestCase Extension**: Verify test cases extend `BaseTestCase` interface
168
- - Check: `grep -E "extends BaseTestCase|interface.*extends BaseTestCase" test-{issue}-*.ts`
169
- - ❌ BLOCKER if test cases don't extend BaseTestCase
170
- - Expected pattern: `interface MyTestCase extends BaseTestCase { ... }`
171
- - All test case objects must use interface that extends BaseTestCase
172
- - [ ] **Main Function**: Verify test file has `main()` function
173
- - Check: `grep -E "async function main\(\)|function main\(\)" test-{issue}-*.ts`
174
- - ❌ BLOCKER if main() function missing
175
- - Expected pattern: `async function main() { ... runTests(...) }`
176
- - Must have `main().catch(console.error)` at end of file
177
- - [ ] **runTests Usage**: Verify test file uses `runTests()` function
178
- - Check: `grep "runTests" test-{issue}-*.ts`
179
- - ❌ BLOCKER if runTests() not used
180
- - Expected: `runTests(TEST_CASES, runMyTest, 'Test Suite Name')`
181
- - Must import runTests from './test-utils' or './test-utils.ts'
182
-
183
- **Document findings:**
184
- - Create table: Test File | BaseTestCase | main() | runTests() | Status
185
-
186
- #### Code Quality Check
187
- - [ ] **Run Code Quality Check**: Execute the code quality script directly from synced location.
188
- - Command: `~/.fraim/scripts/code-quality-check.sh pre-pr`
189
- - Verify exit code is 0 (success)
190
- - Check for critical failures (❌) vs warnings (⚠️)
191
- - ❌ BLOCKER if critical checks fail (e.g., `as any` usage, TypeScript errors)
192
- - ⚠️ WARNING if warnings exist (document in feedback)
193
- - [ ] **Review Quality Check Output**:
194
- - Check for `as any` type bypassing in src/
195
- - Check TypeScript compilation passes
196
- - Check linter passes (warnings acceptable, errors are blockers)
197
- - Check all test files referenced in evidence have been executed
198
-
199
- **Document findings:**
200
- - Code Quality Check: ✅ Passed / ❌ Failed / ⚠️ Warnings
201
- - Critical Issues: [list any critical failures]
202
- - Warnings: [list any warnings]
203
-
204
- #### Evidence File Location Validation
205
- - [ ] **Check Evidence Files**: Verify evidence files are ONLY in `docs/evidence/` folder
206
- - Check: `find . -name "*evidence*.md" -not -path "./docs/evidence/*" -not -path "./.git/*" -not -path "./node_modules/*"`
207
- - ❌ BLOCKER if evidence files found outside `docs/evidence/`
208
- - Expected: All evidence files should be in `docs/evidence/{issue}-*.md`
209
- - [ ] **Check for Evidence in Git**: Verify evidence folder is gitignored
210
- - Check: `git check-ignore docs/evidence/` should return `docs/evidence/`
211
- - ⚠️ WARNING if evidence folder not in .gitignore (should be gitignored)
212
- - [ ] **Check PR for Evidence Files**: Verify no evidence files committed to repo
213
- - Check git status for any files in docs/evidence/
214
- - ❌ BLOCKER if evidence files are staged/committed
215
-
216
- **Document findings:**
217
- - Evidence Location Check: ✅ All in docs/evidence/ / ❌ Found outside
218
- - Git Ignore Check: ✅ Ignored / ⚠️ Not ignored
219
- - Committed Evidence: ✅ None / ❌ Found in commits
220
-
221
- **If any blockers found:**
222
- - ❌ BLOCKER: Must fix before approval
223
- - List specific files and issues
224
- - Cannot approve until all blockers resolved
225
-
226
- ### Step 5: Validation Plan Execution
227
- **For each validation scenario in RFC Validation Plan:**
228
- - [ ] **Scenario Identified**: Map each scenario from validation plan
229
- - [ ] **Evidence Found**: Check PR evidence for scenario validation
230
- - Look in PR comments for evidence
231
- - Check for screenshots, curl outputs, test results
232
- - Verify evidence shows actual execution (not just "tested")
233
- - [ ] **Method Verified**: Ensure validation method matches (UI, API, DB, etc.)
234
- - If RFC says "API validation", check for curl/Postman results
235
- - If RFC says "Browser validation", check for screenshots/recordings
236
- - If RFC says "Database validation", check for DB query results
237
- - [ ] **Result Verified**: Ensure scenario actually passes (not just "tested")
238
- - Check evidence shows success, not just attempt
239
- - Verify no "pending" or "TODO" markers
240
-
241
- **If validation plan has 10 scenarios but only 7 have evidence:**
242
- - ❌ BLOCKER: Missing validation evidence
243
- - Must identify which scenarios are missing (list specific scenario names)
244
- - Cannot approve until all scenarios validated with evidence
245
-
246
- **Document findings:**
247
- - Create table: Scenario | Method | Evidence | Status | Missing Evidence
248
-
249
- ### Step 6: Architecture Compliance Check
250
- **Verify implementation matches design:**
251
- - [ ] Service boundaries match design
252
- - Check service files match design boundaries
253
- - Verify no cross-boundary violations
254
- - [ ] Patterns match design (e.g., spike-first, deterministic separation)
255
- - Check code follows patterns specified in RFC
256
- - Verify no anti-patterns introduced
257
- - [ ] Dependencies match design
258
- - Check package.json matches design dependencies
259
- - Verify no unexpected dependencies added
260
- - [ ] No over-engineering beyond design scope
261
- - Check code doesn't add features not in RFC
262
- - Verify minimal implementation (not over-engineered)
263
-
264
- **Document findings:**
265
- - List any architecture deviations
266
- - Note if deviations are acceptable or blockers
267
-
268
- ### Step 7: Risk Mitigation Verification
269
- **For each risk in RFC Risks & Mitigations:**
270
- - [ ] Verify mitigation is implemented
271
- - Check code implements mitigation strategy
272
- - Verify mitigation code exists and is not just commented
273
- - [ ] Check mitigation actually addresses the risk
274
- - Verify mitigation logic matches risk description
275
- - Check mitigation is complete (not partial)
276
- - [ ] Verify observability for risk detection
277
- - Check logs/alerts exist for risk scenarios
278
- - Verify monitoring is in place
279
-
280
- **Document findings:**
281
- - Create table: Risk | Mitigation Status | Implementation Location | Notes
282
-
283
- ### Step 8: Evidence Quality Review
284
- **Verify PR evidence quality:**
285
- - [ ] All test outputs included (not just "tests pass")
286
- - Check for actual test command output
287
- - Verify exit codes shown
288
- - Check for test case names and results
289
- - [ ] All validation scenarios documented with results
290
- - Check each scenario has evidence
291
- - Verify evidence shows actual execution
292
- - [ ] No "pending" items that could be validated automatically
293
- - Flag any "pending" items that could be tested
294
- - Check for "TODO" or "needs manual validation" markers
295
- - [ ] Build verification included
296
- - Check for `npm run build` output
297
- - Verify build succeeds
298
- - [ ] Quality gate results included
299
- - Check for quality gate script output
300
- - Verify all gates pass (or warnings documented)
301
-
302
- **Document findings:**
303
- - List any evidence quality issues
304
- - Note if evidence is sufficient or needs improvement
305
-
306
- ### Step 9: Review Decision and Feedback Creation
307
-
308
- **Check Iteration Count:**
309
- - If `docs/evidence/{issue}-design-reviewer-feedback.md` exists, check iteration number
310
- - Maximum 3 iterations allowed
311
- - If iteration 3 and still issues: ❌ REJECT (max iterations reached)
312
-
313
- **Options:**
314
- - ✅ **APPROVE**: All requirements met, tests pass, evidence complete
315
- - ❌ **REJECT**: Missing requirements, tests fail, or evidence incomplete (after max iterations)
316
- - ⚠️ **REQUEST CHANGES**: Minor gaps that need addressing (iteration < 3)
317
-
318
- **If REQUEST CHANGES (iteration < 3):**
319
- - **Create Feedback Document**: Create `docs/evidence/{issue}-design-reviewer-feedback.md`
320
- - Use template below for feedback structure
321
- - List specific blockers with evidence locations
322
- - Provide actionable feedback for each issue
323
- - Include iteration number
324
- - Label issue `status:wip` (remove `status:needs-review`)
325
- - Add PR comment referencing feedback document
326
- - Implementation agent must address feedback and update evidence
327
- - Implementation agent re-submits by marking `status:needs-review` again
328
-
329
- **If REJECT (max iterations reached):**
330
- - Create final feedback document with all remaining issues
331
- - Label issue `status:wip` (remove `status:needs-review`)
332
- - Add PR comment with final rejection notice
333
- - Implementation agent must address all issues before re-submission
334
-
335
- **If APPROVE:**
336
- - **Create Summary for Feature Spec Review**: Create `docs/evidence/{issue}-design-review-summary.md`
337
- - Summarize what was reviewed and approved
338
- - Include key findings and evidence locations
339
- - Provide context for feature spec review agent
340
- - Label issue `status:design-review-passed` (remove `status:needs-review`)
341
- - Add PR comment confirming design spec compliance
342
- - Issue ready for Feature Spec Review (next workflow)
343
-
344
- ## FEEDBACK DOCUMENT TEMPLATE
345
-
346
- Create `docs/evidence/{issue}-design-reviewer-feedback.md`:
347
-
348
- ```markdown
349
- # Design Review Feedback - Issue #{issue}
350
-
351
- ## Iteration Information
352
- - Iteration Number: {1, 2, or 3}
353
- - Review Date: {date}
354
- - Reviewer: Design Spec Review Agent
355
-
356
- ## Review Summary
357
- - RFC Location: `docs/rfcs/{issue}-*.md`
358
- - Evidence Reviewed: `docs/evidence/{issue}-implementation-evidence.md`
359
- - Overall Status: ⚠️ REQUEST CHANGES
360
-
361
- ## Issues Found
362
-
363
- ### Critical Blockers (Must Fix)
364
- 1. **Issue Title**
365
- - **Location**: `src/file.ts:line`
366
- - **Problem**: [Specific problem description]
367
- - **Expected**: [What RFC requires]
368
- - **Found**: [What implementation has]
369
- - **Action Required**: [Specific fix needed]
370
-
371
- 2. **Issue Title**
372
- - [Same structure]
373
-
374
- ### Missing Requirements
375
- 1. **Requirement Name**
376
- - **RFC Section**: [Section reference]
377
- - **What's Missing**: [Specific requirement]
378
- - **Action Required**: [What needs to be implemented]
379
-
380
- ### Test Matrix Issues
381
- 1. **Missing Test**: Test case name
382
- - **RFC Test Matrix**: [Reference]
383
- - **Action Required**: Create test file `test-{issue}-*.ts` with test case
384
-
385
- ### Test Structure Issues (Common Error Patterns)
386
- 1. **Test Not Extending BaseTestCase**: `test-{issue}-*.ts`
387
- - **Problem**: Test case interface doesn't extend BaseTestCase
388
- - **Expected**: `interface MyTestCase extends BaseTestCase { ... }`
389
- - **Action Required**: Update test case interface to extend BaseTestCase
390
-
391
- 2. **Missing main() Function**: `test-{issue}-*.ts`
392
- - **Problem**: Test file doesn't have main() function
393
- - **Expected**: `async function main() { ... runTests(...) }` with `main().catch(console.error)`
394
- - **Action Required**: Add main() function that calls runTests()
395
-
396
- 3. **Not Using runTests()**: `test-{issue}-*.ts`
397
- - **Problem**: Test file doesn't use runTests() function
398
- - **Expected**: Import runTests from './test-utils' and call it in main()
399
- - **Action Required**: Refactor to use runTests() function
400
-
401
- ### Test Quality Issues (Anti-Patterns)
402
- 1. **Static Analysis Anti-Pattern**: `test-{issue}-*.ts`
403
- - **Problem**: Tests use `fs.readFileSync()` to check code structure instead of runtime behavior
404
- - **Expected**: Tests should execute code and validate outcomes, not read source files
405
- - **Action Required**: Rewrite tests to validate runtime behavior
406
- - **Reference**: `retrospectives/issue-723-weak-test-validation-anti-pattern-postmortem.md`
407
-
408
- 2. **No Runtime Behavior Validation**: `test-{issue}-*.ts`
409
- - **Problem**: Tests don't execute actual code paths or validate observable outcomes
410
- - **Expected**: Tests should call functions/services and check results
411
- - **Action Required**: Add runtime behavior validation to tests
412
-
413
- 3. **Mocking Core Functionality**: `test-{issue}-*.ts`
414
- - **Problem**: Tests mock the thing being tested instead of dependencies
415
- - **Expected**: Mock dependencies, test actual implementation
416
- - **Action Required**: Refactor mocks to only mock dependencies
417
-
418
- 4. **No State Validation**: `test-{issue}-*.ts`
419
- - **Problem**: Tests don't validate state changes (database, API responses, etc.)
420
- - **Expected**: Tests should verify before/after state or observable outcomes
421
- - **Action Required**: Add state validation to tests
422
-
423
- ### Regression Test Issues (For Bug Fixes)
424
- 1. **Missing Regression Test**: `test-{issue}-*.ts`
425
- - **Problem**: Bug fix doesn't have regression test
426
- - **Expected**: Regression test that fails with bug, passes with fix
427
- - **Action Required**: Add regression test following correct pattern
428
-
429
- 2. **Wrong Regression Test Pattern**: `test-{issue}-*.ts`
430
- - **Problem**: Test passes/fails regardless of bug (doesn't reproduce bug)
431
- - **Expected**: Test fails with bug → Test passes with fix
432
- - **Action Required**: Fix regression test to follow correct pattern
433
- - **Reference**: `retrospectives/task-api-calendar-event-id-bug-postmortem.md`
434
-
435
- ### Code Quality Issues
436
- 1. **Code Quality Check Failed**: [Specific issue]
437
- - **Problem**: [What failed - e.g., "as any" usage, TypeScript errors]
438
- - **Action Required**: Fix code quality issues and re-run check
439
- - **Command**: Run quality check (fetch `scripts/code-quality-check.sh` via `get_fraim_file`)
440
-
441
- ### Evidence File Location Issues
442
- 1. **Evidence File Outside docs/evidence/**: [File path]
443
- - **Problem**: Evidence file found outside `docs/evidence/` folder
444
- - **Expected**: All evidence files should be in `docs/evidence/{issue}-*.md`
445
- - **Action Required**: Move evidence file to `docs/evidence/` folder
446
-
447
- ### Validation Plan Issues
448
- 1. **Missing Validation**: Scenario name
449
- - **RFC Validation Plan**: [Reference]
450
- - **Action Required**: Execute validation and add evidence
451
-
452
- ### Evidence Quality Issues
453
- 1. **Missing Evidence**: [What's missing]
454
- - **Action Required**: [What evidence needs to be added]
455
-
456
- ## Action Items for Implementation Agent
457
- - [ ] Fix critical blocker 1
458
- - [ ] Fix critical blocker 2
459
- - [ ] Implement missing requirement X
460
- - [ ] Add missing test case Y
461
- - [ ] Execute missing validation Z
462
- - [ ] Update evidence document with fixes
463
-
464
- ## Next Steps
465
- 1. Implementation agent addresses all feedback items
466
- 2. Implementation agent updates `docs/evidence/{issue}-implementation-evidence.md`
467
- 3. Implementation agent marks issue `status:needs-review` again
468
- 4. Design review agent will re-review (iteration {next_number})
469
- ```
470
-
471
- ## SUMMARY DOCUMENT TEMPLATE (For Feature Spec Review)
472
-
473
- Create `docs/evidence/{issue}-design-review-summary.md` when approving:
474
-
475
- ```markdown
476
- # Design Review Summary - Issue #{issue}
477
-
478
- ## Review Outcome
479
- - Status: ✅ APPROVED
480
- - Iterations: {number} (1-3)
481
- - RFC Location: `docs/rfcs/{issue}-*.md`
482
-
483
- ## What Was Reviewed
484
- - Technical Requirements: X/Y implemented ✅
485
- - Test Matrix: All test cases exist and pass ✅
486
- - Validation Plan: All scenarios validated ✅
487
- - Architecture: Matches design ✅
488
- - Risk Mitigations: All implemented ✅
489
-
490
- ## Key Findings
491
- - All RFC requirements implemented correctly
492
- - All tests from test matrix exist and pass
493
- - All validation scenarios executed with evidence
494
- - Architecture follows design decisions
495
- - No over-engineering detected
496
-
497
- ## Evidence Locations
498
- - Implementation Evidence: `docs/evidence/{issue}-implementation-evidence.md`
499
- - Test Results: [locations]
500
- - Validation Evidence: [locations]
501
-
502
- ## Notes for Feature Spec Review
503
- - Technical implementation is complete and correct
504
- - All technical requirements met
505
- - Ready for functional/user experience validation
506
- - No technical blockers for feature spec review
507
- ```
508
-
509
- ## REVIEW EVIDENCE TEMPLATE (PR Comment)
510
-
511
- Add this as a PR comment:
512
-
513
- ```markdown
514
- # Design Spec Review - Issue #{issue}
515
-
516
- ## RFC Compliance Summary
517
- - RFC Location: `docs/rfcs/{issue}-*.md`
518
- - Technical Requirements: X/Y implemented ✅/❌
519
- - Test Matrix Compliance: X/Y test types complete ✅/❌
520
- - Validation Plan Coverage: X/Y scenarios validated ✅/❌
521
- - Architecture Compliance: ✅/❌
522
- - Risk Mitigations: X/Y implemented ✅/❌
523
-
524
- ## Detailed Findings
525
-
526
- ### Technical Requirements
527
- | Requirement | Status | Evidence Location | Notes |
528
- |------------|--------|-------------------|-------|
529
- | API endpoint X | ✅ | `src/api/...` | Matches RFC |
530
- | Schema change Y | ❌ | Missing | RFC requires Z field |
531
-
532
- ### Test Matrix Validation
533
- | Test Type | Required | Found | Passing | Evidence | Missing Tests |
534
- |-----------|----------|-------|---------|----------|---------------|
535
- | Unit Tests | 5 | 5 | ✅ | `test-{issue}.ts` lines 10-50 | None |
536
- | Integration | 3 | 2 | ❌ | Partial | Missing test for scenario Z |
537
- | E2E | 1 | 0 | ❌ | Not found | E2E test not implemented |
538
-
539
- ### Test Quality Validation
540
- | Test File | Static Analysis | Runtime Behavior | Mock Usage | State Validation | Status |
541
- |-----------|----------------|-------------------|------------|------------------|--------|
542
- | test-{issue}.ts | ✅ No fs.readFileSync | ✅ Executes code | ✅ Mocks dependencies | ✅ Validates state | ✅ Pass |
543
- | test-{issue}-2.ts | ❌ Uses fs.readFileSync | ❌ No execution | ❌ Mocks core | ❌ No validation | ❌ Fail |
544
-
545
- ### Regression Test Verification (If Bug Fix)
546
- - Bug Fix: ✅ Yes / ❌ No
547
- - Regression Test: ✅ Found / ❌ Missing
548
- - Test Pattern: ✅ Correct (fails with bug, passes with fix) / ❌ Wrong pattern
549
- - Notes: [Any issues with regression test]
550
-
551
- ### Validation Plan Coverage
552
- | Scenario | Method | Evidence | Status | Missing Evidence |
553
- |----------|--------|----------|--------|------------------|
554
- | Create operation | API | PR comment | ✅ | None |
555
- | Update operation | API | Missing | ❌ | No curl output found |
556
-
557
- ### Architecture Compliance
558
- - Service Boundaries: ✅ Match design
559
- - Patterns: ✅ Follow design patterns
560
- - Dependencies: ⚠️ Extra dependency X added (not in RFC)
561
- - Over-engineering: ✅ Minimal implementation
562
-
563
- ### Risk Mitigations
564
- | Risk | Mitigation Status | Implementation Location | Notes |
565
- |------|-------------------|-------------------------|-------|
566
- | Risk X | ✅ Implemented | `src/...` | Matches design |
567
- | Risk Y | ❌ Missing | N/A | Not implemented |
568
-
569
- ### Common Error Pattern Checks
570
- - Test Structure: ✅ All tests extend BaseTestCase / ❌ Issues found
571
- - Main Functions: ✅ All tests have main() / ❌ Missing in some tests
572
- - runTests Usage: ✅ All tests use runTests() / ❌ Not used in some tests
573
- - Code Quality Check: ✅ Passed / ❌ Failed / ⚠️ Warnings
574
- - Evidence Location: ✅ All in docs/evidence/ / ❌ Found outside
575
-
576
- ### Evidence Quality
577
- - Test Outputs: ✅ Complete (all test results included)
578
- - Validation Evidence: ⚠️ Partial (missing scenario Y evidence)
579
- - Build Verification: ✅ Included
580
- - Quality Gate: ✅ Passed
581
-
582
- ## Decision
583
- ✅ APPROVE / ❌ REJECT / ⚠️ REQUEST CHANGES
584
-
585
- ## Feedback Document
586
- - Location: `docs/evidence/{issue}-design-reviewer-feedback.md`
587
- - Iteration: {1, 2, or 3}
588
-
589
- ## Blockers (if any)
590
- 1. Missing test case for scenario X (RFC Test Matrix requires it)
591
- 2. Validation scenario Y not executed (RFC Validation Plan requires it)
592
- 3. Technical requirement Z not implemented (RFC Technical Details requires it)
593
-
594
- ## Next Steps (if REQUEST CHANGES)
595
- - [ ] Implementation agent addresses feedback in `docs/evidence/{issue}-design-reviewer-feedback.md`
596
- - [ ] Implementation agent updates `docs/evidence/{issue}-implementation-evidence.md`
597
- - [ ] Implementation agent marks `status:needs-review` for re-review
598
- - [ ] Design review agent will re-review (max 3 iterations)
599
- ```
600
-
601
- ## EXAMPLES
602
-
603
- ### Good: Complete Review
604
- ```
605
- Issue #533: Design Spec Review
606
- ✅ RFC Compliance: 15/15 requirements implemented
607
- ✅ Test Matrix: All 8 test cases exist and pass
608
- ✅ Validation Plan: All 5 scenarios validated
609
- ✅ Architecture: Matches design
610
- ✅ Evidence: Complete with test outputs
611
- Decision: ✅ APPROVE
612
- ```
613
-
614
- ### Bad: Incomplete Review
615
- ```
616
- Issue #533: Design Spec Review
617
- ⚠️ RFC Compliance: 12/15 requirements (3 missing)
618
- ❌ Test Matrix: 5/8 test cases exist (3 missing)
619
- ⚠️ Validation Plan: 3/5 scenarios validated (2 missing)
620
- Decision: ❌ REJECT
621
- Blockers: Missing tests, missing validations
622
- ```
623
-
624
- ## INTEGRATION
625
-
626
- ### Status Label Flow
627
- ```
628
- phase:impl + status:needs-review
629
- ↓ (Design Spec Review)
630
- status:design-review-passed (or status:wip if rejected)
631
- ↓ (Feature Spec Review - next workflow)
632
- status:feature-review-passed
633
- ```
634
-
635
- ### After This Review
636
- - If APPROVE: Issue moves to Feature Spec Review
637
- - If REJECT: Issue returns to implementation (status:wip)
638
- - Implementation agent addresses blockers and re-submits