@thierrynakoa/fire-flow 10.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 (215) hide show
  1. package/.claude-plugin/plugin.json +64 -0
  2. package/ARCHITECTURE-DIAGRAM.md +440 -0
  3. package/COMMAND-REFERENCE.md +172 -0
  4. package/DOMINION-FLOW-OVERVIEW.md +421 -0
  5. package/LICENSE +21 -0
  6. package/QUICK-START.md +351 -0
  7. package/README.md +398 -0
  8. package/TROUBLESHOOTING.md +264 -0
  9. package/agents/fire-codebase-mapper.md +484 -0
  10. package/agents/fire-debugger.md +535 -0
  11. package/agents/fire-executor.md +949 -0
  12. package/agents/fire-fact-checker.md +276 -0
  13. package/agents/fire-learncoding-explainer.md +237 -0
  14. package/agents/fire-learncoding-walker.md +147 -0
  15. package/agents/fire-planner.md +675 -0
  16. package/agents/fire-project-researcher.md +155 -0
  17. package/agents/fire-research-synthesizer.md +166 -0
  18. package/agents/fire-researcher.md +723 -0
  19. package/agents/fire-reviewer.md +499 -0
  20. package/agents/fire-roadmapper.md +203 -0
  21. package/agents/fire-verifier.md +880 -0
  22. package/bin/cli.js +208 -0
  23. package/commands/fire-0-orient.md +476 -0
  24. package/commands/fire-1-new.md +281 -0
  25. package/commands/fire-1a-discuss.md +455 -0
  26. package/commands/fire-2-plan.md +527 -0
  27. package/commands/fire-3-execute.md +1303 -0
  28. package/commands/fire-4-verify.md +845 -0
  29. package/commands/fire-5-handoff.md +515 -0
  30. package/commands/fire-6-resume.md +501 -0
  31. package/commands/fire-7-review.md +409 -0
  32. package/commands/fire-add-new-skill.md +598 -0
  33. package/commands/fire-analytics.md +499 -0
  34. package/commands/fire-assumptions.md +78 -0
  35. package/commands/fire-autonomous.md +528 -0
  36. package/commands/fire-brainstorm.md +413 -0
  37. package/commands/fire-complete-milestone.md +270 -0
  38. package/commands/fire-dashboard.md +375 -0
  39. package/commands/fire-debug.md +663 -0
  40. package/commands/fire-discover.md +616 -0
  41. package/commands/fire-double-check.md +460 -0
  42. package/commands/fire-execute-plan.md +182 -0
  43. package/commands/fire-learncoding.md +242 -0
  44. package/commands/fire-loop-resume.md +272 -0
  45. package/commands/fire-loop-stop.md +198 -0
  46. package/commands/fire-loop.md +1168 -0
  47. package/commands/fire-map-codebase.md +313 -0
  48. package/commands/fire-new-milestone.md +356 -0
  49. package/commands/fire-reflect.md +235 -0
  50. package/commands/fire-research.md +246 -0
  51. package/commands/fire-search.md +330 -0
  52. package/commands/fire-security-audit-repo.md +293 -0
  53. package/commands/fire-security-scan.md +484 -0
  54. package/commands/fire-session-summary.md +252 -0
  55. package/commands/fire-skills-diff.md +506 -0
  56. package/commands/fire-skills-history.md +388 -0
  57. package/commands/fire-skills-rollback.md +408 -0
  58. package/commands/fire-skills-sync.md +470 -0
  59. package/commands/fire-test.md +520 -0
  60. package/commands/fire-todos.md +335 -0
  61. package/commands/fire-transition.md +186 -0
  62. package/commands/fire-update.md +312 -0
  63. package/commands/fire-verify-uat.md +146 -0
  64. package/commands/fire-vuln-scan.md +493 -0
  65. package/hooks/hooks.json +16 -0
  66. package/hooks/run-hook.cmd +69 -0
  67. package/hooks/run-hook.sh +8 -0
  68. package/hooks/run-session-end.cmd +49 -0
  69. package/hooks/run-session-end.sh +7 -0
  70. package/hooks/session-end.sh +90 -0
  71. package/hooks/session-start.sh +111 -0
  72. package/package.json +52 -0
  73. package/plugin.json +7 -0
  74. package/references/auto-skill-extraction.md +136 -0
  75. package/references/behavioral-directives.md +365 -0
  76. package/references/blocker-tracking.md +155 -0
  77. package/references/checkpoints.md +165 -0
  78. package/references/circuit-breaker.md +410 -0
  79. package/references/context-engineering.md +587 -0
  80. package/references/decision-time-guidance.md +289 -0
  81. package/references/error-classification.md +326 -0
  82. package/references/execution-mode-intelligence.md +242 -0
  83. package/references/git-integration.md +217 -0
  84. package/references/honesty-protocols.md +304 -0
  85. package/references/integration-architecture.md +470 -0
  86. package/references/issue-to-pr-pipeline.md +150 -0
  87. package/references/metrics-and-trends.md +234 -0
  88. package/references/playwright-e2e-testing.md +326 -0
  89. package/references/questioning.md +125 -0
  90. package/references/research-improvements.md +110 -0
  91. package/references/skills-usage-guide.md +429 -0
  92. package/references/tdd.md +131 -0
  93. package/references/testing-enforcement.md +192 -0
  94. package/references/ui-brand.md +383 -0
  95. package/references/validation-checklist.md +456 -0
  96. package/references/verification-patterns.md +187 -0
  97. package/references/warrior-principles.md +173 -0
  98. package/skills-library/SKILLS-INDEX.md +588 -0
  99. package/skills-library/_general/frontend/html-visual-reports.md +292 -0
  100. package/skills-library/_general/methodology/debug-swarm-researcher-escape-hatch.md +240 -0
  101. package/skills-library/_general/methodology/learncoding-agentic-pattern.md +114 -0
  102. package/skills-library/_general/methodology/shell-autonomous-loop-fixplan.md +238 -0
  103. package/skills-library/basics/api-rest-basics.md +162 -0
  104. package/skills-library/basics/env-variables.md +96 -0
  105. package/skills-library/basics/error-handling-basics.md +125 -0
  106. package/skills-library/basics/git-commit-conventions.md +106 -0
  107. package/skills-library/basics/readme-template.md +108 -0
  108. package/skills-library/common-tasks/async-await-patterns.md +157 -0
  109. package/skills-library/common-tasks/auth-jwt-basics.md +164 -0
  110. package/skills-library/common-tasks/database-schema-design.md +166 -0
  111. package/skills-library/common-tasks/file-upload-basics.md +166 -0
  112. package/skills-library/common-tasks/form-validation.md +159 -0
  113. package/skills-library/debugging/FAILURE_TAXONOMY_CLASSIFICATION.md +117 -0
  114. package/skills-library/debugging/THREE_AGENT_HYPOTHESIS_DEBUGGING.md +86 -0
  115. package/skills-library/methodology/BREATH_BASED_PARALLEL_EXECUTION.md +678 -0
  116. package/skills-library/methodology/CONFIDENCE_GATED_EXECUTION.md +243 -0
  117. package/skills-library/methodology/EVIDENCE_BASED_VALIDATION.md +308 -0
  118. package/skills-library/methodology/MULTI_PERSPECTIVE_CODE_REVIEW.md +330 -0
  119. package/skills-library/methodology/PATH_VERIFICATION_GATE.md +211 -0
  120. package/skills-library/methodology/REFLEXION_MEMORY_PATTERN.md +183 -0
  121. package/skills-library/methodology/RESEARCH_BACKED_WORKFLOW_UPGRADE.md +263 -0
  122. package/skills-library/methodology/SABBATH_REST_PATTERN.md +267 -0
  123. package/skills-library/methodology/STONE_AND_SCAFFOLD.md +220 -0
  124. package/skills-library/performance/cache-augmented-generation.md +172 -0
  125. package/skills-library/quality-safety/debugging-steps.md +147 -0
  126. package/skills-library/quality-safety/deployment-checklist.md +155 -0
  127. package/skills-library/quality-safety/security-checklist.md +204 -0
  128. package/skills-library/quality-safety/testing-basics.md +180 -0
  129. package/skills-library/security/agent-security-scanner.md +445 -0
  130. package/skills-library/specialists/api-architecture/api-designer.md +49 -0
  131. package/skills-library/specialists/api-architecture/graphql-architect.md +49 -0
  132. package/skills-library/specialists/api-architecture/mcp-developer.md +51 -0
  133. package/skills-library/specialists/api-architecture/microservices-architect.md +50 -0
  134. package/skills-library/specialists/api-architecture/websocket-engineer.md +48 -0
  135. package/skills-library/specialists/backend/django-expert.md +52 -0
  136. package/skills-library/specialists/backend/fastapi-expert.md +52 -0
  137. package/skills-library/specialists/backend/laravel-specialist.md +52 -0
  138. package/skills-library/specialists/backend/nestjs-expert.md +51 -0
  139. package/skills-library/specialists/backend/rails-expert.md +53 -0
  140. package/skills-library/specialists/backend/spring-boot-engineer.md +56 -0
  141. package/skills-library/specialists/data-ml/fine-tuning-expert.md +48 -0
  142. package/skills-library/specialists/data-ml/ml-pipeline.md +47 -0
  143. package/skills-library/specialists/data-ml/pandas-pro.md +47 -0
  144. package/skills-library/specialists/data-ml/rag-architect.md +51 -0
  145. package/skills-library/specialists/data-ml/spark-engineer.md +47 -0
  146. package/skills-library/specialists/frontend/angular-architect.md +52 -0
  147. package/skills-library/specialists/frontend/flutter-expert.md +51 -0
  148. package/skills-library/specialists/frontend/nextjs-developer.md +54 -0
  149. package/skills-library/specialists/frontend/react-native-expert.md +50 -0
  150. package/skills-library/specialists/frontend/vue-expert.md +51 -0
  151. package/skills-library/specialists/infrastructure/chaos-engineer.md +74 -0
  152. package/skills-library/specialists/infrastructure/cloud-architect.md +70 -0
  153. package/skills-library/specialists/infrastructure/database-optimizer.md +64 -0
  154. package/skills-library/specialists/infrastructure/devops-engineer.md +70 -0
  155. package/skills-library/specialists/infrastructure/kubernetes-specialist.md +52 -0
  156. package/skills-library/specialists/infrastructure/monitoring-expert.md +70 -0
  157. package/skills-library/specialists/infrastructure/sre-engineer.md +70 -0
  158. package/skills-library/specialists/infrastructure/terraform-engineer.md +51 -0
  159. package/skills-library/specialists/languages/cpp-pro.md +74 -0
  160. package/skills-library/specialists/languages/csharp-developer.md +69 -0
  161. package/skills-library/specialists/languages/dotnet-core-expert.md +54 -0
  162. package/skills-library/specialists/languages/golang-pro.md +51 -0
  163. package/skills-library/specialists/languages/java-architect.md +49 -0
  164. package/skills-library/specialists/languages/javascript-pro.md +68 -0
  165. package/skills-library/specialists/languages/kotlin-specialist.md +68 -0
  166. package/skills-library/specialists/languages/php-pro.md +49 -0
  167. package/skills-library/specialists/languages/python-pro.md +52 -0
  168. package/skills-library/specialists/languages/react-expert.md +51 -0
  169. package/skills-library/specialists/languages/rust-engineer.md +50 -0
  170. package/skills-library/specialists/languages/sql-pro.md +56 -0
  171. package/skills-library/specialists/languages/swift-expert.md +69 -0
  172. package/skills-library/specialists/languages/typescript-pro.md +51 -0
  173. package/skills-library/specialists/platform/atlassian-mcp.md +52 -0
  174. package/skills-library/specialists/platform/embedded-systems.md +53 -0
  175. package/skills-library/specialists/platform/game-developer.md +53 -0
  176. package/skills-library/specialists/platform/salesforce-developer.md +53 -0
  177. package/skills-library/specialists/platform/shopify-expert.md +49 -0
  178. package/skills-library/specialists/platform/wordpress-pro.md +49 -0
  179. package/skills-library/specialists/quality/code-documenter.md +51 -0
  180. package/skills-library/specialists/quality/code-reviewer.md +67 -0
  181. package/skills-library/specialists/quality/debugging-wizard.md +51 -0
  182. package/skills-library/specialists/quality/fullstack-guardian.md +51 -0
  183. package/skills-library/specialists/quality/legacy-modernizer.md +50 -0
  184. package/skills-library/specialists/quality/playwright-expert.md +65 -0
  185. package/skills-library/specialists/quality/spec-miner.md +56 -0
  186. package/skills-library/specialists/quality/test-master.md +65 -0
  187. package/skills-library/specialists/security/secure-code-guardian.md +55 -0
  188. package/skills-library/specialists/security/security-reviewer.md +53 -0
  189. package/skills-library/specialists/workflow/architecture-designer.md +53 -0
  190. package/skills-library/specialists/workflow/cli-developer.md +70 -0
  191. package/skills-library/specialists/workflow/feature-forge.md +65 -0
  192. package/skills-library/specialists/workflow/prompt-engineer.md +54 -0
  193. package/skills-library/specialists/workflow/the-fool.md +62 -0
  194. package/templates/ASSUMPTIONS.md +125 -0
  195. package/templates/BLOCKERS.md +73 -0
  196. package/templates/DECISION_LOG.md +116 -0
  197. package/templates/UAT.md +96 -0
  198. package/templates/blueprint.md +94 -0
  199. package/templates/brainstorm.md +185 -0
  200. package/templates/conscience.md +92 -0
  201. package/templates/fire-handoff.md +159 -0
  202. package/templates/metrics.md +67 -0
  203. package/templates/phase-prompt.md +142 -0
  204. package/templates/record.md +131 -0
  205. package/templates/review-report.md +117 -0
  206. package/templates/skills-index.md +157 -0
  207. package/templates/verification.md +149 -0
  208. package/templates/vision.md +79 -0
  209. package/validation-config.yml +793 -0
  210. package/version.json +7 -0
  211. package/workflows/execute-phase.md +732 -0
  212. package/workflows/handoff-session.md +678 -0
  213. package/workflows/new-project.md +578 -0
  214. package/workflows/plan-phase.md +592 -0
  215. package/workflows/verify-phase.md +874 -0
