specweave 0.21.2 → 0.22.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 (598) hide show
  1. package/CLAUDE.md +429 -10
  2. package/README.md +33 -3
  3. package/dist/plugins/specweave-github/lib/CodeValidator.d.ts +101 -0
  4. package/dist/plugins/specweave-github/lib/CodeValidator.d.ts.map +1 -0
  5. package/dist/plugins/specweave-github/lib/CodeValidator.js +219 -0
  6. package/dist/plugins/specweave-github/lib/CodeValidator.js.map +1 -0
  7. package/dist/plugins/specweave-github/lib/IssueStateManager.d.ts +98 -0
  8. package/dist/plugins/specweave-github/lib/IssueStateManager.d.ts.map +1 -0
  9. package/dist/plugins/specweave-github/lib/IssueStateManager.js +146 -0
  10. package/dist/plugins/specweave-github/lib/IssueStateManager.js.map +1 -0
  11. package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.d.ts +182 -0
  12. package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.d.ts.map +1 -0
  13. package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.js +603 -0
  14. package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.js.map +1 -0
  15. package/dist/plugins/specweave-github/lib/types.d.ts +34 -0
  16. package/dist/plugins/specweave-github/lib/types.d.ts.map +1 -1
  17. package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts.map +1 -1
  18. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js +6 -0
  19. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js.map +1 -1
  20. package/dist/src/cli/commands/check-hooks.d.ts +11 -0
  21. package/dist/src/cli/commands/check-hooks.d.ts.map +1 -0
  22. package/dist/src/cli/commands/check-hooks.js +144 -0
  23. package/dist/src/cli/commands/check-hooks.js.map +1 -0
  24. package/dist/src/cli/commands/cicd-monitor.js +3 -3
  25. package/dist/src/cli/commands/cicd-monitor.js.map +1 -1
  26. package/dist/src/cli/commands/import-docs.js +2 -2
  27. package/dist/src/cli/commands/import-docs.js.map +1 -1
  28. package/dist/src/cli/commands/init-multiproject.js +4 -4
  29. package/dist/src/cli/commands/init-multiproject.js.map +1 -1
  30. package/dist/src/cli/commands/init.d.ts.map +1 -1
  31. package/dist/src/cli/commands/init.js +60 -5
  32. package/dist/src/cli/commands/init.js.map +1 -1
  33. package/dist/src/cli/commands/migrate-to-multiproject.js +3 -3
  34. package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -1
  35. package/dist/src/cli/commands/plan/agent-invoker.d.ts +79 -0
  36. package/dist/src/cli/commands/plan/agent-invoker.d.ts.map +1 -0
  37. package/dist/src/cli/commands/plan/agent-invoker.js +383 -0
  38. package/dist/src/cli/commands/plan/agent-invoker.js.map +1 -0
  39. package/dist/src/cli/commands/plan/increment-detector.d.ts +27 -0
  40. package/dist/src/cli/commands/plan/increment-detector.d.ts.map +1 -0
  41. package/dist/src/cli/commands/plan/increment-detector.js +159 -0
  42. package/dist/src/cli/commands/plan/increment-detector.js.map +1 -0
  43. package/dist/src/cli/commands/plan/plan-orchestrator.d.ts +45 -0
  44. package/dist/src/cli/commands/plan/plan-orchestrator.d.ts.map +1 -0
  45. package/dist/src/cli/commands/plan/plan-orchestrator.js +229 -0
  46. package/dist/src/cli/commands/plan/plan-orchestrator.js.map +1 -0
  47. package/dist/src/cli/commands/plan/plan-validator.d.ts +36 -0
  48. package/dist/src/cli/commands/plan/plan-validator.d.ts.map +1 -0
  49. package/dist/src/cli/commands/plan/plan-validator.js +174 -0
  50. package/dist/src/cli/commands/plan/plan-validator.js.map +1 -0
  51. package/dist/src/cli/commands/plan/types.d.ts +170 -0
  52. package/dist/src/cli/commands/plan/types.d.ts.map +1 -0
  53. package/dist/src/cli/commands/plan/types.js +42 -0
  54. package/dist/src/cli/commands/plan/types.js.map +1 -0
  55. package/dist/src/cli/commands/plan-command.d.ts +16 -0
  56. package/dist/src/cli/commands/plan-command.d.ts.map +1 -0
  57. package/dist/src/cli/commands/plan-command.js +127 -0
  58. package/dist/src/cli/commands/plan-command.js.map +1 -0
  59. package/dist/src/cli/commands/switch-project.js +3 -3
  60. package/dist/src/cli/commands/switch-project.js.map +1 -1
  61. package/dist/src/cli/commands/validate-parent-repo.js +1 -1
  62. package/dist/src/cli/commands/validate-parent-repo.js.map +1 -1
  63. package/dist/src/config/ConfigManager.d.ts +69 -0
  64. package/dist/src/config/ConfigManager.d.ts.map +1 -0
  65. package/dist/src/config/ConfigManager.js +130 -0
  66. package/dist/src/config/ConfigManager.js.map +1 -0
  67. package/dist/src/config/types.d.ts +1357 -0
  68. package/dist/src/config/types.d.ts.map +1 -0
  69. package/dist/src/config/types.js +67 -0
  70. package/dist/src/config/types.js.map +1 -0
  71. package/dist/src/core/brownfield/importer.d.ts +1 -1
  72. package/dist/src/core/brownfield/importer.d.ts.map +1 -1
  73. package/dist/src/core/brownfield/importer.js +3 -3
  74. package/dist/src/core/brownfield/importer.js.map +1 -1
  75. package/dist/src/core/cicd/config-loader.d.ts +1 -1
  76. package/dist/src/core/cicd/config-loader.d.ts.map +1 -1
  77. package/dist/src/core/cicd/index.d.ts +6 -6
  78. package/dist/src/core/cicd/index.d.ts.map +1 -1
  79. package/dist/src/core/cicd/index.js +6 -6
  80. package/dist/src/core/cicd/index.js.map +1 -1
  81. package/dist/src/core/cicd/monitor-service.d.ts +3 -3
  82. package/dist/src/core/cicd/monitor-service.d.ts.map +1 -1
  83. package/dist/src/core/cicd/monitor-service.js +3 -3
  84. package/dist/src/core/cicd/monitor-service.js.map +1 -1
  85. package/dist/src/core/cicd/notifier.d.ts +1 -1
  86. package/dist/src/core/cicd/notifier.d.ts.map +1 -1
  87. package/dist/src/core/cicd/state-manager.d.ts +1 -1
  88. package/dist/src/core/cicd/state-manager.d.ts.map +1 -1
  89. package/dist/src/core/cicd/state-manager.js +1 -1
  90. package/dist/src/core/cicd/state-manager.js.map +1 -1
  91. package/dist/src/core/cicd/workflow-monitor.d.ts +1 -1
  92. package/dist/src/core/cicd/workflow-monitor.d.ts.map +1 -1
  93. package/dist/src/core/cicd/workflow-monitor.js +1 -1
  94. package/dist/src/core/cicd/workflow-monitor.js.map +1 -1
  95. package/dist/src/core/cost-tracker.d.ts +2 -2
  96. package/dist/src/core/cost-tracker.d.ts.map +1 -1
  97. package/dist/src/core/cost-tracker.js +1 -1
  98. package/dist/src/core/cost-tracker.js.map +1 -1
  99. package/dist/src/core/hooks/HealthReporter.d.ts +55 -0
  100. package/dist/src/core/hooks/HealthReporter.d.ts.map +1 -0
  101. package/dist/src/core/hooks/HealthReporter.js +268 -0
  102. package/dist/src/core/hooks/HealthReporter.js.map +1 -0
  103. package/dist/src/core/hooks/HookAutoFixer.d.ts +41 -0
  104. package/dist/src/core/hooks/HookAutoFixer.d.ts.map +1 -0
  105. package/dist/src/core/hooks/HookAutoFixer.js +222 -0
  106. package/dist/src/core/hooks/HookAutoFixer.js.map +1 -0
  107. package/dist/src/core/hooks/HookExecutor.d.ts +57 -0
  108. package/dist/src/core/hooks/HookExecutor.d.ts.map +1 -0
  109. package/dist/src/core/hooks/HookExecutor.js +287 -0
  110. package/dist/src/core/hooks/HookExecutor.js.map +1 -0
  111. package/dist/src/core/hooks/HookHealthChecker.d.ts +51 -0
  112. package/dist/src/core/hooks/HookHealthChecker.d.ts.map +1 -0
  113. package/dist/src/core/hooks/HookHealthChecker.js +212 -0
  114. package/dist/src/core/hooks/HookHealthChecker.js.map +1 -0
  115. package/dist/src/core/hooks/HookScanner.d.ts +65 -0
  116. package/dist/src/core/hooks/HookScanner.d.ts.map +1 -0
  117. package/dist/src/core/hooks/HookScanner.js +214 -0
  118. package/dist/src/core/hooks/HookScanner.js.map +1 -0
  119. package/dist/src/core/hooks/types.d.ts +281 -0
  120. package/dist/src/core/hooks/types.d.ts.map +1 -0
  121. package/dist/src/core/hooks/types.js +10 -0
  122. package/dist/src/core/hooks/types.js.map +1 -0
  123. package/dist/src/core/iac/index.d.ts +10 -0
  124. package/dist/src/core/iac/index.d.ts.map +1 -0
  125. package/dist/src/core/iac/index.js +11 -0
  126. package/dist/src/core/iac/index.js.map +1 -0
  127. package/dist/src/core/iac/template-engine.d.ts +77 -0
  128. package/dist/src/core/iac/template-engine.d.ts.map +1 -0
  129. package/dist/src/core/iac/template-engine.js +182 -0
  130. package/dist/src/core/iac/template-engine.js.map +1 -0
  131. package/dist/src/core/increment/ac-status-manager.d.ts +115 -0
  132. package/dist/src/core/increment/ac-status-manager.d.ts.map +1 -0
  133. package/dist/src/core/increment/ac-status-manager.js +343 -0
  134. package/dist/src/core/increment/ac-status-manager.js.map +1 -0
  135. package/dist/src/core/increment/auto-transition-manager.d.ts +60 -0
  136. package/dist/src/core/increment/auto-transition-manager.d.ts.map +1 -0
  137. package/dist/src/core/increment/auto-transition-manager.js +192 -0
  138. package/dist/src/core/increment/auto-transition-manager.js.map +1 -0
  139. package/dist/src/core/increment/limits.d.ts +1 -1
  140. package/dist/src/core/increment/limits.d.ts.map +1 -1
  141. package/dist/src/core/increment/limits.js +2 -2
  142. package/dist/src/core/increment/limits.js.map +1 -1
  143. package/dist/src/core/increment/spec-sync-manager.d.ts +177 -0
  144. package/dist/src/core/increment/spec-sync-manager.d.ts.map +1 -0
  145. package/dist/src/core/increment/spec-sync-manager.js +496 -0
  146. package/dist/src/core/increment/spec-sync-manager.js.map +1 -0
  147. package/dist/src/core/increment/status-auto-transition.d.ts +46 -0
  148. package/dist/src/core/increment/status-auto-transition.d.ts.map +1 -0
  149. package/dist/src/core/increment/status-auto-transition.js +178 -0
  150. package/dist/src/core/increment/status-auto-transition.js.map +1 -0
  151. package/dist/src/core/increment/task-state-manager.d.ts +75 -0
  152. package/dist/src/core/increment/task-state-manager.d.ts.map +1 -0
  153. package/dist/src/core/increment/task-state-manager.js +117 -0
  154. package/dist/src/core/increment/task-state-manager.js.map +1 -0
  155. package/dist/src/core/living-docs/CodeValidator.d.ts +68 -0
  156. package/dist/src/core/living-docs/CodeValidator.d.ts.map +1 -0
  157. package/dist/src/core/living-docs/CodeValidator.js +160 -0
  158. package/dist/src/core/living-docs/CodeValidator.js.map +1 -0
  159. package/dist/src/core/living-docs/CompletionPropagator.d.ts +84 -0
  160. package/dist/src/core/living-docs/CompletionPropagator.d.ts.map +1 -0
  161. package/dist/src/core/living-docs/CompletionPropagator.js +206 -0
  162. package/dist/src/core/living-docs/CompletionPropagator.js.map +1 -0
  163. package/dist/src/core/living-docs/ProjectDetector.d.ts +29 -0
  164. package/dist/src/core/living-docs/ProjectDetector.d.ts.map +1 -0
  165. package/dist/src/core/living-docs/ProjectDetector.js +94 -0
  166. package/dist/src/core/living-docs/ProjectDetector.js.map +1 -0
  167. package/dist/src/core/living-docs/SpecDistributor.d.ts +60 -0
  168. package/dist/src/core/living-docs/SpecDistributor.d.ts.map +1 -0
  169. package/dist/src/core/living-docs/SpecDistributor.js +228 -0
  170. package/dist/src/core/living-docs/SpecDistributor.js.map +1 -0
  171. package/dist/src/core/living-docs/ThreeLayerSyncManager.d.ts +116 -0
  172. package/dist/src/core/living-docs/ThreeLayerSyncManager.d.ts.map +1 -0
  173. package/dist/src/core/living-docs/ThreeLayerSyncManager.js +356 -0
  174. package/dist/src/core/living-docs/ThreeLayerSyncManager.js.map +1 -0
  175. package/dist/src/core/living-docs/hierarchy-mapper.d.ts.map +1 -1
  176. package/dist/src/core/living-docs/hierarchy-mapper.js +2 -1
  177. package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
  178. package/dist/src/core/living-docs/index.d.ts +1 -1
  179. package/dist/src/core/living-docs/index.d.ts.map +1 -1
  180. package/dist/src/core/living-docs/index.js +5 -1
  181. package/dist/src/core/living-docs/index.js.map +1 -1
  182. package/dist/src/core/living-docs/project-detector.d.ts.map +1 -1
  183. package/dist/src/core/living-docs/project-detector.js +38 -0
  184. package/dist/src/core/living-docs/project-detector.js.map +1 -1
  185. package/dist/src/core/living-docs/types.d.ts +70 -300
  186. package/dist/src/core/living-docs/types.d.ts.map +1 -1
  187. package/dist/src/core/living-docs/types.js +2 -10
  188. package/dist/src/core/living-docs/types.js.map +1 -1
  189. package/dist/src/core/project-manager.d.ts +1 -1
  190. package/dist/src/core/project-manager.d.ts.map +1 -1
  191. package/dist/src/core/project-manager.js +2 -2
  192. package/dist/src/core/project-manager.js.map +1 -1
  193. package/dist/src/core/qa/quality-gate-decider.d.ts +1 -1
  194. package/dist/src/core/qa/quality-gate-decider.d.ts.map +1 -1
  195. package/dist/src/core/qa/risk-calculator.d.ts +1 -1
  196. package/dist/src/core/qa/risk-calculator.d.ts.map +1 -1
  197. package/dist/src/core/repo-structure/setup-summary.d.ts +1 -1
  198. package/dist/src/core/repo-structure/setup-summary.d.ts.map +1 -1
  199. package/dist/src/core/rfc-generator-v2.d.ts +1 -1
  200. package/dist/src/core/rfc-generator-v2.d.ts.map +1 -1
  201. package/dist/src/core/rfc-generator-v2.js +1 -1
  202. package/dist/src/core/rfc-generator-v2.js.map +1 -1
  203. package/dist/src/core/serverless/context-detector.d.ts +12 -0
  204. package/dist/src/core/serverless/context-detector.d.ts.map +1 -0
  205. package/dist/src/core/serverless/context-detector.js +213 -0
  206. package/dist/src/core/serverless/context-detector.js.map +1 -0
  207. package/dist/src/core/serverless/cost-comparison.d.ts +73 -0
  208. package/dist/src/core/serverless/cost-comparison.d.ts.map +1 -0
  209. package/dist/src/core/serverless/cost-comparison.js +198 -0
  210. package/dist/src/core/serverless/cost-comparison.js.map +1 -0
  211. package/dist/src/core/serverless/cost-estimator.d.ts +69 -0
  212. package/dist/src/core/serverless/cost-estimator.d.ts.map +1 -0
  213. package/dist/src/core/serverless/cost-estimator.js +127 -0
  214. package/dist/src/core/serverless/cost-estimator.js.map +1 -0
  215. package/dist/src/core/serverless/cost-optimizer.d.ts +57 -0
  216. package/dist/src/core/serverless/cost-optimizer.d.ts.map +1 -0
  217. package/dist/src/core/serverless/cost-optimizer.js +221 -0
  218. package/dist/src/core/serverless/cost-optimizer.js.map +1 -0
  219. package/dist/src/core/serverless/index.d.ts +20 -0
  220. package/dist/src/core/serverless/index.d.ts.map +1 -0
  221. package/dist/src/core/serverless/index.js +26 -0
  222. package/dist/src/core/serverless/index.js.map +1 -0
  223. package/dist/src/core/serverless/learning-path-recommender.d.ts +152 -0
  224. package/dist/src/core/serverless/learning-path-recommender.d.ts.map +1 -0
  225. package/dist/src/core/serverless/learning-path-recommender.js +389 -0
  226. package/dist/src/core/serverless/learning-path-recommender.js.map +1 -0
  227. package/dist/src/core/serverless/platform-data-loader.d.ts +22 -0
  228. package/dist/src/core/serverless/platform-data-loader.d.ts.map +1 -0
  229. package/dist/src/core/serverless/platform-data-loader.js +49 -0
  230. package/dist/src/core/serverless/platform-data-loader.js.map +1 -0
  231. package/dist/src/core/serverless/platform-selector.d.ts +20 -0
  232. package/dist/src/core/serverless/platform-selector.d.ts.map +1 -0
  233. package/dist/src/core/serverless/platform-selector.js +279 -0
  234. package/dist/src/core/serverless/platform-selector.js.map +1 -0
  235. package/dist/src/core/serverless/recommendation-formatter.d.ts +24 -0
  236. package/dist/src/core/serverless/recommendation-formatter.d.ts.map +1 -0
  237. package/dist/src/core/serverless/recommendation-formatter.js +70 -0
  238. package/dist/src/core/serverless/recommendation-formatter.js.map +1 -0
  239. package/dist/src/core/serverless/suitability-analyzer.d.ts +22 -0
  240. package/dist/src/core/serverless/suitability-analyzer.d.ts.map +1 -0
  241. package/dist/src/core/serverless/suitability-analyzer.js +262 -0
  242. package/dist/src/core/serverless/suitability-analyzer.js.map +1 -0
  243. package/dist/src/core/serverless/types.d.ts +96 -0
  244. package/dist/src/core/serverless/types.d.ts.map +1 -0
  245. package/dist/src/core/serverless/types.js +5 -0
  246. package/dist/src/core/serverless/types.js.map +1 -0
  247. package/dist/src/core/sync/bidirectional-engine.d.ts +1 -1
  248. package/dist/src/core/sync/bidirectional-engine.d.ts.map +1 -1
  249. package/dist/src/core/sync/enhanced-content-builder.d.ts +1 -1
  250. package/dist/src/core/sync/enhanced-content-builder.d.ts.map +1 -1
  251. package/dist/src/core/sync/profile-manager.d.ts +1 -1
  252. package/dist/src/core/sync/profile-manager.d.ts.map +1 -1
  253. package/dist/src/core/sync/profile-selector.d.ts +1 -1
  254. package/dist/src/core/sync/profile-selector.d.ts.map +1 -1
  255. package/dist/src/core/sync/profile-selector.js +1 -1
  256. package/dist/src/core/sync/profile-selector.js.map +1 -1
  257. package/dist/src/core/sync/project-context.d.ts +1 -1
  258. package/dist/src/core/sync/project-context.d.ts.map +1 -1
  259. package/dist/src/core/sync/rate-limiter.d.ts +1 -1
  260. package/dist/src/core/sync/rate-limiter.d.ts.map +1 -1
  261. package/dist/src/core/sync/status-sync-engine.d.ts +2 -2
  262. package/dist/src/core/sync/status-sync-engine.d.ts.map +1 -1
  263. package/dist/src/core/sync/status-sync-engine.js +2 -2
  264. package/dist/src/core/sync/status-sync-engine.js.map +1 -1
  265. package/dist/src/core/sync/time-range-selector.d.ts +1 -1
  266. package/dist/src/core/sync/time-range-selector.d.ts.map +1 -1
  267. package/dist/src/core/sync/time-range-selector.js +1 -1
  268. package/dist/src/core/sync/time-range-selector.js.map +1 -1
  269. package/dist/src/core/types/config.d.ts +23 -0
  270. package/dist/src/core/types/config.d.ts.map +1 -1
  271. package/dist/src/core/types/config.js +10 -0
  272. package/dist/src/core/types/config.js.map +1 -1
  273. package/dist/src/core/types/increment-metadata.d.ts +27 -0
  274. package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
  275. package/dist/src/core/types/increment-metadata.js +45 -1
  276. package/dist/src/core/types/increment-metadata.js.map +1 -1
  277. package/dist/src/core/types/sync-profile.d.ts +2 -0
  278. package/dist/src/core/types/sync-profile.d.ts.map +1 -1
  279. package/dist/src/core/types/sync-profile.js.map +1 -1
  280. package/dist/src/core/validation/increment-structure-validator.d.ts +47 -0
  281. package/dist/src/core/validation/increment-structure-validator.d.ts.map +1 -0
  282. package/dist/src/core/validation/increment-structure-validator.js +187 -0
  283. package/dist/src/core/validation/increment-structure-validator.js.map +1 -0
  284. package/dist/src/core/validation/three-file-validator.d.ts +82 -0
  285. package/dist/src/core/validation/three-file-validator.d.ts.map +1 -0
  286. package/dist/src/core/validation/three-file-validator.js +320 -0
  287. package/dist/src/core/validation/three-file-validator.js.map +1 -0
  288. package/dist/src/core/workflow/phase-detector.d.ts +103 -0
  289. package/dist/src/core/workflow/phase-detector.d.ts.map +1 -0
  290. package/dist/src/core/workflow/phase-detector.js +704 -0
  291. package/dist/src/core/workflow/phase-detector.js.map +1 -0
  292. package/dist/src/core/workflow/types.d.ts +153 -0
  293. package/dist/src/core/workflow/types.d.ts.map +1 -0
  294. package/dist/src/core/workflow/types.js +47 -0
  295. package/dist/src/core/workflow/types.js.map +1 -0
  296. package/dist/src/init/ArchitecturePresenter.d.ts +47 -0
  297. package/dist/src/init/ArchitecturePresenter.d.ts.map +1 -0
  298. package/dist/src/init/ArchitecturePresenter.js +180 -0
  299. package/dist/src/init/ArchitecturePresenter.js.map +1 -0
  300. package/dist/src/init/InitFlow.d.ts +37 -0
  301. package/dist/src/init/InitFlow.d.ts.map +1 -0
  302. package/dist/src/init/InitFlow.js +238 -0
  303. package/dist/src/init/InitFlow.js.map +1 -0
  304. package/dist/src/init/architecture/ArchitectureDecisionEngine.d.ts +107 -0
  305. package/dist/src/init/architecture/ArchitectureDecisionEngine.d.ts.map +1 -0
  306. package/dist/src/init/architecture/ArchitectureDecisionEngine.js +405 -0
  307. package/dist/src/init/architecture/ArchitectureDecisionEngine.js.map +1 -0
  308. package/dist/src/init/architecture/CloudCreditsDatabase.d.ts +11 -0
  309. package/dist/src/init/architecture/CloudCreditsDatabase.d.ts.map +1 -0
  310. package/dist/src/init/architecture/CloudCreditsDatabase.js +92 -0
  311. package/dist/src/init/architecture/CloudCreditsDatabase.js.map +1 -0
  312. package/dist/src/init/architecture/CostEstimator.d.ts +52 -0
  313. package/dist/src/init/architecture/CostEstimator.d.ts.map +1 -0
  314. package/dist/src/init/architecture/CostEstimator.js +107 -0
  315. package/dist/src/init/architecture/CostEstimator.js.map +1 -0
  316. package/dist/src/init/architecture/InfrastructureMapper.d.ts +41 -0
  317. package/dist/src/init/architecture/InfrastructureMapper.d.ts.map +1 -0
  318. package/dist/src/init/architecture/InfrastructureMapper.js +140 -0
  319. package/dist/src/init/architecture/InfrastructureMapper.js.map +1 -0
  320. package/dist/src/init/architecture/ProjectGenerator.d.ts +44 -0
  321. package/dist/src/init/architecture/ProjectGenerator.d.ts.map +1 -0
  322. package/dist/src/init/architecture/ProjectGenerator.js +216 -0
  323. package/dist/src/init/architecture/ProjectGenerator.js.map +1 -0
  324. package/dist/src/init/architecture/types.d.ts +251 -0
  325. package/dist/src/init/architecture/types.d.ts.map +1 -0
  326. package/dist/src/init/architecture/types.js +54 -0
  327. package/dist/src/init/architecture/types.js.map +1 -0
  328. package/dist/src/init/compliance/ComplianceDetector.d.ts +17 -0
  329. package/dist/src/init/compliance/ComplianceDetector.d.ts.map +1 -0
  330. package/dist/src/init/compliance/ComplianceDetector.js +64 -0
  331. package/dist/src/init/compliance/ComplianceDetector.js.map +1 -0
  332. package/dist/src/init/compliance/standards-database.d.ts +48 -0
  333. package/dist/src/init/compliance/standards-database.d.ts.map +1 -0
  334. package/dist/src/init/compliance/standards-database.js +506 -0
  335. package/dist/src/init/compliance/standards-database.js.map +1 -0
  336. package/dist/src/init/compliance/types.d.ts +91 -0
  337. package/dist/src/init/compliance/types.d.ts.map +1 -0
  338. package/dist/src/init/compliance/types.js +43 -0
  339. package/dist/src/init/compliance/types.js.map +1 -0
  340. package/dist/src/init/repo/GitHubAPIClient.d.ts +51 -0
  341. package/dist/src/init/repo/GitHubAPIClient.d.ts.map +1 -0
  342. package/dist/src/init/repo/GitHubAPIClient.js +144 -0
  343. package/dist/src/init/repo/GitHubAPIClient.js.map +1 -0
  344. package/dist/src/init/repo/RepositorySelector.d.ts +45 -0
  345. package/dist/src/init/repo/RepositorySelector.d.ts.map +1 -0
  346. package/dist/src/init/repo/RepositorySelector.js +106 -0
  347. package/dist/src/init/repo/RepositorySelector.js.map +1 -0
  348. package/dist/src/init/repo/types.d.ts +95 -0
  349. package/dist/src/init/repo/types.d.ts.map +1 -0
  350. package/dist/src/init/repo/types.js +25 -0
  351. package/dist/src/init/repo/types.js.map +1 -0
  352. package/dist/src/init/research/CompetitorAnalyzer.d.ts +79 -0
  353. package/dist/src/init/research/CompetitorAnalyzer.d.ts.map +1 -0
  354. package/dist/src/init/research/CompetitorAnalyzer.js +265 -0
  355. package/dist/src/init/research/CompetitorAnalyzer.js.map +1 -0
  356. package/dist/src/init/research/MarketDetector.d.ts +62 -0
  357. package/dist/src/init/research/MarketDetector.d.ts.map +1 -0
  358. package/dist/src/init/research/MarketDetector.js +247 -0
  359. package/dist/src/init/research/MarketDetector.js.map +1 -0
  360. package/dist/src/init/research/OpportunityScorer.d.ts +58 -0
  361. package/dist/src/init/research/OpportunityScorer.d.ts.map +1 -0
  362. package/dist/src/init/research/OpportunityScorer.js +194 -0
  363. package/dist/src/init/research/OpportunityScorer.js.map +1 -0
  364. package/dist/src/init/research/QuestionGenerator.d.ts +68 -0
  365. package/dist/src/init/research/QuestionGenerator.d.ts.map +1 -0
  366. package/dist/src/init/research/QuestionGenerator.js +244 -0
  367. package/dist/src/init/research/QuestionGenerator.js.map +1 -0
  368. package/dist/src/init/research/ReportGenerator.d.ts +36 -0
  369. package/dist/src/init/research/ReportGenerator.d.ts.map +1 -0
  370. package/dist/src/init/research/ReportGenerator.js +125 -0
  371. package/dist/src/init/research/ReportGenerator.js.map +1 -0
  372. package/dist/src/init/research/VisionAnalyzer.d.ts +129 -0
  373. package/dist/src/init/research/VisionAnalyzer.d.ts.map +1 -0
  374. package/dist/src/init/research/VisionAnalyzer.js +212 -0
  375. package/dist/src/init/research/VisionAnalyzer.js.map +1 -0
  376. package/dist/src/init/research/keyword-extractor.d.ts +78 -0
  377. package/dist/src/init/research/keyword-extractor.d.ts.map +1 -0
  378. package/dist/src/init/research/keyword-extractor.js +230 -0
  379. package/dist/src/init/research/keyword-extractor.js.map +1 -0
  380. package/dist/src/init/research/src/config/ConfigManager.d.ts +14 -0
  381. package/dist/src/init/research/src/config/ConfigManager.d.ts.map +1 -0
  382. package/dist/src/init/research/src/config/ConfigManager.js +45 -0
  383. package/dist/src/init/research/src/config/ConfigManager.js.map +1 -0
  384. package/dist/src/init/research/src/config/types.d.ts +102 -0
  385. package/dist/src/init/research/src/config/types.d.ts.map +1 -0
  386. package/dist/src/init/research/src/config/types.js +24 -0
  387. package/dist/src/init/research/src/config/types.js.map +1 -0
  388. package/dist/src/init/research/types.d.ts +183 -0
  389. package/dist/src/init/research/types.d.ts.map +1 -0
  390. package/dist/src/init/research/types.js +65 -0
  391. package/dist/src/init/research/types.js.map +1 -0
  392. package/dist/src/init/team/ServerlessSavingsCalculator.d.ts +136 -0
  393. package/dist/src/init/team/ServerlessSavingsCalculator.d.ts.map +1 -0
  394. package/dist/src/init/team/ServerlessSavingsCalculator.js +360 -0
  395. package/dist/src/init/team/ServerlessSavingsCalculator.js.map +1 -0
  396. package/dist/src/init/team/TeamRecommender.d.ts +122 -0
  397. package/dist/src/init/team/TeamRecommender.d.ts.map +1 -0
  398. package/dist/src/init/team/TeamRecommender.js +405 -0
  399. package/dist/src/init/team/TeamRecommender.js.map +1 -0
  400. package/dist/src/init/team/types.d.ts +95 -0
  401. package/dist/src/init/team/types.d.ts.map +1 -0
  402. package/dist/src/init/team/types.js +23 -0
  403. package/dist/src/init/team/types.js.map +1 -0
  404. package/dist/src/integrations/jira/jira-mapper.d.ts +1 -1
  405. package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -1
  406. package/dist/src/types/cost-tracking.d.ts +1 -1
  407. package/dist/src/types/cost-tracking.d.ts.map +1 -1
  408. package/dist/src/utils/cost-reporter.d.ts +2 -2
  409. package/dist/src/utils/cost-reporter.d.ts.map +1 -1
  410. package/dist/src/utils/docs-preview/config-generator.d.ts +1 -1
  411. package/dist/src/utils/docs-preview/config-generator.d.ts.map +1 -1
  412. package/dist/src/utils/docs-preview/config-generator.js +1 -1
  413. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +1 -1
  414. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +1 -1
  415. package/dist/src/utils/docs-preview/docusaurus-setup.js +4 -4
  416. package/dist/src/utils/docs-preview/docusaurus-setup.js.map +1 -1
  417. package/dist/src/utils/docs-preview/index.d.ts +6 -6
  418. package/dist/src/utils/docs-preview/index.d.ts.map +1 -1
  419. package/dist/src/utils/docs-preview/index.js +6 -6
  420. package/dist/src/utils/docs-preview/index.js.map +1 -1
  421. package/dist/src/utils/docs-preview/package-installer.d.ts +1 -1
  422. package/dist/src/utils/docs-preview/package-installer.d.ts.map +1 -1
  423. package/dist/src/utils/docs-preview/package-installer.js +1 -1
  424. package/dist/src/utils/docs-preview/package-installer.js.map +1 -1
  425. package/dist/src/utils/docs-preview/server-manager.d.ts +1 -1
  426. package/dist/src/utils/docs-preview/server-manager.d.ts.map +1 -1
  427. package/dist/src/utils/docs-preview/server-manager.js +1 -1
  428. package/dist/src/utils/docs-preview/server-manager.js.map +1 -1
  429. package/dist/src/utils/docs-preview/sidebar-builder.d.ts +1 -1
  430. package/dist/src/utils/docs-preview/sidebar-builder.d.ts.map +1 -1
  431. package/dist/src/utils/generate-skills-index.d.ts +1 -1
  432. package/dist/src/utils/generate-skills-index.js +1 -1
  433. package/dist/src/utils/project-detection.js +1 -1
  434. package/dist/src/utils/project-detection.js.map +1 -1
  435. package/package.json +17 -10
  436. package/plugins/specweave/agents/architect/AGENT.md +605 -0
  437. package/plugins/specweave/agents/infrastructure/AGENT.md +760 -0
  438. package/plugins/specweave/agents/pm/AGENT.md +14 -13
  439. package/plugins/specweave/commands/specweave-check-hooks.md +186 -0
  440. package/plugins/specweave/commands/specweave-plan.md +151 -0
  441. package/plugins/specweave/commands/specweave-sync-acs.md +342 -0
  442. package/plugins/specweave/commands/specweave-validate.md +60 -11
  443. package/plugins/specweave/hooks/lib/update-status-line.sh +8 -4
  444. package/plugins/specweave/hooks/post-increment-change.sh +4 -0
  445. package/plugins/specweave/hooks/post-increment-completion.sh +7 -1
  446. package/plugins/specweave/hooks/post-increment-planning.sh +4 -0
  447. package/plugins/specweave/hooks/post-increment-status-change.sh +4 -0
  448. package/plugins/specweave/hooks/user-prompt-submit.sh +78 -0
  449. package/plugins/specweave/iac-templates/aws-lambda/README.md.hbs +280 -0
  450. package/plugins/specweave/iac-templates/aws-lambda/defaults.json +118 -0
  451. package/plugins/specweave/iac-templates/aws-lambda/environments/dev.defaults.json +46 -0
  452. package/plugins/specweave/iac-templates/aws-lambda/environments/prod.defaults.json +67 -0
  453. package/plugins/specweave/iac-templates/aws-lambda/environments/staging.defaults.json +47 -0
  454. package/plugins/specweave/iac-templates/aws-lambda/main.tf.hbs +241 -0
  455. package/plugins/specweave/iac-templates/aws-lambda/outputs.tf.hbs +61 -0
  456. package/plugins/specweave/iac-templates/aws-lambda/provider.tf.hbs +15 -0
  457. package/plugins/specweave/iac-templates/aws-lambda/variables.tf.hbs +88 -0
  458. package/plugins/specweave/iac-templates/azure-functions/README.md.hbs +315 -0
  459. package/plugins/specweave/iac-templates/azure-functions/defaults.json +65 -0
  460. package/plugins/specweave/iac-templates/azure-functions/environments/dev.defaults.json +30 -0
  461. package/plugins/specweave/iac-templates/azure-functions/environments/prod.defaults.json +34 -0
  462. package/plugins/specweave/iac-templates/azure-functions/environments/staging.defaults.json +31 -0
  463. package/plugins/specweave/iac-templates/azure-functions/iam.tf.hbs +34 -0
  464. package/plugins/specweave/iac-templates/azure-functions/main.tf.hbs +247 -0
  465. package/plugins/specweave/iac-templates/azure-functions/outputs.tf.hbs +72 -0
  466. package/plugins/specweave/iac-templates/azure-functions/provider.tf.hbs +14 -0
  467. package/plugins/specweave/iac-templates/azure-functions/variables.tf.hbs +64 -0
  468. package/plugins/specweave/iac-templates/firebase/README.md.hbs +487 -0
  469. package/plugins/specweave/iac-templates/firebase/defaults.json +55 -0
  470. package/plugins/specweave/iac-templates/firebase/environments/dev.defaults.json +44 -0
  471. package/plugins/specweave/iac-templates/firebase/environments/prod.defaults.json +52 -0
  472. package/plugins/specweave/iac-templates/firebase/environments/staging.defaults.json +43 -0
  473. package/plugins/specweave/iac-templates/firebase/iam.tf.hbs +75 -0
  474. package/plugins/specweave/iac-templates/firebase/main.tf.hbs +297 -0
  475. package/plugins/specweave/iac-templates/firebase/outputs.tf.hbs +67 -0
  476. package/plugins/specweave/iac-templates/firebase/provider.tf.hbs +26 -0
  477. package/plugins/specweave/iac-templates/firebase/variables.tf.hbs +68 -0
  478. package/plugins/specweave/iac-templates/gcp-cloud-functions/README.md.hbs +330 -0
  479. package/plugins/specweave/iac-templates/gcp-cloud-functions/defaults.json +69 -0
  480. package/plugins/specweave/iac-templates/gcp-cloud-functions/environments/dev.defaults.json +33 -0
  481. package/plugins/specweave/iac-templates/gcp-cloud-functions/environments/prod.defaults.json +40 -0
  482. package/plugins/specweave/iac-templates/gcp-cloud-functions/environments/staging.defaults.json +33 -0
  483. package/plugins/specweave/iac-templates/gcp-cloud-functions/iam.tf.hbs +54 -0
  484. package/plugins/specweave/iac-templates/gcp-cloud-functions/main.tf.hbs +211 -0
  485. package/plugins/specweave/iac-templates/gcp-cloud-functions/outputs.tf.hbs +44 -0
  486. package/plugins/specweave/iac-templates/gcp-cloud-functions/provider.tf.hbs +14 -0
  487. package/plugins/specweave/iac-templates/gcp-cloud-functions/variables.tf.hbs +82 -0
  488. package/plugins/specweave/iac-templates/supabase/README.md.hbs +534 -0
  489. package/plugins/specweave/iac-templates/supabase/defaults.json +69 -0
  490. package/plugins/specweave/iac-templates/supabase/environments/dev.defaults.json +55 -0
  491. package/plugins/specweave/iac-templates/supabase/environments/prod.defaults.json +75 -0
  492. package/plugins/specweave/iac-templates/supabase/environments/staging.defaults.json +54 -0
  493. package/plugins/specweave/iac-templates/supabase/iam.tf.hbs +146 -0
  494. package/plugins/specweave/iac-templates/supabase/main.tf.hbs +310 -0
  495. package/plugins/specweave/iac-templates/supabase/outputs.tf.hbs +74 -0
  496. package/plugins/specweave/iac-templates/supabase/provider.tf.hbs +19 -0
  497. package/plugins/specweave/iac-templates/supabase/variables.tf.hbs +78 -0
  498. package/plugins/specweave/knowledge-base/serverless/FRESHNESS.md +69 -0
  499. package/plugins/specweave/knowledge-base/serverless/learning-paths.json +865 -0
  500. package/plugins/specweave/knowledge-base/serverless/platforms/aws-lambda.json +41 -0
  501. package/plugins/specweave/knowledge-base/serverless/platforms/azure-functions.json +41 -0
  502. package/plugins/specweave/knowledge-base/serverless/platforms/firebase.json +46 -0
  503. package/plugins/specweave/knowledge-base/serverless/platforms/gcp-cloud-functions.json +41 -0
  504. package/plugins/specweave/knowledge-base/serverless/platforms/supabase.json +41 -0
  505. package/plugins/specweave/knowledge-base/serverless/schema.json +155 -0
  506. package/plugins/specweave/lib/hooks/auto-transition.js +50 -0
  507. package/plugins/specweave/lib/hooks/auto-transition.ts +84 -0
  508. package/plugins/specweave/lib/hooks/invoke-translator-skill.js +1 -1
  509. package/plugins/specweave/lib/hooks/invoke-translator-skill.ts +1 -1
  510. package/plugins/specweave/lib/hooks/sync-living-docs.js +4 -31
  511. package/plugins/specweave/lib/hooks/{sync-living-docs.ts → sync-living-docs.ts.DISABLED} +9 -48
  512. package/plugins/specweave/lib/hooks/translate-file.js +1 -1
  513. package/plugins/specweave/lib/hooks/translate-file.ts +1 -1
  514. package/plugins/specweave/lib/hooks/update-ac-status.js +24 -75
  515. package/plugins/specweave/lib/hooks/update-ac-status.ts +46 -135
  516. package/plugins/specweave/lib/hooks/update-tasks-md.js +115 -3
  517. package/plugins/specweave/lib/hooks/update-tasks-md.ts +182 -10
  518. package/plugins/specweave/lib/utils/validate-dev-setup.sh +133 -0
  519. package/plugins/specweave/skills/increment-planner/SKILL.md +25 -15
  520. package/plugins/specweave/skills/serverless-recommender/SKILL.md +368 -0
  521. package/plugins/specweave/templates/iac/aws-lambda/templates/iam.tf.hbs +137 -0
  522. package/plugins/specweave/templates/iac/aws-lambda/templates/main.tf.hbs +216 -0
  523. package/plugins/specweave-ado/lib/enhanced-ado-sync.js +170 -0
  524. package/plugins/specweave-github/lib/CodeValidator.js +195 -0
  525. package/plugins/specweave-github/lib/CodeValidator.ts +284 -0
  526. package/plugins/specweave-github/lib/IssueStateManager.js +117 -0
  527. package/plugins/specweave-github/lib/IssueStateManager.ts +231 -0
  528. package/plugins/specweave-github/lib/ThreeLayerSyncManager.js +545 -0
  529. package/plugins/specweave-github/lib/ThreeLayerSyncManager.ts +809 -0
  530. package/plugins/specweave-github/lib/types.ts +38 -0
  531. package/plugins/specweave-github/lib/user-story-issue-builder.js +7 -0
  532. package/plugins/specweave-github/lib/user-story-issue-builder.ts +11 -0
  533. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +1200 -0
  534. package/plugins/specweave-ui/.mcp.json +0 -10
  535. package/plugins/specweave-ui/README.md +26 -26
  536. package/plugins/specweave-ui/skills/browser-automation/SKILL.md +31 -18
  537. package/src/templates/AGENTS.md.template +22 -1
  538. package/src/templates/tasks.md.template +51 -33
  539. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts +0 -89
  540. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.map +0 -1
  541. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js +0 -226
  542. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js.map +0 -1
  543. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts +0 -60
  544. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.map +0 -1
  545. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js +0 -201
  546. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js.map +0 -1
  547. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts +0 -42
  548. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.map +0 -1
  549. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js +0 -123
  550. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js.map +0 -1
  551. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts +0 -45
  552. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.map +0 -1
  553. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js +0 -132
  554. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js.map +0 -1
  555. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts +0 -33
  556. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts.map +0 -1
  557. package/dist/plugins/specweave/lib/hooks/reflection-parser.js +0 -419
  558. package/dist/plugins/specweave/lib/hooks/reflection-parser.js.map +0 -1
  559. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts +0 -56
  560. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.map +0 -1
  561. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js +0 -239
  562. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js.map +0 -1
  563. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts +0 -64
  564. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts.map +0 -1
  565. package/dist/plugins/specweave/lib/hooks/reflection-storage.js +0 -305
  566. package/dist/plugins/specweave/lib/hooks/reflection-storage.js.map +0 -1
  567. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts +0 -43
  568. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts.map +0 -1
  569. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js +0 -203
  570. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js.map +0 -1
  571. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts +0 -32
  572. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +0 -1
  573. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +0 -405
  574. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +0 -1
  575. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts +0 -59
  576. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts.map +0 -1
  577. package/dist/plugins/specweave/lib/hooks/translate-file.js +0 -350
  578. package/dist/plugins/specweave/lib/hooks/translate-file.js.map +0 -1
  579. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts +0 -13
  580. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts.map +0 -1
  581. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js +0 -175
  582. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js.map +0 -1
  583. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts +0 -164
  584. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts.map +0 -1
  585. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js +0 -73
  586. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js.map +0 -1
  587. package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts +0 -21
  588. package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts.map +0 -1
  589. package/dist/plugins/specweave/lib/hooks/update-ac-status.js +0 -162
  590. package/dist/plugins/specweave/lib/hooks/update-ac-status.js.map +0 -1
  591. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts +0 -29
  592. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts.map +0 -1
  593. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js +0 -203
  594. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js.map +0 -1
  595. package/dist/src/core/living-docs/spec-distributor.d.ts +0 -180
  596. package/dist/src/core/living-docs/spec-distributor.d.ts.map +0 -1
  597. package/dist/src/core/living-docs/spec-distributor.js +0 -1840
  598. package/dist/src/core/living-docs/spec-distributor.js.map +0 -1