@@ -0,0 +1,793 @@
1
+ # Dominion Flow Validation Configuration
2
+ # Used by fire-verifier and /fire-4-verify command
3
+ #
4
+ # This configuration defines all 60 validation checks from the WARRIOR checklist
5
+ # organized into 10 categories, each worth 10 points (6 checks per category).
6
+ #
7
+ # Checks can be:
8
+ # - automated: Run via command with pass/fail result
9
+ # - semi-automated: Run via command but may need human interpretation
10
+ # - manual: Require human verification
11
+ #
12
+ # Version History:
13
+ # 1.0 - Initial comprehensive validation config
14
+
15
+ version: "1.0"
16
+
17
+ # ============================================================================
18
+ # AUTOMATED CHECKS CONFIGURATION
19
+ # These checks can be run automatically via command line
20
+ # ============================================================================
21
+
22
+ automated_checks:
23
+
24
+ # --------------------------------------------------------------------------
25
+ # Category 1: CODE QUALITY (10 points, 6 checks)
26
+ # Ensures code follows best practices and standards
27
+ # --------------------------------------------------------------------------
28
+ code_quality:
29
+ - name: "TypeScript Compilation"
30
+ description: "Verify TypeScript compiles without errors"
31
+ command: "npx tsc --noEmit"
32
+ required: true
33
+ timeout: 60
34
+ points: 1.67
35
+
36
+ - name: "ESLint Check"
37
+ description: "No linting errors or warnings"
38
+ command: "npx eslint . --ext .ts,.tsx --max-warnings 0"
39
+ required: true
40
+ timeout: 30
41
+ points: 1.67
42
+
43
+ - name: "Prettier Format"
44
+ description: "Code formatting is consistent"
45
+ command: "npx prettier --check ."
46
+ required: false
47
+ timeout: 30
48
+ points: 1.67
49
+
50
+ - name: "No Console Logs"
51
+ description: "No debug console.log statements in production code"
52
+ command: "grep -rn 'console.log' src/ --include='*.ts' --include='*.tsx' | grep -v '.test.' | grep -v '.spec.' | wc -l"
53
+ required: false
54
+ max_count: 0
55
+ timeout: 15
56
+ points: 1.67
57
+
58
+ - name: "No TODO/FIXME in Critical Paths"
59
+ description: "Critical code paths have no unresolved TODOs"
60
+ command: "grep -rn 'TODO\\|FIXME\\|XXX\\|HACK' src/ --include='*.ts' --include='*.tsx' | wc -l"
61
+ required: false
62
+ max_count: 5
63
+ timeout: 15
64
+ points: 1.67
65
+
66
+ - name: "Dead Code Detection"
67
+ description: "No unused exports or unreachable code"
68
+ command: "npx ts-prune --error"
69
+ required: false
70
+ timeout: 60
71
+ points: 1.65
72
+
73
+ # --------------------------------------------------------------------------
74
+ # Category 2: TESTING (10 points, 6 checks)
75
+ # Ensures adequate test coverage and passing tests
76
+ # --------------------------------------------------------------------------
77
+ testing:
78
+ - name: "Unit Tests Pass"
79
+ description: "All unit tests pass successfully"
80
+ command: "npm run test"
81
+ required: true
82
+ timeout: 120
83
+ points: 1.67
84
+
85
+ - name: "Unit Test Coverage"
86
+ description: "Unit test coverage meets threshold"
87
+ command: "npm run test -- --coverage --coverageThreshold='{\"global\":{\"branches\":80,\"functions\":80,\"lines\":80}}'"
88
+ required: true
89
+ timeout: 180
90
+ coverage_threshold: 80
91
+ points: 1.67
92
+
93
+ - name: "Integration Tests Pass"
94
+ description: "All integration tests pass successfully"
95
+ command: "npm run test:integration"
96
+ required: false
97
+ timeout: 300
98
+ points: 1.67
99
+
100
+ - name: "E2E Tests Pass"
101
+ description: "End-to-end tests pass in headless mode"
102
+ command: "npm run test:e2e"
103
+ required: false
104
+ timeout: 600
105
+ points: 1.67
106
+
107
+ - name: "No Skipped Tests"
108
+ description: "No tests marked as .skip or .only"
109
+ command: "grep -rn '\\.skip\\|\\.only' __tests__/ tests/ src/ --include='*.test.*' --include='*.spec.*' 2>/dev/null | wc -l"
110
+ required: false
111
+ max_count: 0
112
+ timeout: 15
113
+ points: 1.67
114
+
115
+ - name: "Test Isolation"
116
+ description: "Tests can run independently (no order dependency)"
117
+ command: "npm run test -- --runInBand --randomize"
118
+ required: false
119
+ timeout: 180
120
+ points: 1.65
121
+
122
+ # --------------------------------------------------------------------------
123
+ # Category 3: SECURITY (10 points, 6 checks)
124
+ # Ensures no security vulnerabilities or exposed secrets
125
+ # --------------------------------------------------------------------------
126
+ security:
127
+ - name: "Dependency Audit"
128
+ description: "No high/critical vulnerabilities in dependencies"
129
+ command: "npm audit --audit-level=high"
130
+ required: true
131
+ timeout: 30
132
+ points: 1.67
133
+
134
+ - name: "Secret Scan"
135
+ description: "No secrets, API keys, or credentials in code"
136
+ command: "npx secretlint \"**/*\""
137
+ required: true
138
+ timeout: 60
139
+ points: 1.67
140
+
141
+ - name: "SAST Scan"
142
+ description: "Static Application Security Testing passes"
143
+ command: "npx semgrep --config=auto . --error"
144
+ required: false
145
+ timeout: 120
146
+ points: 1.67
147
+
148
+ - name: "No Hardcoded URLs"
149
+ description: "Environment-specific URLs use env vars"
150
+ command: "grep -rn 'localhost:\\|127\\.0\\.0\\.1:\\|http://.*:' src/ --include='*.ts' --include='*.tsx' | grep -v 'test\\|spec\\|mock' | wc -l"
151
+ required: false
152
+ max_count: 0
153
+ timeout: 15
154
+ points: 1.67
155
+
156
+ - name: "Dependency License Check"
157
+ description: "All dependencies have compatible licenses"
158
+ command: "npx license-checker --onlyAllow 'MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;CC0-1.0;Unlicense'"
159
+ required: false
160
+ timeout: 30
161
+ points: 1.67
162
+
163
+ - name: "No Eval or Dynamic Code"
164
+ description: "No eval(), new Function(), or innerHTML assignments"
165
+ command: "grep -rn 'eval(\\|new Function(\\|innerHTML\\s*=' src/ --include='*.ts' --include='*.tsx' | wc -l"
166
+ required: false
167
+ max_count: 0
168
+ timeout: 15
169
+ points: 1.65
170
+
171
+ # --------------------------------------------------------------------------
172
+ # Category 4: PERFORMANCE (10 points, 6 checks)
173
+ # Ensures application meets performance requirements
174
+ # --------------------------------------------------------------------------
175
+ performance:
176
+ - name: "Bundle Size Check"
177
+ description: "Production bundle within size limits"
178
+ command: "npx bundlesize"
179
+ required: false
180
+ max_size: "500kb"
181
+ timeout: 60
182
+ points: 1.67
183
+
184
+ - name: "No Memory Leaks"
185
+ description: "No obvious memory leak patterns detected"
186
+ command: "grep -rn 'setInterval\\|addEventListener' src/ --include='*.ts' --include='*.tsx' -A5 | grep -v 'clearInterval\\|removeEventListener\\|useEffect.*return' | wc -l"
187
+ required: false
188
+ timeout: 15
189
+ points: 1.67
190
+
191
+ - name: "No Synchronous Heavy Operations"
192
+ description: "Heavy operations are async/non-blocking"
193
+ command: "grep -rn 'readFileSync\\|writeFileSync\\|execSync' src/ --include='*.ts' | wc -l"
194
+ required: false
195
+ max_count: 0
196
+ timeout: 15
197
+ points: 1.67
198
+
199
+ - name: "Lazy Loading Implemented"
200
+ description: "Large components use code splitting"
201
+ command: "grep -rn 'React.lazy\\|dynamic(\\|import(' src/ --include='*.tsx' | wc -l"
202
+ required: false
203
+ min_count: 1
204
+ timeout: 15
205
+ points: 1.67
206
+
207
+ - name: "No N+1 Query Patterns"
208
+ description: "Database queries don't have N+1 patterns"
209
+ command: "grep -rn 'for.*await.*find\\|forEach.*await.*query' src/ server/ --include='*.ts' | wc -l"
210
+ required: false
211
+ max_count: 0
212
+ timeout: 15
213
+ points: 1.67
214
+
215
+ - name: "Caching Strategy Exists"
216
+ description: "Appropriate caching is implemented"
217
+ command: "grep -rn 'cache\\|Cache\\|memoize\\|useMemo\\|useCallback' src/ --include='*.ts' --include='*.tsx' | wc -l"
218
+ required: false
219
+ min_count: 1
220
+ timeout: 15
221
+ points: 1.65
222
+
223
+ # --------------------------------------------------------------------------
224
+ # Category 5: DOCUMENTATION (10 points, 6 checks)
225
+ # Ensures code and project are well documented
226
+ # --------------------------------------------------------------------------
227
+ documentation:
228
+ - name: "README Exists"
229
+ description: "Project has a README.md file"
230
+ command: "test -f README.md && echo 'exists' || echo 'missing'"
231
+ required: true
232
+ expected_output: "exists"
233
+ timeout: 5
234
+ points: 1.67
235
+
236
+ - name: "README Has Required Sections"
237
+ description: "README contains setup, usage, and API documentation"
238
+ command: "grep -E '^#+.*(Setup|Install|Usage|API|Getting Started)' README.md | wc -l"
239
+ required: false
240
+ min_count: 3
241
+ timeout: 5
242
+ points: 1.67
243
+
244
+ - name: "API Documentation"
245
+ description: "API endpoints are documented (OpenAPI/Swagger)"
246
+ command: "test -f openapi.yaml -o -f swagger.json -o -f docs/api.md && echo 'exists' || echo 'missing'"
247
+ required: false
248
+ expected_output: "exists"
249
+ timeout: 5
250
+ points: 1.67
251
+
252
+ - name: "JSDoc Coverage"
253
+ description: "Public functions have JSDoc comments"
254
+ command: "grep -rn 'export.*function\\|export const.*=' src/ --include='*.ts' | wc -l"
255
+ required: false
256
+ timeout: 15
257
+ points: 1.67
258
+
259
+ - name: "CHANGELOG Exists"
260
+ description: "Project maintains a changelog"
261
+ command: "test -f CHANGELOG.md -o -f HISTORY.md && echo 'exists' || echo 'missing'"
262
+ required: false
263
+ expected_output: "exists"
264
+ timeout: 5
265
+ points: 1.67
266
+
267
+ - name: "Architecture Documentation"
268
+ description: "High-level architecture is documented"
269
+ command: "test -f docs/architecture.md -o -f ARCHITECTURE.md -o -d .planning && echo 'exists' || echo 'missing'"
270
+ required: false
271
+ expected_output: "exists"
272
+ timeout: 5
273
+ points: 1.65
274
+
275
+ # --------------------------------------------------------------------------
276
+ # Category 6: DATABASE (10 points, 6 checks)
277
+ # Ensures database design and operations are sound
278
+ # --------------------------------------------------------------------------
279
+ database:
280
+ - name: "Migrations Up-to-Date"
281
+ description: "All migrations have been applied"
282
+ command: "npx prisma migrate status 2>&1 | grep -q 'Database schema is up to date' && echo 'synced' || echo 'pending'"
283
+ required: true
284
+ expected_output: "synced"
285
+ timeout: 30
286
+ points: 1.67
287
+
288
+ - name: "Schema Valid"
289
+ description: "Database schema validates without errors"
290
+ command: "npx prisma validate"
291
+ required: true
292
+ timeout: 15
293
+ points: 1.67
294
+
295
+ - name: "Indexes Defined"
296
+ description: "Required indexes are defined in schema"
297
+ command: "grep -c '@@index\\|@unique\\|@@unique' prisma/schema.prisma 2>/dev/null || echo '0'"
298
+ required: false
299
+ min_count: 1
300
+ timeout: 5
301
+ points: 1.67
302
+
303
+ - name: "Foreign Keys Defined"
304
+ description: "Relationships have proper foreign key constraints"
305
+ command: "grep -c '@relation' prisma/schema.prisma 2>/dev/null || echo '0'"
306
+ required: false
307
+ min_count: 0
308
+ timeout: 5
309
+ points: 1.67
310
+
311
+ - name: "No Raw SQL Injection Risk"
312
+ description: "No string concatenation in SQL queries"
313
+ command: "grep -rn '\\$\\{.*\\}.*SELECT\\|\\$\\{.*\\}.*INSERT\\|\\$\\{.*\\}.*UPDATE\\|\\$\\{.*\\}.*DELETE' src/ server/ --include='*.ts' | wc -l"
314
+ required: false
315
+ max_count: 0
316
+ timeout: 15
317
+ points: 1.67
318
+
319
+ - name: "Seed Data Available"
320
+ description: "Database seed scripts exist for development"
321
+ command: "test -f prisma/seed.ts -o -f prisma/seed.js -o -f scripts/seed.ts && echo 'exists' || echo 'missing'"
322
+ required: false
323
+ expected_output: "exists"
324
+ timeout: 5
325
+ points: 1.65
326
+
327
+ # --------------------------------------------------------------------------
328
+ # Category 7: API DESIGN (10 points, 6 checks)
329
+ # Ensures API follows best practices
330
+ # --------------------------------------------------------------------------
331
+ api_design:
332
+ - name: "Consistent Response Format"
333
+ description: "API responses follow consistent structure"
334
+ command: "grep -rn 'res\\.json({' server/ src/api/ --include='*.ts' | head -20 | wc -l"
335
+ required: false
336
+ timeout: 15
337
+ points: 1.67
338
+
339
+ - name: "Error Handling Middleware"
340
+ description: "Global error handling is implemented"
341
+ command: "grep -rn 'app\\.use.*err.*req.*res\\|errorHandler\\|ErrorBoundary' server/ src/ --include='*.ts' --include='*.tsx' | wc -l"
342
+ required: false
343
+ min_count: 1
344
+ timeout: 15
345
+ points: 1.67
346
+
347
+ - name: "Input Validation"
348
+ description: "Request inputs are validated"
349
+ command: "grep -rn 'zod\\|joi\\|yup\\|class-validator\\|express-validator' src/ server/ --include='*.ts' | wc -l"
350
+ required: false
351
+ min_count: 1
352
+ timeout: 15
353
+ points: 1.67
354
+
355
+ - name: "Rate Limiting Configured"
356
+ description: "Rate limiting is implemented on API routes"
357
+ command: "grep -rn 'rateLimit\\|rate-limit\\|throttle' server/ src/ --include='*.ts' | wc -l"
358
+ required: false
359
+ min_count: 0
360
+ timeout: 15
361
+ points: 1.67
362
+
363
+ - name: "CORS Configured"
364
+ description: "CORS is properly configured"
365
+ command: "grep -rn 'cors(\\|Access-Control-Allow' server/ src/ --include='*.ts' | wc -l"
366
+ required: false
367
+ min_count: 1
368
+ timeout: 15
369
+ points: 1.67
370
+
371
+ - name: "API Versioning"
372
+ description: "API versioning strategy is implemented"
373
+ command: "grep -rn '/api/v[0-9]\\|/v[0-9]/' server/ src/ --include='*.ts' | wc -l"
374
+ required: false
375
+ min_count: 0
376
+ timeout: 15
377
+ points: 1.65
378
+
379
+ # --------------------------------------------------------------------------
380
+ # Category 8: INFRASTRUCTURE (10 points, 6 checks)
381
+ # Ensures deployment and infrastructure readiness
382
+ # --------------------------------------------------------------------------
383
+ infrastructure:
384
+ - name: "Dockerfile Exists"
385
+ description: "Project can be containerized"
386
+ command: "test -f Dockerfile && echo 'exists' || echo 'missing'"
387
+ required: false
388
+ expected_output: "exists"
389
+ timeout: 5
390
+ points: 1.67
391
+
392
+ - name: "Docker Compose Available"
393
+ description: "Multi-container setup is defined"
394
+ command: "test -f docker-compose.yml -o -f docker-compose.yaml -o -f compose.yml && echo 'exists' || echo 'missing'"
395
+ required: false
396
+ expected_output: "exists"
397
+ timeout: 5
398
+ points: 1.67
399
+
400
+ - name: "Environment Template"
401
+ description: "Environment variable template exists"
402
+ command: "test -f .env.example -o -f .env.template -o -f .env.sample && echo 'exists' || echo 'missing'"
403
+ required: true
404
+ expected_output: "exists"
405
+ timeout: 5
406
+ points: 1.67
407
+
408
+ - name: "Health Check Endpoint"
409
+ description: "Application has health check endpoint"
410
+ command: "grep -rn '/health\\|/healthz\\|/ready\\|/live' server/ src/ --include='*.ts' | wc -l"
411
+ required: false
412
+ min_count: 1
413
+ timeout: 15
414
+ points: 1.67
415
+
416
+ - name: "Logging Configured"
417
+ description: "Structured logging is implemented"
418
+ command: "grep -rn 'winston\\|pino\\|bunyan\\|log4js\\|logger\\.' server/ src/ --include='*.ts' | wc -l"
419
+ required: false
420
+ min_count: 1
421
+ timeout: 15
422
+ points: 1.67
423
+
424
+ - name: "Graceful Shutdown"
425
+ description: "Application handles SIGTERM gracefully"
426
+ command: "grep -rn 'SIGTERM\\|SIGINT\\|graceful' server/ src/ --include='*.ts' | wc -l"
427
+ required: false
428
+ min_count: 0
429
+ timeout: 15
430
+ points: 1.65
431
+
432
+ # --------------------------------------------------------------------------
433
+ # Category 9: GIT & VERSION CONTROL (10 points, 6 checks)
434
+ # Ensures proper version control practices
435
+ # --------------------------------------------------------------------------
436
+ version_control:
437
+ - name: "Gitignore Complete"
438
+ description: "Sensitive and build files are ignored"
439
+ command: "grep -E 'node_modules|.env$|\\.env\\.local|dist/|build/|coverage/' .gitignore | wc -l"
440
+ required: true
441
+ min_count: 3
442
+ timeout: 5
443
+ points: 1.67
444
+
445
+ - name: "No Secrets in Git History"
446
+ description: "Git history doesn't contain secrets"
447
+ command: "git log -p --all -S 'password=' --oneline 2>/dev/null | head -5 | wc -l"
448
+ required: false
449
+ max_count: 0
450
+ timeout: 30
451
+ points: 1.67
452
+
453
+ - name: "Branch Protection Reminder"
454
+ description: "Main branch should have protection rules"
455
+ command: "git branch --show-current"
456
+ required: false
457
+ timeout: 5
458
+ points: 1.67
459
+ note: "Manual verification required for branch protection rules"
460
+
461
+ - name: "Commit Message Convention"
462
+ description: "Recent commits follow conventional format"
463
+ command: "git log --oneline -10 | grep -E '^[a-f0-9]+ (feat|fix|docs|style|refactor|test|chore|perf|ci|build|revert)(\\(.*\\))?:' | wc -l"
464
+ required: false
465
+ min_count: 5
466
+ timeout: 10
467
+ points: 1.67
468
+
469
+ - name: "No Large Files"
470
+ description: "Repository doesn't contain large binary files"
471
+ command: "find . -type f -size +10M -not -path './.git/*' -not -path './node_modules/*' 2>/dev/null | wc -l"
472
+ required: false
473
+ max_count: 0
474
+ timeout: 30
475
+ points: 1.67
476
+
477
+ - name: "Clean Working Directory"
478
+ description: "No uncommitted changes before deploy"
479
+ command: "git status --porcelain | wc -l"
480
+ required: false
481
+ max_count: 0
482
+ timeout: 5
483
+ points: 1.65
484
+
485
+ # --------------------------------------------------------------------------
486
+ # Category 10: ACCESSIBILITY & UX (10 points, 6 checks)
487
+ # Ensures frontend accessibility and user experience
488
+ # --------------------------------------------------------------------------
489
+ accessibility:
490
+ - name: "ARIA Labels Present"
491
+ description: "Interactive elements have ARIA labels"
492
+ command: "grep -rn 'aria-label\\|aria-labelledby\\|aria-describedby' src/ --include='*.tsx' --include='*.jsx' | wc -l"
493
+ required: false
494
+ min_count: 1
495
+ timeout: 15
496
+ points: 1.67
497
+
498
+ - name: "Alt Text on Images"
499
+ description: "Images have alt text"
500
+ command: "grep -rn '<img' src/ --include='*.tsx' --include='*.jsx' | grep -v 'alt=' | wc -l"
501
+ required: false
502
+ max_count: 0
503
+ timeout: 15
504
+ points: 1.67
505
+
506
+ - name: "Semantic HTML"
507
+ description: "Semantic HTML elements are used"
508
+ command: "grep -rn '<header\\|<footer\\|<main\\|<nav\\|<section\\|<article\\|<aside' src/ --include='*.tsx' --include='*.jsx' | wc -l"
509
+ required: false
510
+ min_count: 1
511
+ timeout: 15
512
+ points: 1.67
513
+
514
+ - name: "Keyboard Navigation"
515
+ description: "Interactive elements are keyboard accessible"
516
+ command: "grep -rn 'onKeyDown\\|onKeyUp\\|onKeyPress\\|tabIndex' src/ --include='*.tsx' --include='*.jsx' | wc -l"
517
+ required: false
518
+ min_count: 0
519
+ timeout: 15
520
+ points: 1.67
521
+
522
+ - name: "Color Contrast"
523
+ description: "UI components use accessible color contrast"
524
+ command: "grep -rn 'text-gray-[1-3]00\\|text-white.*bg-gray-[1-3]00' src/ --include='*.tsx' | wc -l"
525
+ required: false
526
+ max_count: 0
527
+ timeout: 15
528
+ points: 1.67
529
+ note: "Low contrast color combinations that may fail WCAG"
530
+
531
+ - name: "Focus Indicators"
532
+ description: "Focus states are visible"
533
+ command: "grep -rn 'focus:\\|:focus\\|focus-visible' src/ --include='*.tsx' --include='*.css' --include='*.scss' | wc -l"
534
+ required: false
535
+ min_count: 1
536
+ timeout: 15
537
+ points: 1.65
538
+
539
+
540
+ # ============================================================================
541
+ # SCORING CONFIGURATION
542
+ # Defines how checks are weighted and scored
543
+ # ============================================================================
544
+
545
+ scoring:
546
+ # Total possible score: 70 points (7 categories x 10 points)
547
+ max_score: 70
548
+
549
+ # Category weights (all equal at 10 points each)
550
+ categories:
551
+ code_quality:
552
+ weight: 10
553
+ checks: 6
554
+ description: "Code follows standards and best practices"
555
+
556
+ testing:
557
+ weight: 10
558
+ checks: 6
559
+ description: "Adequate test coverage and all tests pass"
560
+
561
+ security:
562
+ weight: 10
563
+ checks: 6
564
+ description: "No vulnerabilities or exposed secrets"
565
+
566
+ performance:
567
+ weight: 10
568
+ checks: 6
569
+ description: "Application meets performance requirements"
570
+
571
+ documentation:
572
+ weight: 10
573
+ checks: 6
574
+ description: "Code and project are well documented"
575
+
576
+ database:
577
+ weight: 10
578
+ checks: 6
579
+ description: "Database design and operations are sound"
580
+
581
+ api_design:
582
+ weight: 10
583
+ checks: 6
584
+ description: "API follows best practices"
585
+
586
+ infrastructure:
587
+ weight: 10
588
+ checks: 6
589
+ description: "Deployment and infrastructure ready"
590
+
591
+ version_control:
592
+ weight: 10
593
+ checks: 6
594
+ description: "Proper version control practices"
595
+
596
+ accessibility:
597
+ weight: 10
598
+ checks: 6
599
+ description: "Frontend accessibility and UX"
600
+
601
+ # Score thresholds for deploy decisions
602
+ thresholds:
603
+ excellent: 63 # 90% - Ship with confidence
604
+ good: 56 # 80% - Ship with minor follow-ups
605
+ conditional: 49 # 70% - Ship with documented tech debt
606
+ minimum: 42 # 60% - Requires justification to ship
607
+
608
+ # Deploy recommendations based on score
609
+ recommendations:
610
+ - range: [63, 70]
611
+ status: "EXCELLENT"
612
+ decision: "Deploy immediately"
613
+ message: "All critical checks pass, code is production-ready"
614
+
615
+ - range: [48, 53]
616
+ status: "GOOD"
617
+ decision: "Deploy with follow-up"
618
+ message: "Minor issues to address in next sprint"
619
+
620
+ - range: [42, 47]
621
+ status: "CONDITIONAL"
622
+ decision: "Deploy with tech debt ticket"
623
+ message: "Document known issues, plan remediation"
624
+
625
+ - range: [36, 41]
626
+ status: "MINIMUM"
627
+ decision: "Requires approval"
628
+ message: "Stakeholder sign-off needed on risks"
629
+
630
+ - range: [0, 35]
631
+ status: "FAIL"
632
+ decision: "Do not deploy"
633
+ message: "Critical issues must be resolved first"
634
+
635
+
636
+ # ============================================================================
637
+ # MANUAL CHECKS CONFIGURATION
638
+ # These checks require human verification
639
+ # ============================================================================
640
+
641
+ manual_checks:
642
+ code_quality:
643
+ - name: "Code review completed"
644
+ description: "At least one team member has reviewed the code"
645
+ verification: "Check PR has approved review"
646
+
647
+ - name: "No copy-paste code"
648
+ description: "DRY principle followed, no duplicated logic"
649
+ verification: "Manual code inspection"
650
+
651
+ security:
652
+ - name: "No hardcoded credentials"
653
+ description: "Verify no passwords, API keys, or secrets in code"
654
+ verification: "Search for common patterns: password=, apiKey=, secret="
655
+
656
+ - name: "Authentication tested"
657
+ description: "Auth flows work correctly and securely"
658
+ verification: "Test login, logout, token refresh, protected routes"
659
+
660
+ - name: "Authorization verified"
661
+ description: "Users can only access their own resources"
662
+ verification: "Test accessing other users' data returns 403"
663
+
664
+ documentation:
665
+ - name: "Setup instructions current"
666
+ description: "Verify README setup steps work on fresh install"
667
+ verification: "Clone repo, follow README, verify app runs"
668
+
669
+ - name: "API examples work"
670
+ description: "Code examples in docs are copy-paste runnable"
671
+ verification: "Test each API example manually"
672
+
673
+ testing:
674
+ - name: "Edge cases covered"
675
+ description: "Tests include boundary conditions and error paths"
676
+ verification: "Review test files for edge case coverage"
677
+
678
+ - name: "Realistic test data"
679
+ description: "Tests use production-like data, not trivial examples"
680
+ verification: "Review test fixtures and mocks"
681
+
682
+ performance:
683
+ - name: "Load tested"
684
+ description: "Application handles expected concurrent users"
685
+ verification: "Run load test, verify response times under load"
686
+
687
+ - name: "Mobile performance"
688
+ description: "Application performs well on mobile devices"
689
+ verification: "Test on real device or Chrome DevTools throttling"
690
+
691
+ ux:
692
+ - name: "User flows tested"
693
+ description: "Key user journeys work end-to-end"
694
+ verification: "Walk through main user flows manually"
695
+
696
+ - name: "Error messages helpful"
697
+ description: "Error messages guide users to resolution"
698
+ verification: "Trigger errors, verify messages are actionable"
699
+
700
+
701
+ # ============================================================================
702
+ # EXECUTION CONFIGURATION
703
+ # Controls how validations are run
704
+ # ============================================================================
705
+
706
+ execution:
707
+ # Parallel execution settings
708
+ parallel:
709
+ enabled: true
710
+ max_concurrent: 4
711
+
712
+ # Timeout settings (in seconds)
713
+ timeouts:
714
+ default: 60
715
+ long_running: 300
716
+ e2e: 600
717
+
718
+ # Retry settings for flaky checks
719
+ retry:
720
+ enabled: true
721
+ max_attempts: 2
722
+ delay_seconds: 5
723
+
724
+ # Output settings
725
+ output:
726
+ format: "detailed" # "summary" | "detailed" | "json"
727
+ show_commands: true
728
+ show_output: true
729
+ color: true
730
+
731
+ # Skip settings
732
+ skip:
733
+ # Categories to skip (e.g., if no frontend)
734
+ categories: []
735
+ # Individual checks to skip by name
736
+ checks: []
737
+
738
+ # Environment-specific overrides
739
+ environments:
740
+ development:
741
+ skip_categories: []
742
+ required_score: 36
743
+
744
+ staging:
745
+ skip_categories: []
746
+ required_score: 42
747
+
748
+ production:
749
+ skip_categories: []
750
+ required_score: 48
751
+
752
+
753
+ # ============================================================================
754
+ # CUSTOM PROJECT OVERRIDES
755
+ # Add project-specific check modifications here
756
+ # ============================================================================
757
+
758
+ project_overrides:
759
+ # Example: Override bundle size for specific project
760
+ # performance:
761
+ # "Bundle Size Check":
762
+ # max_size: "750kb"
763
+
764
+ # Example: Skip certain checks for this project
765
+ # skip_checks:
766
+ # - "E2E Tests Pass"
767
+ # - "API Versioning"
768
+
769
+
770
+ # ============================================================================
771
+ # REPORTING CONFIGURATION
772
+ # Controls validation report generation
773
+ # ============================================================================
774
+
775
+ reporting:
776
+ # Report file settings
777
+ file:
778
+ enabled: true
779
+ path: ".validation-report.json"
780
+ include_command_output: false
781
+
782
+ # Markdown report for PRs
783
+ markdown:
784
+ enabled: true
785
+ path: ".validation-report.md"
786
+ include_checklist: true
787
+
788
+ # Slack/Teams notification
789
+ notifications:
790
+ enabled: false
791
+ webhook_url: "${VALIDATION_WEBHOOK_URL}"
792
+ on_failure: true
793
+ on_success: false