package/CLAUDE.md CHANGED
@@ -24,21 +24,23 @@ Users receive a different CLAUDE.md via the template system.
24
24
  /SESSION-SUMMARY-2025-10-28.md # NO! Goes to increment reports/
25
25
  /ADR-006-DEEP-ANALYSIS.md # NO! Goes to .specweave/docs/internal/architecture/adr/
26
26
  /ANALYSIS-MULTI-TOOL-COMPARISON.md # NO! Goes to increment reports/
27
+ /QUICK-START.md # NO! Goes to increment reports/
27
28
  /migration-helper.sh # NO! Goes to increment scripts/
28
29
  /execution.log # NO! Goes to increment logs/
29
30
 
30
31
  ✅ CORRECT - INCREMENT FOLDERS:
31
32
  .specweave/increments/0004-plugin-architecture/
32
- ├── spec.md # Spec files (core 3)
33
+ ├── spec.md # ⚠️ ONLY THESE 3 FILES in root!
33
34
  ├── plan.md
34
35
  ├── tasks.md # Tasks with embedded tests
35
- ├── reports/ # ✅ PUT REPORTS HERE!
36
+ ├── reports/ # ✅ ALL REPORTS HERE!
36
37
  │ ├── PLUGIN-MIGRATION-COMPLETE.md # ✅ Completion reports
37
38
  │ ├── SESSION-SUMMARY.md # ✅ Session summaries
39
+ │ ├── QUICK-START.md # ✅ Quick start guides
38
40
  │ └── ANALYSIS-*.md # ✅ Analysis files
39
- ├── scripts/ # ✅ PUT SCRIPTS HERE!
41
+ ├── scripts/ # ✅ ALL SCRIPTS HERE!
40
42
  │ └── migration-helper.sh # ✅ Helper scripts
41
- └── logs/ # ✅ PUT LOGS HERE!
43
+ └── logs/ # ✅ ALL LOGS HERE!
42
44
  └── execution.log # ✅ Execution logs
43
45
 
44
46
  .specweave/docs/internal/architecture/ # ✅ PUT ADRS/DIAGRAMS HERE!
@@ -48,6 +50,105 @@ Users receive a different CLAUDE.md via the template system.
48
50
 
49
51
  **Before committing, ALWAYS check**: `git status` - If you see `.md` files in root, MOVE THEM!
50
52
 
53
+ ### 📁 Increment Structure Rules (MANDATORY)
54
+
55
+ **ONLY 3 files allowed in increment root**:
56
+ 1. ✅ `spec.md` - Specification
57
+ 2. ✅ `plan.md` - Implementation plan
58
+ 3. ✅ `tasks.md` - Tasks with embedded tests
59
+
60
+ **Everything else MUST be in subfolders**:
61
+ - `reports/` - Session summaries, completion reports, analysis files, quick-start guides
62
+ - `scripts/` - Helper scripts, migrations, utilities
63
+ - `logs/` - Execution logs, debug output, temp files
64
+
65
+ **Examples of files that belong in subfolders**:
66
+ - `QUICK-START.md` → `reports/QUICK-START.md`
67
+ - `SESSION-NOTES.md` → `reports/SESSION-NOTES.md`
68
+ - `ULTRATHINK-*.md` → `reports/ULTRATHINK-*.md`
69
+ - `validation.sh` → `scripts/validation.sh`
70
+ - `debug.log` → `logs/debug.log`
71
+
72
+ **Why this matters**:
73
+ - ✅ Clean, predictable structure
74
+ - ✅ Easy to find files by type
75
+ - ✅ No increment root clutter
76
+ - ✅ Consistent across all increments
77
+
78
+ ---
79
+
80
+ ## 🛡️ CRITICAL: NEVER DELETE .specweave/ DIRECTORIES!
81
+
82
+ **⛔ MASS DELETION PROTECTION IS ACTIVE ⛔**
83
+
84
+ **PROTECTED DIRECTORIES**:
85
+ - `.specweave/docs/` - All project documentation (internal + public)
86
+ - `.specweave/increments/` - All increment history and specifications
87
+
88
+ **WHAT THIS MEANS**:
89
+ - ❌ **NEVER** run `rm -rf .specweave/docs` or `rm -rf .specweave/increments`
90
+ - ❌ **NEVER** delete more than 50 files in these directories at once
91
+ - ✅ Pre-commit hook will **BLOCK** accidental mass deletions
92
+ - ✅ If intentional, bypass with `git commit --no-verify`
93
+
94
+ **WHY THIS EXISTS**:
95
+ On 2025-11-17, an accidental mass deletion occurred (1,200+ files). All files were recovered via `git restore`, but this protection prevents future incidents.
96
+
97
+ **IF YOU ACCIDENTALLY DELETE**:
98
+ ```bash
99
+ # Immediately restore:
100
+ git restore .specweave/
101
+
102
+ # Verify restoration:
103
+ git status
104
+ ```
105
+
106
+ **See**: `.specweave/increments/0039/reports/ACCIDENTAL-DELETION-RECOVERY-2025-11-17.md`
107
+
108
+ ---
109
+
110
+ ## ⚠️ CRITICAL: NEVER USE `specweave init . --force` FOR REINSTALLS!
111
+
112
+ **⛔ COMMON MISTAKE THAT DELETES ALL DATA ⛔**
113
+
114
+ **THE DANGER**:
115
+ ```bash
116
+ # ❌ DANGEROUS (deletes ALL increments and docs):
117
+ specweave init . --force
118
+
119
+ # What --force actually does:
120
+ # 1. Skips all confirmation prompts
121
+ # 2. AUTOMATICALLY DELETES .specweave/ entirely
122
+ # 3. Loses all increments, docs, and history
123
+ # 4. No backup unless you create one manually
124
+ ```
125
+
126
+ **SAFE ALTERNATIVES**:
127
+ ```bash
128
+ # ✅ SAFE - Update files, keep all data:
129
+ specweave init .
130
+ # When prompted, select: "Continue working"
131
+
132
+ # ✅ SAFE - Always interactive, never deletes:
133
+ npx specweave init .
134
+ ```
135
+
136
+ **WHY THIS MATTERS**:
137
+ - Documentation used to recommend `--force` for troubleshooting (FIXED in v0.21.4+)
138
+ - Users followed the docs and lost all their work
139
+ - Now `--force` has multiple safeguards:
140
+ - ⚠️ BIG RED WARNING before deletion
141
+ - ✅ ALWAYS requires confirmation (even in force mode)
142
+ - 📦 Automatic backup created before deletion
143
+ - 🔒 Pre-commit hook blocks accidental commits
144
+
145
+ **IF YOU NEED A FRESH START**:
146
+ 1. Backup first: `cp -r .specweave .specweave.backup-$(date +%Y%m%d)`
147
+ 2. Run: `specweave init .` (select "Fresh start" option)
148
+ 3. Or: `specweave init . --force` (requires confirmation + creates auto-backup)
149
+
150
+ **NEVER use `--force` unless you want to DELETE EVERYTHING!**
151
+
51
152
  ---
52
153
 
53
154
  ## Tool Support
@@ -340,20 +441,338 @@ GitHub Issue (Checkable task list for stakeholders)
340
441
 
341
442
  ## Build & Test
342
443
 
444
+ ### Build Commands
445
+
343
446
  ```bash
344
- # Build
345
- npm run build
447
+ # ALWAYS use clean build during development (prevents TS5055 errors)
448
+ npm run rebuild # Clean + build (RECOMMENDED)
346
449
 
347
- # Test
348
- npm test # Unit tests
450
+ # Or manual steps:
451
+ npm run clean # Remove dist/ folder
452
+ npm run build # Compile TypeScript
453
+ ```
454
+
455
+ ### Testing
456
+
457
+ **Test Framework**: **Vitest** (migrated from Jest on 2025-11-17)
458
+
459
+ ```bash
460
+ npm test # Smoke tests (quick validation)
461
+ npm run test:unit # Unit tests with Vitest
462
+ npm run test:integration # Integration tests with Vitest
349
463
  npm run test:e2e # E2E tests (Playwright)
350
- npm run test:integration # Integration tests
464
+ npm run test:all # All tests
465
+ npm run test:coverage # Coverage report
466
+ ```
467
+
468
+ **Why Vitest?**
469
+ - ✅ ESM-native (no tsconfig hacks)
470
+ - ✅ Faster than Jest
471
+ - ✅ Better TypeScript integration
472
+ - ✅ Native import.meta.url support
473
+ - ✅ Modern, actively maintained
474
+
475
+ **Test Organization** (4 categories):
476
+ - `tests/unit/` - Pure logic tests (no I/O) - **Vitest**
477
+ - `tests/plugin-validation/` - Plugin structure contracts
478
+ - `tests/integration/` - 4 semantic categories - **Vitest**:
479
+ - `external-tools/` - GitHub, JIRA, ADO, Kafka sync
480
+ - `core/` - Core framework + workflows
481
+ - `generators/` - Code generation (frontend, backend, ML)
482
+ - `features/` - Feature plugins (Figma, i18n, diagrams, etc.)
483
+ - `tests/e2e/` - Full user scenarios - **Playwright**
484
+
485
+ **Writing Tests**:
486
+ ```typescript
487
+ // Import from vitest (NOT jest)
488
+ import { describe, it, expect, beforeEach, vi } from 'vitest';
489
+
490
+ // Mocking
491
+ vi.mock('fs/promises');
492
+ const mockFn = vi.fn();
493
+ vi.clearAllMocks();
494
+ ```
495
+
496
+ **Details**: `.specweave/docs/internal/architecture/TEST-ORGANIZATION-PROPOSAL.md`
497
+
498
+ ### Test Isolation (CRITICAL - Prevents .specweave/ Deletion!)
499
+
500
+ **🚨 MANDATORY FOR ALL TESTS creating .specweave/ structures:**
501
+
502
+ **THE PROBLEM**: Tests using `process.cwd()` can accidentally delete the project `.specweave/` folder containing all your work!
503
+
504
+ **CORRECT PATTERN** (ALWAYS use this):
505
+ ```typescript
506
+ import * as os from 'os';
507
+ import * as path from 'path';
508
+
509
+ // ✅ SAFE: Uses isolated temp directory
510
+ const testRoot = path.join(os.tmpdir(), 'test-name-' + Date.now());
511
+ ```
512
+
513
+ **DANGEROUS PATTERN** (NEVER use this):
514
+ ```typescript
515
+ // ❌ DANGER: Creates directories in project root!
516
+ const testRoot = path.join(process.cwd(), '.test-something');
517
+ const testPath = path.join(__dirname, '..', '.specweave', 'increments');
518
+ ```
519
+
520
+ **Why This Matters**:
521
+ 1. Tests create mock `.specweave/` structures for testing
522
+ 2. Cleanup uses `fs.rm(testRoot, { recursive: true })`
523
+ 3. If `testRoot` points to project root → **DELETES REAL .specweave/!**
524
+ 4. You lose all increments, docs, and history
525
+
526
+ **Use Test Utilities** (RECOMMENDED):
527
+ ```typescript
528
+ import { createIsolatedTestDir, createSpecweaveStructure } from '../test-utils/isolated-test-dir';
529
+
530
+ test('my test', async () => {
531
+ const { testDir, cleanup } = await createIsolatedTestDir('my-test');
532
+
533
+ try {
534
+ // Setup .specweave structure in isolated directory
535
+ await createSpecweaveStructure(testDir);
536
+
537
+ // Test code here - NEVER touches project .specweave/
538
+ const incrementPath = path.join(testDir, '.specweave', 'increments', '0001-test');
539
+ // ...
540
+ } finally {
541
+ await cleanup(); // ALWAYS cleanup
542
+ }
543
+ });
351
544
  ```
352
545
 
353
- **Coverage Requirements**:
546
+ **Protection Layers**:
547
+ 1. ✅ **Pre-commit hook**: Blocks commits with dangerous test patterns
548
+ 2. ✅ **Test utilities**: `tests/test-utils/isolated-test-dir.ts`
549
+ 3. ✅ **Documentation**: This section
550
+
551
+ **Related Incident**: 2025-11-17 - Multiple `.specweave/` deletions traced to dangerous test patterns
552
+ **Root Cause Analysis**: `.specweave/increments/0037/reports/DELETION-ROOT-CAUSE-2025-11-17.md`
553
+
554
+ ### Build Health Checks
555
+
556
+ **CRITICAL**: TypeScript ES Modules require specific practices:
557
+
558
+ 1. **Always Import with .js Extensions**:
559
+ ```typescript
560
+ // ❌ WRONG (will break at runtime):
561
+ import { foo } from './bar';
562
+
563
+ // ✅ CORRECT:
564
+ import { foo } from './bar.js';
565
+ ```
566
+
567
+ 2. **Fix Missing Extensions**:
568
+ ```bash
569
+ # Auto-fix all missing .js extensions:
570
+ node scripts/fix-js-extensions.js
571
+
572
+ # Preview changes first:
573
+ node scripts/fix-js-extensions.js --dry-run
574
+ ```
575
+
576
+ 3. **Verify Build is Clean**:
577
+ ```bash
578
+ # Check for polluted dist/ (TS5055 indicator):
579
+ find dist/src -name "*.ts" -not -name "*.d.ts"
580
+ # Should return NOTHING
581
+
582
+ # If files found, clean rebuild:
583
+ npm run rebuild
584
+ ```
585
+
586
+ 4. **Test Hook Execution**:
587
+ ```bash
588
+ # Hooks must import correctly at runtime:
589
+ node plugins/specweave/lib/hooks/update-ac-status.js 0001
590
+ # Should execute without "Cannot find module" errors
591
+ ```
592
+
593
+ 5. **Install Git Hooks** (RECOMMENDED):
594
+ ```bash
595
+ bash scripts/install-git-hooks.sh
596
+ # Verifies build health before every commit
597
+ ```
598
+
599
+ ### Common Build Errors & Fixes
600
+
601
+ **Error: TS5055 - Cannot write file (would overwrite input)**
602
+ ```bash
603
+ # Cause: dist/ polluted with .ts source files
604
+ # Fix:
605
+ npm run clean && npm run build
606
+ ```
607
+
608
+ **Error: Cannot find module 'src/...' (hook execution)**
609
+ ```bash
610
+ # Cause: Hooks importing from src/ instead of dist/src/
611
+ # OR: Missing .js extensions in imports
612
+ # Fix:
613
+ node scripts/fix-js-extensions.js
614
+ npm run rebuild
615
+ ```
616
+
617
+ **Error: Module import without .js extension**
618
+ ```bash
619
+ # Cause: TypeScript ES modules REQUIRE .js in relative imports
620
+ # Fix:
621
+ node scripts/fix-js-extensions.js
622
+ ```
623
+
624
+ ### Build Architecture
625
+
626
+ SpecWeave uses **dual compilation**:
627
+ - `tsc`: Compiles `src/` → `dist/src/` (source files)
628
+ - `esbuild`: Compiles `plugins/**/lib/hooks/*.ts` → in-place `.js` (hooks only)
629
+
630
+ **Why?** Hooks must import from `dist/src/` (compiled), but TypeScript would try to compile them before `dist/` exists (chicken-and-egg). Solution: Exclude hooks from `tsconfig.json`, compile separately with esbuild.
631
+
632
+ ### Increment Scripts vs Hooks
633
+
634
+ **CRITICAL DISTINCTION**: Increment scripts and hooks have different purposes and import patterns.
635
+
636
+ **Hooks** (`plugins/**/lib/hooks/*.ts`):
637
+ - **Purpose**: Production runtime executables (called by shell scripts)
638
+ - **Execution**: `#!/usr/bin/env node` (JavaScript runtime)
639
+ - **Imports**: MUST use `dist/src/` (compiled JavaScript)
640
+ - **Compilation**: esbuild (separate from main build)
641
+ - **Example**:
642
+ ```typescript
643
+ #!/usr/bin/env node
644
+ import { ACStatusManager } from '../../../../dist/src/core/increment/ac-status-manager.js';
645
+ ```
646
+
647
+ **Increment Scripts** (`.specweave/increments/####/scripts/*.ts`):
648
+ - **Purpose**: Development utilities (one-off tasks, migrations, analysis)
649
+ - **Execution**: `#!/usr/bin/env tsx` (TypeScript runtime with ESM support)
650
+ - **Imports**: MUST use `src/` (TypeScript source, NOT compiled)
651
+ - **Compilation**: None (tsx transpiles on-the-fly)
652
+ - **Example**:
653
+ ```typescript
654
+ #!/usr/bin/env tsx
655
+ import { ACStatusManager } from '../../../../src/core/increment/ac-status-manager.js';
656
+ ```
657
+
658
+ **Why Different Patterns?**
659
+
660
+ | Aspect | Hooks (dist/) | Increment Scripts (src/) |
661
+ |--------|---------------|-------------------------|
662
+ | **Context** | Production runtime | Development only |
663
+ | **Tooling** | Node.js only | TypeScript tooling (tsx) |
664
+ | **Build dependency** | Yes (requires dist/) | No (live source code) |
665
+ | **Live reload** | No (must rebuild) | Yes (tsx auto-transpiles) |
666
+ | **Purpose** | Permanent infrastructure | Temporary dev utilities |
667
+
668
+ **Common Mistake**: Copying hook import patterns to increment scripts.
669
+
670
+ ```typescript
671
+ // ❌ WRONG (increment script importing from dist/):
672
+ #!/usr/bin/env tsx
673
+ import { ACStatusManager } from '../../../../dist/src/core/...';
674
+ // Issues:
675
+ // - Requires npm run build before execution
676
+ // - Stale code if src/ changes without rebuild
677
+ // - Semantic confusion (TS runtime + JS imports)
678
+
679
+ // ✅ CORRECT (increment script importing from src/):
680
+ #!/usr/bin/env tsx
681
+ import { ACStatusManager } from '../../../../src/core/...';
682
+ // Benefits:
683
+ // - No build dependency
684
+ // - Always uses latest source code
685
+ // - Clear dev script pattern
686
+ ```
687
+
688
+ **Note**: Use `tsx` (not `ts-node`) for increment scripts - it has better ESM + TypeScript support.
689
+
690
+ ### Running Increment Scripts
691
+
692
+ **CRITICAL**: Increment scripts use `#!/usr/bin/env tsx` shebang, which assumes tsx is in your PATH. This often fails in development environments.
693
+
694
+ **Recommended Execution Method** (Always Works):
695
+ ```bash
696
+ # ✅ Use npx - finds tsx in node_modules/.bin/ automatically
697
+ npx tsx .specweave/increments/####/scripts/script-name.ts
698
+
699
+ # Example:
700
+ npx tsx .specweave/increments/0037-project-specific-tasks/scripts/validate-task-consistency.ts
701
+ ```
702
+
703
+ **Why npx?**
704
+ - ✅ Works without global tsx installation
705
+ - ✅ Uses project's tsx version (consistent across team)
706
+ - ✅ No PATH configuration needed
707
+ - ✅ Same behavior in CI/CD and local dev
708
+
709
+ **Alternative Methods** (Less Recommended):
710
+ ```bash
711
+ # Option 1: Direct execution (requires global tsx)
712
+ chmod +x script.ts
713
+ ./script.ts
714
+ # ❌ Fails if tsx not globally installed
715
+
716
+ # Option 2: Install tsx globally (not recommended for teams)
717
+ npm install -g tsx
718
+ ./script.ts
719
+ # ❌ Every contributor must install globally
720
+ # ❌ Version inconsistencies across team
721
+
722
+ # Option 3: Full path
723
+ ./node_modules/.bin/tsx script.ts
724
+ # ✅ Works, but verbose
725
+ ```
726
+
727
+ **Troubleshooting "command not found: tsx" (Exit Code 127)**:
728
+
729
+ This error means tsx isn't in your shell's PATH.
730
+
731
+ **Root Cause**:
732
+ - tsx is a **dev dependency** (installed in `node_modules/`)
733
+ - Shell can't find commands in `node_modules/.bin/` automatically
734
+ - npm scripts add `node_modules/.bin/` to PATH, but direct shell execution doesn't
735
+
736
+ **Fix**:
737
+ ```bash
738
+ # Instead of:
739
+ tsx script.ts # ❌ Fails with error 127
740
+
741
+ # Use:
742
+ npx tsx script.ts # ✅ Always works
743
+ ```
744
+
745
+ **Why This Happens "Sometimes"**:
746
+ - **npm scripts**: Work (PATH includes node_modules/.bin/)
747
+ - **Direct shell**: Fails (PATH doesn't include node_modules/.bin/)
748
+ - **Global tsx installed**: Works (tsx in system PATH)
749
+ - **CI/CD**: Depends on environment setup
750
+
751
+ **Execution Context Comparison**:
752
+
753
+ | Method | tsx in PATH? | Works? |
754
+ |--------|--------------|--------|
755
+ | `npm run script` | ✅ Yes (npm adds it) | ✅ Yes |
756
+ | `./script.ts` | ❌ No (unless global) | ❌ Usually fails |
757
+ | `tsx script.ts` | ❌ No (unless global) | ❌ Usually fails |
758
+ | `npx tsx script.ts` | ✅ Yes (npx finds it) | ✅ Always works |
759
+
760
+ **Best Practice for Contributors**:
761
+ - **Creating scripts**: Use `#!/usr/bin/env tsx` shebang (conventional)
762
+ - **Running scripts**: Always use `npx tsx script.ts` (reliable)
763
+ - **Documentation**: Show npx execution method in examples
764
+
765
+ ### Coverage Requirements
766
+
354
767
  - Critical paths: 90%+
355
768
  - Overall: 80%+
356
769
 
770
+ ### Related Documentation
771
+
772
+ - Build process details: `.github/CONTRIBUTING.md` → "Build Process & Best Practices"
773
+ - Ultrathink analysis: `.specweave/increments/0039/reports/HOOK-IMPORT-ERROR-ULTRATHINK-ANALYSIS.md`
774
+ - Build verification tests: `tests/integration/build/build-verification.test.ts`
775
+
357
776
  ---
358
777
 
359
778
  ## Common Tasks
package/README.md CHANGED
@@ -232,8 +232,18 @@ Claude implements Task 1:
232
232
  # Install SpecWeave
233
233
  npm install -g specweave
234
234
 
235
- # Initialize new project
235
+ # Initialize with Strategic Init (AI-powered research)
236
236
  specweave init my-project
237
+
238
+ # Strategic Init guides you through 6 phases:
239
+ # Phase 1: Vision & Market Research
240
+ # Phase 2: Scaling & Performance Goals
241
+ # Phase 3: Data & Compliance Detection
242
+ # Phase 4: Budget & Cloud Credits
243
+ # Phase 5: Methodology & Organization
244
+ # Phase 6: Repository Selection (optional)
245
+
246
+ # Result: Architecture recommendation, team plan, cost estimates
237
247
  cd my-project
238
248
 
239
249
  # Start building
@@ -242,6 +252,15 @@ cd my-project
242
252
  /specweave:done 0001 # Complete increment
243
253
  ```
244
254
 
255
+ ### Multi-Project Setup
256
+ ```bash
257
+ # Initialize with multiple projects
258
+ specweave init --projects backend,frontend,mobile
259
+
260
+ # Tasks automatically split by project keyword detection
261
+ # Each project gets its own user stories and GitHub issues
262
+ ```
263
+
245
264
  ### Brownfield (Existing Project)
246
265
  ```bash
247
266
  # Initialize SpecWeave in existing project
@@ -255,7 +274,7 @@ specweave init .
255
274
  /specweave:increment "Add dark mode"
256
275
  ```
257
276
 
258
- **[→ Complete Quickstart Guide](https://spec-weave.com/docs/guides/getting-started/quickstart)**
277
+ **[→ Complete Quickstart Guide](https://spec-weave.com/docs/guides/getting-started/quickstart)** | **[→ Strategic Init Guide](https://spec-weave.com/docs/guides/strategic-init)**
259
278
 
260
279
  ---
261
280
 
@@ -296,12 +315,23 @@ specweave init .
296
315
 
297
316
  ## Key Features
298
317
 
318
+ ### Strategic Init - AI-Powered Architecture Planning (NEW!)
319
+
320
+ - 🎯 **Research-Driven Discovery** - Answer 6 phases of questions about your product
321
+ - 🏗️ **Architecture Recommendations** - Tech stack, scaling strategy, cost projections
322
+ - 🔒 **Compliance Detection** - Auto-detects 30+ standards (HIPAA, GDPR, SOC2, etc.)
323
+ - 👥 **Smart Team Planning** - Current and future team structure, hiring roadmap
324
+ - ☁️ **Cloud Credits Discovery** - AWS Activate, Azure Startup, GCP eligibility
325
+ - 📦 **Repository Selection** - Batch select 1-100+ repos with intelligent routing
326
+
327
+ ### Production Features
328
+
299
329
  - 🤖 **AI-Native Enterprise Sync** - Claude updates JIRA/GitHub/ADO automatically (bidirectional!)
300
330
  - 📚 **Living Documentation** - Auto-updates after every task (no manual sync!)
301
331
  - 🧪 **Test-Aware Planning** - Embedded tests in BDD format (Given/When/Then)
302
332
  - 🎯 **Disciplined Progress** - Can't start increment N+1 until N is DONE
303
333
  - ⏸️ **Intelligent Pausing** - Auto-detects blockers, pauses with context, resumes when ready
304
- - 🔄 **Smart Reopen (NEW!)** - Report "broken" → Auto-detects what to reopen, respects WIP limits
334
+ - 🔄 **Smart Reopen** - Report "broken" → Auto-detects what to reopen, respects WIP limits
305
335
  - 👥 **Multi-Project Tracking** - Unlimited JIRA/ADO/GitHub repos, intelligent routing
306
336
  - 🤖 **AI Agents** - PM, Architect, Quality Judge guide your work
307
337
  - 🔧 **CI/CD Auto-Fix** - Workflow failures auto-fixed by Claude (just mention `@claude`)
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Code Validator
3
+ *
4
+ * Validates that completed tasks have actual code implementation.
5
+ * Prevents marking tasks as complete when:
6
+ * - Files don't exist
7
+ * - Files are empty or have trivial content
8
+ * - Implementation is incomplete
9
+ *
10
+ * Used by ThreeLayerSyncManager to enforce code-completion discipline.
11
+ *
12
+ * @module CodeValidator
13
+ */
14
+ /**
15
+ * File validation result
16
+ */
17
+ export interface FileValidationResult {
18
+ path: string;
19
+ exists: boolean;
20
+ hasContent: boolean;
21
+ lineCount: number;
22
+ reason?: string;
23
+ }
24
+ /**
25
+ * Task validation result
26
+ */
27
+ export interface TaskValidationResult {
28
+ taskId: string;
29
+ valid: boolean;
30
+ files: FileValidationResult[];
31
+ reason?: string;
32
+ }
33
+ /**
34
+ * CodeValidator options
35
+ */
36
+ export interface CodeValidatorOptions {
37
+ minLines?: number;
38
+ minChars?: number;
39
+ projectRoot?: string;
40
+ }
41
+ export declare class CodeValidator {
42
+ private options;
43
+ constructor(options?: CodeValidatorOptions);
44
+ /**
45
+ * Validate that code exists for a task
46
+ *
47
+ * Extracts file paths from task description and verifies:
48
+ * 1. Files exist
49
+ * 2. Files have meaningful content
50
+ * 3. Files are not just stubs
51
+ *
52
+ * @param taskDescription - Task description with file paths
53
+ * @param taskId - Task ID for error messages
54
+ * @returns Validation result
55
+ */
56
+ validateTask(taskDescription: string, taskId: string): Promise<TaskValidationResult>;
57
+ /**
58
+ * Validate a single file
59
+ *
60
+ * @param filePath - Path to file (relative or absolute)
61
+ * @returns File validation result
62
+ */
63
+ validateFile(filePath: string): Promise<FileValidationResult>;
64
+ /**
65
+ * Extract file paths from task description
66
+ *
67
+ * Supports multiple formats:
68
+ * - **Files**: src/foo.ts, src/bar.ts
69
+ * - **Files to create**: src/foo.ts
70
+ * - **Files to modify**: src/bar.ts
71
+ * - Inline code blocks with file paths
72
+ *
73
+ * @param description - Task description text
74
+ * @returns Array of file paths
75
+ */
76
+ extractFilePaths(description: string): string[];
77
+ /**
78
+ * Batch validate multiple tasks
79
+ *
80
+ * @param tasks - Array of {taskId, description}
81
+ * @returns Array of validation results
82
+ */
83
+ validateTasks(tasks: Array<{
84
+ taskId: string;
85
+ description: string;
86
+ }>): Promise<TaskValidationResult[]>;
87
+ /**
88
+ * Get summary of validation results
89
+ *
90
+ * @param results - Array of task validation results
91
+ * @returns Summary statistics
92
+ */
93
+ summarizeResults(results: TaskValidationResult[]): {
94
+ total: number;
95
+ valid: number;
96
+ invalid: number;
97
+ noFiles: number;
98
+ invalidTasks: string[];
99
+ };
100
+ }
101
+ //# sourceMappingURL=CodeValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeValidator.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/CodeValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAiC;gBAEpC,OAAO,GAAE,oBAAyB;IAQ9C;;;;;;;;;;;OAWG;IACG,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsC1F;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA4EnE;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAuC/C;;;;;OAKG;IACG,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAS3G;;;;;OAKG;IACH,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG;QACjD,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB;CAeF"}