specweave 0.21.1 → 0.21.3

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 (607) hide show
  1. package/CLAUDE.md +232 -5
  2. package/dist/plugins/specweave-github/lib/IssueStateManager.d.ts +98 -0
  3. package/dist/plugins/specweave-github/lib/IssueStateManager.d.ts.map +1 -0
  4. package/dist/plugins/specweave-github/lib/IssueStateManager.js +146 -0
  5. package/dist/plugins/specweave-github/lib/IssueStateManager.js.map +1 -0
  6. package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts.map +1 -1
  7. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js +6 -0
  8. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js.map +1 -1
  9. package/dist/src/cli/commands/check-hooks.d.ts +11 -0
  10. package/dist/src/cli/commands/check-hooks.d.ts.map +1 -0
  11. package/dist/src/cli/commands/check-hooks.js +144 -0
  12. package/dist/src/cli/commands/check-hooks.js.map +1 -0
  13. package/dist/src/cli/commands/cicd-monitor.js +3 -3
  14. package/dist/src/cli/commands/cicd-monitor.js.map +1 -1
  15. package/dist/src/cli/commands/import-docs.js +2 -2
  16. package/dist/src/cli/commands/import-docs.js.map +1 -1
  17. package/dist/src/cli/commands/init-multiproject.js +4 -4
  18. package/dist/src/cli/commands/init-multiproject.js.map +1 -1
  19. package/dist/src/cli/commands/migrate-to-multiproject.js +3 -3
  20. package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -1
  21. package/dist/src/cli/commands/plan/agent-invoker.d.ts +79 -0
  22. package/dist/src/cli/commands/plan/agent-invoker.d.ts.map +1 -0
  23. package/dist/src/cli/commands/plan/agent-invoker.js +383 -0
  24. package/dist/src/cli/commands/plan/agent-invoker.js.map +1 -0
  25. package/dist/src/cli/commands/plan/increment-detector.d.ts +27 -0
  26. package/dist/src/cli/commands/plan/increment-detector.d.ts.map +1 -0
  27. package/dist/src/cli/commands/plan/increment-detector.js +159 -0
  28. package/dist/src/cli/commands/plan/increment-detector.js.map +1 -0
  29. package/dist/src/cli/commands/plan/plan-orchestrator.d.ts +45 -0
  30. package/dist/src/cli/commands/plan/plan-orchestrator.d.ts.map +1 -0
  31. package/dist/src/cli/commands/plan/plan-orchestrator.js +229 -0
  32. package/dist/src/cli/commands/plan/plan-orchestrator.js.map +1 -0
  33. package/dist/src/cli/commands/plan/plan-validator.d.ts +36 -0
  34. package/dist/src/cli/commands/plan/plan-validator.d.ts.map +1 -0
  35. package/dist/src/cli/commands/plan/plan-validator.js +174 -0
  36. package/dist/src/cli/commands/plan/plan-validator.js.map +1 -0
  37. package/dist/src/cli/commands/plan/types.d.ts +170 -0
  38. package/dist/src/cli/commands/plan/types.d.ts.map +1 -0
  39. package/dist/src/cli/commands/plan/types.js +42 -0
  40. package/dist/src/cli/commands/plan/types.js.map +1 -0
  41. package/dist/src/cli/commands/plan-command.d.ts +16 -0
  42. package/dist/src/cli/commands/plan-command.d.ts.map +1 -0
  43. package/dist/src/cli/commands/plan-command.js +127 -0
  44. package/dist/src/cli/commands/plan-command.js.map +1 -0
  45. package/dist/src/cli/commands/switch-project.js +3 -3
  46. package/dist/src/cli/commands/switch-project.js.map +1 -1
  47. package/dist/src/cli/commands/validate-parent-repo.js +1 -1
  48. package/dist/src/cli/commands/validate-parent-repo.js.map +1 -1
  49. package/dist/src/config/ConfigManager.d.ts +69 -0
  50. package/dist/src/config/ConfigManager.d.ts.map +1 -0
  51. package/dist/src/config/ConfigManager.js +130 -0
  52. package/dist/src/config/ConfigManager.js.map +1 -0
  53. package/dist/src/config/types.d.ts +1357 -0
  54. package/dist/src/config/types.d.ts.map +1 -0
  55. package/dist/src/config/types.js +67 -0
  56. package/dist/src/config/types.js.map +1 -0
  57. package/dist/src/core/brownfield/importer.d.ts +1 -1
  58. package/dist/src/core/brownfield/importer.d.ts.map +1 -1
  59. package/dist/src/core/brownfield/importer.js +3 -3
  60. package/dist/src/core/brownfield/importer.js.map +1 -1
  61. package/dist/src/core/cicd/config-loader.d.ts +1 -1
  62. package/dist/src/core/cicd/config-loader.d.ts.map +1 -1
  63. package/dist/src/core/cicd/index.d.ts +6 -6
  64. package/dist/src/core/cicd/index.d.ts.map +1 -1
  65. package/dist/src/core/cicd/index.js +6 -6
  66. package/dist/src/core/cicd/index.js.map +1 -1
  67. package/dist/src/core/cicd/monitor-service.d.ts +3 -3
  68. package/dist/src/core/cicd/monitor-service.d.ts.map +1 -1
  69. package/dist/src/core/cicd/monitor-service.js +3 -3
  70. package/dist/src/core/cicd/monitor-service.js.map +1 -1
  71. package/dist/src/core/cicd/notifier.d.ts +1 -1
  72. package/dist/src/core/cicd/notifier.d.ts.map +1 -1
  73. package/dist/src/core/cicd/state-manager.d.ts +1 -1
  74. package/dist/src/core/cicd/state-manager.d.ts.map +1 -1
  75. package/dist/src/core/cicd/state-manager.js +1 -1
  76. package/dist/src/core/cicd/state-manager.js.map +1 -1
  77. package/dist/src/core/cicd/workflow-monitor.d.ts +1 -1
  78. package/dist/src/core/cicd/workflow-monitor.d.ts.map +1 -1
  79. package/dist/src/core/cicd/workflow-monitor.js +1 -1
  80. package/dist/src/core/cicd/workflow-monitor.js.map +1 -1
  81. package/dist/src/core/cost-tracker.d.ts +2 -2
  82. package/dist/src/core/cost-tracker.d.ts.map +1 -1
  83. package/dist/src/core/cost-tracker.js +1 -1
  84. package/dist/src/core/cost-tracker.js.map +1 -1
  85. package/dist/src/core/hooks/HealthReporter.d.ts +55 -0
  86. package/dist/src/core/hooks/HealthReporter.d.ts.map +1 -0
  87. package/dist/src/core/hooks/HealthReporter.js +268 -0
  88. package/dist/src/core/hooks/HealthReporter.js.map +1 -0
  89. package/dist/src/core/hooks/HookAutoFixer.d.ts +41 -0
  90. package/dist/src/core/hooks/HookAutoFixer.d.ts.map +1 -0
  91. package/dist/src/core/hooks/HookAutoFixer.js +222 -0
  92. package/dist/src/core/hooks/HookAutoFixer.js.map +1 -0
  93. package/dist/src/core/hooks/HookExecutor.d.ts +57 -0
  94. package/dist/src/core/hooks/HookExecutor.d.ts.map +1 -0
  95. package/dist/src/core/hooks/HookExecutor.js +287 -0
  96. package/dist/src/core/hooks/HookExecutor.js.map +1 -0
  97. package/dist/src/core/hooks/HookHealthChecker.d.ts +51 -0
  98. package/dist/src/core/hooks/HookHealthChecker.d.ts.map +1 -0
  99. package/dist/src/core/hooks/HookHealthChecker.js +212 -0
  100. package/dist/src/core/hooks/HookHealthChecker.js.map +1 -0
  101. package/dist/src/core/hooks/HookScanner.d.ts +65 -0
  102. package/dist/src/core/hooks/HookScanner.d.ts.map +1 -0
  103. package/dist/src/core/hooks/HookScanner.js +214 -0
  104. package/dist/src/core/hooks/HookScanner.js.map +1 -0
  105. package/dist/src/core/hooks/types.d.ts +281 -0
  106. package/dist/src/core/hooks/types.d.ts.map +1 -0
  107. package/dist/src/core/hooks/types.js +10 -0
  108. package/dist/src/core/hooks/types.js.map +1 -0
  109. package/dist/src/core/iac/index.d.ts +10 -0
  110. package/dist/src/core/iac/index.d.ts.map +1 -0
  111. package/dist/src/core/iac/index.js +11 -0
  112. package/dist/src/core/iac/index.js.map +1 -0
  113. package/dist/src/core/iac/template-engine.d.ts +77 -0
  114. package/dist/src/core/iac/template-engine.d.ts.map +1 -0
  115. package/dist/src/core/iac/template-engine.js +182 -0
  116. package/dist/src/core/iac/template-engine.js.map +1 -0
  117. package/dist/src/core/increment/ac-status-manager.d.ts +115 -0
  118. package/dist/src/core/increment/ac-status-manager.d.ts.map +1 -0
  119. package/dist/src/core/increment/ac-status-manager.js +343 -0
  120. package/dist/src/core/increment/ac-status-manager.js.map +1 -0
  121. package/dist/src/core/increment/auto-transition-manager.d.ts +60 -0
  122. package/dist/src/core/increment/auto-transition-manager.d.ts.map +1 -0
  123. package/dist/src/core/increment/auto-transition-manager.js +192 -0
  124. package/dist/src/core/increment/auto-transition-manager.js.map +1 -0
  125. package/dist/src/core/increment/limits.d.ts +1 -1
  126. package/dist/src/core/increment/limits.d.ts.map +1 -1
  127. package/dist/src/core/increment/limits.js +2 -2
  128. package/dist/src/core/increment/limits.js.map +1 -1
  129. package/dist/src/core/increment/spec-sync-manager.d.ts +177 -0
  130. package/dist/src/core/increment/spec-sync-manager.d.ts.map +1 -0
  131. package/dist/src/core/increment/spec-sync-manager.js +496 -0
  132. package/dist/src/core/increment/spec-sync-manager.js.map +1 -0
  133. package/dist/src/core/increment/status-auto-transition.d.ts +46 -0
  134. package/dist/src/core/increment/status-auto-transition.d.ts.map +1 -0
  135. package/dist/src/core/increment/status-auto-transition.js +178 -0
  136. package/dist/src/core/increment/status-auto-transition.js.map +1 -0
  137. package/dist/src/core/increment/task-state-manager.d.ts +75 -0
  138. package/dist/src/core/increment/task-state-manager.d.ts.map +1 -0
  139. package/dist/src/core/increment/task-state-manager.js +117 -0
  140. package/dist/src/core/increment/task-state-manager.js.map +1 -0
  141. package/dist/src/core/living-docs/CodeValidator.d.ts +68 -0
  142. package/dist/src/core/living-docs/CodeValidator.d.ts.map +1 -0
  143. package/dist/src/core/living-docs/CodeValidator.js +160 -0
  144. package/dist/src/core/living-docs/CodeValidator.js.map +1 -0
  145. package/dist/src/core/living-docs/CompletionPropagator.d.ts +84 -0
  146. package/dist/src/core/living-docs/CompletionPropagator.d.ts.map +1 -0
  147. package/dist/src/core/living-docs/CompletionPropagator.js +205 -0
  148. package/dist/src/core/living-docs/CompletionPropagator.js.map +1 -0
  149. package/dist/src/core/living-docs/ProjectDetector.d.ts +29 -0
  150. package/dist/src/core/living-docs/ProjectDetector.d.ts.map +1 -0
  151. package/dist/src/core/living-docs/ProjectDetector.js +94 -0
  152. package/dist/src/core/living-docs/ProjectDetector.js.map +1 -0
  153. package/dist/src/core/living-docs/SpecDistributor.d.ts +55 -0
  154. package/dist/src/core/living-docs/SpecDistributor.d.ts.map +1 -0
  155. package/dist/src/core/living-docs/SpecDistributor.js +216 -0
  156. package/dist/src/core/living-docs/SpecDistributor.js.map +1 -0
  157. package/dist/src/core/living-docs/ThreeLayerSyncManager.d.ts +116 -0
  158. package/dist/src/core/living-docs/ThreeLayerSyncManager.d.ts.map +1 -0
  159. package/dist/src/core/living-docs/ThreeLayerSyncManager.js +356 -0
  160. package/dist/src/core/living-docs/ThreeLayerSyncManager.js.map +1 -0
  161. package/dist/src/core/living-docs/hierarchy-mapper.d.ts.map +1 -1
  162. package/dist/src/core/living-docs/hierarchy-mapper.js +2 -1
  163. package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
  164. package/dist/src/core/living-docs/index.d.ts +1 -1
  165. package/dist/src/core/living-docs/index.d.ts.map +1 -1
  166. package/dist/src/core/living-docs/index.js +5 -1
  167. package/dist/src/core/living-docs/index.js.map +1 -1
  168. package/dist/src/core/living-docs/types.d.ts +70 -300
  169. package/dist/src/core/living-docs/types.d.ts.map +1 -1
  170. package/dist/src/core/living-docs/types.js +2 -10
  171. package/dist/src/core/living-docs/types.js.map +1 -1
  172. package/dist/src/core/project-manager.d.ts +1 -1
  173. package/dist/src/core/project-manager.d.ts.map +1 -1
  174. package/dist/src/core/project-manager.js +2 -2
  175. package/dist/src/core/project-manager.js.map +1 -1
  176. package/dist/src/core/qa/quality-gate-decider.d.ts +1 -1
  177. package/dist/src/core/qa/quality-gate-decider.d.ts.map +1 -1
  178. package/dist/src/core/qa/risk-calculator.d.ts +1 -1
  179. package/dist/src/core/qa/risk-calculator.d.ts.map +1 -1
  180. package/dist/src/core/repo-structure/setup-summary.d.ts +1 -1
  181. package/dist/src/core/repo-structure/setup-summary.d.ts.map +1 -1
  182. package/dist/src/core/rfc-generator-v2.d.ts +1 -1
  183. package/dist/src/core/rfc-generator-v2.d.ts.map +1 -1
  184. package/dist/src/core/rfc-generator-v2.js +1 -1
  185. package/dist/src/core/rfc-generator-v2.js.map +1 -1
  186. package/dist/src/core/serverless/context-detector.d.ts +12 -0
  187. package/dist/src/core/serverless/context-detector.d.ts.map +1 -0
  188. package/dist/src/core/serverless/context-detector.js +213 -0
  189. package/dist/src/core/serverless/context-detector.js.map +1 -0
  190. package/dist/src/core/serverless/cost-comparison.d.ts +73 -0
  191. package/dist/src/core/serverless/cost-comparison.d.ts.map +1 -0
  192. package/dist/src/core/serverless/cost-comparison.js +198 -0
  193. package/dist/src/core/serverless/cost-comparison.js.map +1 -0
  194. package/dist/src/core/serverless/cost-estimator.d.ts +69 -0
  195. package/dist/src/core/serverless/cost-estimator.d.ts.map +1 -0
  196. package/dist/src/core/serverless/cost-estimator.js +127 -0
  197. package/dist/src/core/serverless/cost-estimator.js.map +1 -0
  198. package/dist/src/core/serverless/cost-optimizer.d.ts +57 -0
  199. package/dist/src/core/serverless/cost-optimizer.d.ts.map +1 -0
  200. package/dist/src/core/serverless/cost-optimizer.js +221 -0
  201. package/dist/src/core/serverless/cost-optimizer.js.map +1 -0
  202. package/dist/src/core/serverless/index.d.ts +20 -0
  203. package/dist/src/core/serverless/index.d.ts.map +1 -0
  204. package/dist/src/core/serverless/index.js +26 -0
  205. package/dist/src/core/serverless/index.js.map +1 -0
  206. package/dist/src/core/serverless/learning-path-recommender.d.ts +152 -0
  207. package/dist/src/core/serverless/learning-path-recommender.d.ts.map +1 -0
  208. package/dist/src/core/serverless/learning-path-recommender.js +389 -0
  209. package/dist/src/core/serverless/learning-path-recommender.js.map +1 -0
  210. package/dist/src/core/serverless/platform-data-loader.d.ts +22 -0
  211. package/dist/src/core/serverless/platform-data-loader.d.ts.map +1 -0
  212. package/dist/src/core/serverless/platform-data-loader.js +49 -0
  213. package/dist/src/core/serverless/platform-data-loader.js.map +1 -0
  214. package/dist/src/core/serverless/platform-selector.d.ts +20 -0
  215. package/dist/src/core/serverless/platform-selector.d.ts.map +1 -0
  216. package/dist/src/core/serverless/platform-selector.js +279 -0
  217. package/dist/src/core/serverless/platform-selector.js.map +1 -0
  218. package/dist/src/core/serverless/recommendation-formatter.d.ts +24 -0
  219. package/dist/src/core/serverless/recommendation-formatter.d.ts.map +1 -0
  220. package/dist/src/core/serverless/recommendation-formatter.js +70 -0
  221. package/dist/src/core/serverless/recommendation-formatter.js.map +1 -0
  222. package/dist/src/core/serverless/suitability-analyzer.d.ts +22 -0
  223. package/dist/src/core/serverless/suitability-analyzer.d.ts.map +1 -0
  224. package/dist/src/core/serverless/suitability-analyzer.js +262 -0
  225. package/dist/src/core/serverless/suitability-analyzer.js.map +1 -0
  226. package/dist/src/core/serverless/types.d.ts +96 -0
  227. package/dist/src/core/serverless/types.d.ts.map +1 -0
  228. package/dist/src/core/serverless/types.js +5 -0
  229. package/dist/src/core/serverless/types.js.map +1 -0
  230. package/dist/src/core/sync/bidirectional-engine.d.ts +1 -1
  231. package/dist/src/core/sync/bidirectional-engine.d.ts.map +1 -1
  232. package/dist/src/core/sync/enhanced-content-builder.d.ts +1 -1
  233. package/dist/src/core/sync/enhanced-content-builder.d.ts.map +1 -1
  234. package/dist/src/core/sync/profile-manager.d.ts +1 -1
  235. package/dist/src/core/sync/profile-manager.d.ts.map +1 -1
  236. package/dist/src/core/sync/profile-selector.d.ts +1 -1
  237. package/dist/src/core/sync/profile-selector.d.ts.map +1 -1
  238. package/dist/src/core/sync/profile-selector.js +1 -1
  239. package/dist/src/core/sync/profile-selector.js.map +1 -1
  240. package/dist/src/core/sync/project-context.d.ts +1 -1
  241. package/dist/src/core/sync/project-context.d.ts.map +1 -1
  242. package/dist/src/core/sync/rate-limiter.d.ts +1 -1
  243. package/dist/src/core/sync/rate-limiter.d.ts.map +1 -1
  244. package/dist/src/core/sync/status-sync-engine.d.ts +2 -2
  245. package/dist/src/core/sync/status-sync-engine.d.ts.map +1 -1
  246. package/dist/src/core/sync/status-sync-engine.js +2 -2
  247. package/dist/src/core/sync/status-sync-engine.js.map +1 -1
  248. package/dist/src/core/sync/time-range-selector.d.ts +1 -1
  249. package/dist/src/core/sync/time-range-selector.d.ts.map +1 -1
  250. package/dist/src/core/sync/time-range-selector.js +1 -1
  251. package/dist/src/core/sync/time-range-selector.js.map +1 -1
  252. package/dist/src/core/types/increment-metadata.d.ts +27 -0
  253. package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
  254. package/dist/src/core/types/increment-metadata.js +45 -1
  255. package/dist/src/core/types/increment-metadata.js.map +1 -1
  256. package/dist/src/core/types/sync-profile.d.ts +2 -0
  257. package/dist/src/core/types/sync-profile.d.ts.map +1 -1
  258. package/dist/src/core/types/sync-profile.js.map +1 -1
  259. package/dist/src/core/validation/increment-structure-validator.d.ts +47 -0
  260. package/dist/src/core/validation/increment-structure-validator.d.ts.map +1 -0
  261. package/dist/src/core/validation/increment-structure-validator.js +187 -0
  262. package/dist/src/core/validation/increment-structure-validator.js.map +1 -0
  263. package/dist/src/core/validation/three-file-validator.d.ts +82 -0
  264. package/dist/src/core/validation/three-file-validator.d.ts.map +1 -0
  265. package/dist/src/core/validation/three-file-validator.js +320 -0
  266. package/dist/src/core/validation/three-file-validator.js.map +1 -0
  267. package/dist/src/core/workflow/phase-detector.d.ts +103 -0
  268. package/dist/src/core/workflow/phase-detector.d.ts.map +1 -0
  269. package/dist/src/core/workflow/phase-detector.js +704 -0
  270. package/dist/src/core/workflow/phase-detector.js.map +1 -0
  271. package/dist/src/core/workflow/types.d.ts +153 -0
  272. package/dist/src/core/workflow/types.d.ts.map +1 -0
  273. package/dist/src/core/workflow/types.js +47 -0
  274. package/dist/src/core/workflow/types.js.map +1 -0
  275. package/dist/src/init/InitFlow.d.ts +37 -0
  276. package/dist/src/init/InitFlow.d.ts.map +1 -0
  277. package/dist/src/init/InitFlow.js +209 -0
  278. package/dist/src/init/InitFlow.js.map +1 -0
  279. package/dist/src/init/architecture/ArchitectureDecisionEngine.d.ts +107 -0
  280. package/dist/src/init/architecture/ArchitectureDecisionEngine.d.ts.map +1 -0
  281. package/dist/src/init/architecture/ArchitectureDecisionEngine.js +405 -0
  282. package/dist/src/init/architecture/ArchitectureDecisionEngine.js.map +1 -0
  283. package/dist/src/init/architecture/CloudCreditsDatabase.d.ts +11 -0
  284. package/dist/src/init/architecture/CloudCreditsDatabase.d.ts.map +1 -0
  285. package/dist/src/init/architecture/CloudCreditsDatabase.js +92 -0
  286. package/dist/src/init/architecture/CloudCreditsDatabase.js.map +1 -0
  287. package/dist/src/init/architecture/types.d.ts +251 -0
  288. package/dist/src/init/architecture/types.d.ts.map +1 -0
  289. package/dist/src/init/architecture/types.js +54 -0
  290. package/dist/src/init/architecture/types.js.map +1 -0
  291. package/dist/src/init/compliance/ComplianceDetector.d.ts +17 -0
  292. package/dist/src/init/compliance/ComplianceDetector.d.ts.map +1 -0
  293. package/dist/src/init/compliance/ComplianceDetector.js +64 -0
  294. package/dist/src/init/compliance/ComplianceDetector.js.map +1 -0
  295. package/dist/src/init/compliance/standards-database.d.ts +48 -0
  296. package/dist/src/init/compliance/standards-database.d.ts.map +1 -0
  297. package/dist/src/init/compliance/standards-database.js +506 -0
  298. package/dist/src/init/compliance/standards-database.js.map +1 -0
  299. package/dist/src/init/compliance/types.d.ts +91 -0
  300. package/dist/src/init/compliance/types.d.ts.map +1 -0
  301. package/dist/src/init/compliance/types.js +43 -0
  302. package/dist/src/init/compliance/types.js.map +1 -0
  303. package/dist/src/init/repo/GitHubAPIClient.d.ts +51 -0
  304. package/dist/src/init/repo/GitHubAPIClient.d.ts.map +1 -0
  305. package/dist/src/init/repo/GitHubAPIClient.js +144 -0
  306. package/dist/src/init/repo/GitHubAPIClient.js.map +1 -0
  307. package/dist/src/init/repo/RepositorySelector.d.ts +45 -0
  308. package/dist/src/init/repo/RepositorySelector.d.ts.map +1 -0
  309. package/dist/src/init/repo/RepositorySelector.js +106 -0
  310. package/dist/src/init/repo/RepositorySelector.js.map +1 -0
  311. package/dist/src/init/repo/types.d.ts +95 -0
  312. package/dist/src/init/repo/types.d.ts.map +1 -0
  313. package/dist/src/init/repo/types.js +25 -0
  314. package/dist/src/init/repo/types.js.map +1 -0
  315. package/dist/src/init/research/CompetitorAnalyzer.d.ts +79 -0
  316. package/dist/src/init/research/CompetitorAnalyzer.d.ts.map +1 -0
  317. package/dist/src/init/research/CompetitorAnalyzer.js +265 -0
  318. package/dist/src/init/research/CompetitorAnalyzer.js.map +1 -0
  319. package/dist/src/init/research/MarketDetector.d.ts +62 -0
  320. package/dist/src/init/research/MarketDetector.d.ts.map +1 -0
  321. package/dist/src/init/research/MarketDetector.js +247 -0
  322. package/dist/src/init/research/MarketDetector.js.map +1 -0
  323. package/dist/src/init/research/OpportunityScorer.d.ts +58 -0
  324. package/dist/src/init/research/OpportunityScorer.d.ts.map +1 -0
  325. package/dist/src/init/research/OpportunityScorer.js +194 -0
  326. package/dist/src/init/research/OpportunityScorer.js.map +1 -0
  327. package/dist/src/init/research/QuestionGenerator.d.ts +68 -0
  328. package/dist/src/init/research/QuestionGenerator.d.ts.map +1 -0
  329. package/dist/src/init/research/QuestionGenerator.js +244 -0
  330. package/dist/src/init/research/QuestionGenerator.js.map +1 -0
  331. package/dist/src/init/research/ReportGenerator.d.ts +36 -0
  332. package/dist/src/init/research/ReportGenerator.d.ts.map +1 -0
  333. package/dist/src/init/research/ReportGenerator.js +125 -0
  334. package/dist/src/init/research/ReportGenerator.js.map +1 -0
  335. package/dist/src/init/research/VisionAnalyzer.d.ts +129 -0
  336. package/dist/src/init/research/VisionAnalyzer.d.ts.map +1 -0
  337. package/dist/src/init/research/VisionAnalyzer.js +212 -0
  338. package/dist/src/init/research/VisionAnalyzer.js.map +1 -0
  339. package/dist/src/init/research/keyword-extractor.d.ts +78 -0
  340. package/dist/src/init/research/keyword-extractor.d.ts.map +1 -0
  341. package/dist/src/init/research/keyword-extractor.js +230 -0
  342. package/dist/src/init/research/keyword-extractor.js.map +1 -0
  343. package/dist/src/init/research/src/config/ConfigManager.d.ts +14 -0
  344. package/dist/src/init/research/src/config/ConfigManager.d.ts.map +1 -0
  345. package/dist/src/init/research/src/config/ConfigManager.js +45 -0
  346. package/dist/src/init/research/src/config/ConfigManager.js.map +1 -0
  347. package/dist/src/init/research/src/config/types.d.ts +102 -0
  348. package/dist/src/init/research/src/config/types.d.ts.map +1 -0
  349. package/dist/src/init/research/src/config/types.js +24 -0
  350. package/dist/src/init/research/src/config/types.js.map +1 -0
  351. package/dist/src/init/research/types.d.ts +183 -0
  352. package/dist/src/init/research/types.d.ts.map +1 -0
  353. package/dist/src/init/research/types.js +65 -0
  354. package/dist/src/init/research/types.js.map +1 -0
  355. package/dist/src/init/team/ServerlessSavingsCalculator.d.ts +136 -0
  356. package/dist/src/init/team/ServerlessSavingsCalculator.d.ts.map +1 -0
  357. package/dist/src/init/team/ServerlessSavingsCalculator.js +360 -0
  358. package/dist/src/init/team/ServerlessSavingsCalculator.js.map +1 -0
  359. package/dist/src/init/team/TeamRecommender.d.ts +122 -0
  360. package/dist/src/init/team/TeamRecommender.d.ts.map +1 -0
  361. package/dist/src/init/team/TeamRecommender.js +405 -0
  362. package/dist/src/init/team/TeamRecommender.js.map +1 -0
  363. package/dist/src/init/team/types.d.ts +95 -0
  364. package/dist/src/init/team/types.d.ts.map +1 -0
  365. package/dist/src/init/team/types.js +23 -0
  366. package/dist/src/init/team/types.js.map +1 -0
  367. package/dist/src/integrations/jira/jira-mapper.d.ts +1 -1
  368. package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -1
  369. package/dist/src/types/cost-tracking.d.ts +1 -1
  370. package/dist/src/types/cost-tracking.d.ts.map +1 -1
  371. package/dist/src/utils/cost-reporter.d.ts +2 -2
  372. package/dist/src/utils/cost-reporter.d.ts.map +1 -1
  373. package/dist/src/utils/docs-preview/config-generator.d.ts +1 -1
  374. package/dist/src/utils/docs-preview/config-generator.d.ts.map +1 -1
  375. package/dist/src/utils/docs-preview/config-generator.js +1 -1
  376. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +1 -1
  377. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +1 -1
  378. package/dist/src/utils/docs-preview/docusaurus-setup.js +4 -4
  379. package/dist/src/utils/docs-preview/docusaurus-setup.js.map +1 -1
  380. package/dist/src/utils/docs-preview/index.d.ts +6 -6
  381. package/dist/src/utils/docs-preview/index.d.ts.map +1 -1
  382. package/dist/src/utils/docs-preview/index.js +6 -6
  383. package/dist/src/utils/docs-preview/index.js.map +1 -1
  384. package/dist/src/utils/docs-preview/package-installer.d.ts +1 -1
  385. package/dist/src/utils/docs-preview/package-installer.d.ts.map +1 -1
  386. package/dist/src/utils/docs-preview/package-installer.js +1 -1
  387. package/dist/src/utils/docs-preview/package-installer.js.map +1 -1
  388. package/dist/src/utils/docs-preview/server-manager.d.ts +1 -1
  389. package/dist/src/utils/docs-preview/server-manager.d.ts.map +1 -1
  390. package/dist/src/utils/docs-preview/server-manager.js +1 -1
  391. package/dist/src/utils/docs-preview/server-manager.js.map +1 -1
  392. package/dist/src/utils/docs-preview/sidebar-builder.d.ts +1 -1
  393. package/dist/src/utils/docs-preview/sidebar-builder.d.ts.map +1 -1
  394. package/dist/src/utils/generate-skills-index.d.ts +1 -1
  395. package/dist/src/utils/generate-skills-index.js +1 -1
  396. package/dist/src/utils/project-detection.js +1 -1
  397. package/dist/src/utils/project-detection.js.map +1 -1
  398. package/package.json +9 -3
  399. package/plugins/specweave/agents/architect/AGENT.md +605 -0
  400. package/plugins/specweave/agents/infrastructure/AGENT.md +760 -0
  401. package/plugins/specweave/agents/pm/AGENT.md +14 -13
  402. package/plugins/specweave/commands/specweave-check-hooks.md +186 -0
  403. package/plugins/specweave/commands/specweave-plan.md +151 -0
  404. package/plugins/specweave/commands/specweave-sync-acs.md +342 -0
  405. package/plugins/specweave/commands/specweave-validate.md +60 -11
  406. package/plugins/specweave/hooks/lib/update-status-line.sh +8 -4
  407. package/plugins/specweave/hooks/post-increment-change.sh +4 -0
  408. package/plugins/specweave/hooks/post-increment-completion.sh +7 -1
  409. package/plugins/specweave/hooks/post-increment-planning.sh +4 -0
  410. package/plugins/specweave/hooks/post-increment-status-change.sh +4 -0
  411. package/plugins/specweave/hooks/user-prompt-submit.sh +78 -0
  412. package/plugins/specweave/iac-templates/aws-lambda/README.md.hbs +280 -0
  413. package/plugins/specweave/iac-templates/aws-lambda/defaults.json +118 -0
  414. package/plugins/specweave/iac-templates/aws-lambda/environments/dev.defaults.json +46 -0
  415. package/plugins/specweave/iac-templates/aws-lambda/environments/prod.defaults.json +67 -0
  416. package/plugins/specweave/iac-templates/aws-lambda/environments/staging.defaults.json +47 -0
  417. package/plugins/specweave/iac-templates/aws-lambda/main.tf.hbs +241 -0
  418. package/plugins/specweave/iac-templates/aws-lambda/outputs.tf.hbs +61 -0
  419. package/plugins/specweave/iac-templates/aws-lambda/provider.tf.hbs +15 -0
  420. package/plugins/specweave/iac-templates/aws-lambda/variables.tf.hbs +88 -0
  421. package/plugins/specweave/iac-templates/azure-functions/README.md.hbs +315 -0
  422. package/plugins/specweave/iac-templates/azure-functions/defaults.json +65 -0
  423. package/plugins/specweave/iac-templates/azure-functions/environments/dev.defaults.json +30 -0
  424. package/plugins/specweave/iac-templates/azure-functions/environments/prod.defaults.json +34 -0
  425. package/plugins/specweave/iac-templates/azure-functions/environments/staging.defaults.json +31 -0
  426. package/plugins/specweave/iac-templates/azure-functions/iam.tf.hbs +34 -0
  427. package/plugins/specweave/iac-templates/azure-functions/main.tf.hbs +247 -0
  428. package/plugins/specweave/iac-templates/azure-functions/outputs.tf.hbs +72 -0
  429. package/plugins/specweave/iac-templates/azure-functions/provider.tf.hbs +14 -0
  430. package/plugins/specweave/iac-templates/azure-functions/variables.tf.hbs +64 -0
  431. package/plugins/specweave/iac-templates/firebase/README.md.hbs +487 -0
  432. package/plugins/specweave/iac-templates/firebase/defaults.json +55 -0
  433. package/plugins/specweave/iac-templates/firebase/environments/dev.defaults.json +44 -0
  434. package/plugins/specweave/iac-templates/firebase/environments/prod.defaults.json +52 -0
  435. package/plugins/specweave/iac-templates/firebase/environments/staging.defaults.json +43 -0
  436. package/plugins/specweave/iac-templates/firebase/iam.tf.hbs +75 -0
  437. package/plugins/specweave/iac-templates/firebase/main.tf.hbs +297 -0
  438. package/plugins/specweave/iac-templates/firebase/outputs.tf.hbs +67 -0
  439. package/plugins/specweave/iac-templates/firebase/provider.tf.hbs +26 -0
  440. package/plugins/specweave/iac-templates/firebase/variables.tf.hbs +68 -0
  441. package/plugins/specweave/iac-templates/gcp-cloud-functions/README.md.hbs +330 -0
  442. package/plugins/specweave/iac-templates/gcp-cloud-functions/defaults.json +69 -0
  443. package/plugins/specweave/iac-templates/gcp-cloud-functions/environments/dev.defaults.json +33 -0
  444. package/plugins/specweave/iac-templates/gcp-cloud-functions/environments/prod.defaults.json +40 -0
  445. package/plugins/specweave/iac-templates/gcp-cloud-functions/environments/staging.defaults.json +33 -0
  446. package/plugins/specweave/iac-templates/gcp-cloud-functions/iam.tf.hbs +54 -0
  447. package/plugins/specweave/iac-templates/gcp-cloud-functions/main.tf.hbs +211 -0
  448. package/plugins/specweave/iac-templates/gcp-cloud-functions/outputs.tf.hbs +44 -0
  449. package/plugins/specweave/iac-templates/gcp-cloud-functions/provider.tf.hbs +14 -0
  450. package/plugins/specweave/iac-templates/gcp-cloud-functions/variables.tf.hbs +82 -0
  451. package/plugins/specweave/iac-templates/supabase/README.md.hbs +534 -0
  452. package/plugins/specweave/iac-templates/supabase/defaults.json +69 -0
  453. package/plugins/specweave/iac-templates/supabase/environments/dev.defaults.json +55 -0
  454. package/plugins/specweave/iac-templates/supabase/environments/prod.defaults.json +75 -0
  455. package/plugins/specweave/iac-templates/supabase/environments/staging.defaults.json +54 -0
  456. package/plugins/specweave/iac-templates/supabase/iam.tf.hbs +146 -0
  457. package/plugins/specweave/iac-templates/supabase/main.tf.hbs +310 -0
  458. package/plugins/specweave/iac-templates/supabase/outputs.tf.hbs +74 -0
  459. package/plugins/specweave/iac-templates/supabase/provider.tf.hbs +19 -0
  460. package/plugins/specweave/iac-templates/supabase/variables.tf.hbs +78 -0
  461. package/plugins/specweave/knowledge-base/serverless/FRESHNESS.md +69 -0
  462. package/plugins/specweave/knowledge-base/serverless/learning-paths.json +865 -0
  463. package/plugins/specweave/knowledge-base/serverless/platforms/aws-lambda.json +41 -0
  464. package/plugins/specweave/knowledge-base/serverless/platforms/azure-functions.json +41 -0
  465. package/plugins/specweave/knowledge-base/serverless/platforms/firebase.json +46 -0
  466. package/plugins/specweave/knowledge-base/serverless/platforms/gcp-cloud-functions.json +41 -0
  467. package/plugins/specweave/knowledge-base/serverless/platforms/supabase.json +41 -0
  468. package/plugins/specweave/knowledge-base/serverless/schema.json +155 -0
  469. package/plugins/specweave/lib/hooks/auto-transition.js +50 -0
  470. package/plugins/specweave/lib/hooks/auto-transition.ts +84 -0
  471. package/plugins/specweave/lib/hooks/invoke-translator-skill.js +1 -1
  472. package/plugins/specweave/lib/hooks/invoke-translator-skill.ts +1 -1
  473. package/plugins/specweave/lib/hooks/sync-living-docs.js +4 -31
  474. package/plugins/specweave/lib/hooks/{sync-living-docs.ts → sync-living-docs.ts.DISABLED} +9 -48
  475. package/plugins/specweave/lib/hooks/translate-file.js +1 -1
  476. package/plugins/specweave/lib/hooks/translate-file.ts +1 -1
  477. package/plugins/specweave/lib/hooks/update-ac-status.js +24 -75
  478. package/plugins/specweave/lib/hooks/update-ac-status.ts +46 -135
  479. package/plugins/specweave/lib/hooks/update-tasks-md.js +115 -3
  480. package/plugins/specweave/lib/hooks/update-tasks-md.ts +182 -10
  481. package/plugins/specweave/lib/utils/validate-dev-setup.sh +133 -0
  482. package/plugins/specweave/skills/increment-planner/SKILL.md +25 -15
  483. package/plugins/specweave/skills/serverless-recommender/SKILL.md +368 -0
  484. package/plugins/specweave/templates/iac/aws-lambda/templates/iam.tf.hbs +137 -0
  485. package/plugins/specweave/templates/iac/aws-lambda/templates/main.tf.hbs +216 -0
  486. package/plugins/specweave-github/lib/IssueStateManager.js +117 -0
  487. package/plugins/specweave-github/lib/IssueStateManager.ts +231 -0
  488. package/plugins/specweave-github/lib/user-story-issue-builder.js +7 -0
  489. package/plugins/specweave-github/lib/user-story-issue-builder.ts +11 -0
  490. package/plugins/specweave-ui/.mcp.json +0 -10
  491. package/plugins/specweave-ui/README.md +26 -26
  492. package/plugins/specweave-ui/skills/browser-automation/SKILL.md +31 -18
  493. package/src/templates/tasks.md.template +51 -33
  494. package/dist/locales/de/.gitkeep +0 -0
  495. package/dist/locales/de/cli.json +0 -108
  496. package/dist/locales/en/cli.json +0 -287
  497. package/dist/locales/en/errors.json +0 -7
  498. package/dist/locales/en/templates.json +0 -6
  499. package/dist/locales/es/.gitkeep +0 -0
  500. package/dist/locales/es/cli.json +0 -41
  501. package/dist/locales/fr/.gitkeep +0 -0
  502. package/dist/locales/fr/cli.json +0 -108
  503. package/dist/locales/ja/.gitkeep +0 -0
  504. package/dist/locales/ja/cli.json +0 -108
  505. package/dist/locales/ko/.gitkeep +0 -0
  506. package/dist/locales/ko/cli.json +0 -108
  507. package/dist/locales/pt/.gitkeep +0 -0
  508. package/dist/locales/pt/cli.json +0 -108
  509. package/dist/locales/ru/.gitkeep +0 -0
  510. package/dist/locales/ru/cli.json +0 -269
  511. package/dist/locales/zh/.gitkeep +0 -0
  512. package/dist/locales/zh/cli.json +0 -108
  513. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts +0 -89
  514. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.map +0 -1
  515. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js +0 -226
  516. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js.map +0 -1
  517. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts +0 -60
  518. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.map +0 -1
  519. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js +0 -201
  520. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js.map +0 -1
  521. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts +0 -42
  522. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.map +0 -1
  523. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js +0 -123
  524. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js.map +0 -1
  525. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts +0 -45
  526. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.map +0 -1
  527. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js +0 -132
  528. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js.map +0 -1
  529. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts +0 -33
  530. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts.map +0 -1
  531. package/dist/plugins/specweave/lib/hooks/reflection-parser.js +0 -419
  532. package/dist/plugins/specweave/lib/hooks/reflection-parser.js.map +0 -1
  533. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts +0 -56
  534. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.map +0 -1
  535. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js +0 -239
  536. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js.map +0 -1
  537. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts +0 -64
  538. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts.map +0 -1
  539. package/dist/plugins/specweave/lib/hooks/reflection-storage.js +0 -305
  540. package/dist/plugins/specweave/lib/hooks/reflection-storage.js.map +0 -1
  541. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts +0 -43
  542. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts.map +0 -1
  543. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js +0 -203
  544. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js.map +0 -1
  545. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts +0 -32
  546. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +0 -1
  547. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +0 -405
  548. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +0 -1
  549. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts +0 -59
  550. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts.map +0 -1
  551. package/dist/plugins/specweave/lib/hooks/translate-file.js +0 -350
  552. package/dist/plugins/specweave/lib/hooks/translate-file.js.map +0 -1
  553. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts +0 -13
  554. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts.map +0 -1
  555. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js +0 -175
  556. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js.map +0 -1
  557. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts +0 -164
  558. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts.map +0 -1
  559. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js +0 -73
  560. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js.map +0 -1
  561. package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts +0 -21
  562. package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts.map +0 -1
  563. package/dist/plugins/specweave/lib/hooks/update-ac-status.js +0 -162
  564. package/dist/plugins/specweave/lib/hooks/update-ac-status.js.map +0 -1
  565. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts +0 -29
  566. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts.map +0 -1
  567. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js +0 -203
  568. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js.map +0 -1
  569. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.d.ts +0 -25
  570. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.d.ts.map +0 -1
  571. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.js +0 -191
  572. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.js.map +0 -1
  573. package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.d.ts +0 -57
  574. package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.d.ts.map +0 -1
  575. package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.js +0 -248
  576. package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.js.map +0 -1
  577. package/dist/plugins/specweave-kafka/lib/cli/types.d.ts +0 -82
  578. package/dist/plugins/specweave-kafka/lib/cli/types.d.ts.map +0 -1
  579. package/dist/plugins/specweave-kafka/lib/cli/types.js +0 -13
  580. package/dist/plugins/specweave-kafka/lib/cli/types.js.map +0 -1
  581. package/dist/plugins/specweave-kafka/lib/mcp/detector.d.ts +0 -49
  582. package/dist/plugins/specweave-kafka/lib/mcp/detector.d.ts.map +0 -1
  583. package/dist/plugins/specweave-kafka/lib/mcp/detector.js +0 -316
  584. package/dist/plugins/specweave-kafka/lib/mcp/detector.js.map +0 -1
  585. package/dist/plugins/specweave-kafka/lib/mcp/types.d.ts +0 -70
  586. package/dist/plugins/specweave-kafka/lib/mcp/types.d.ts.map +0 -1
  587. package/dist/plugins/specweave-kafka/lib/mcp/types.js +0 -23
  588. package/dist/plugins/specweave-kafka/lib/mcp/types.js.map +0 -1
  589. package/dist/plugins/specweave-kafka/lib/utils/partitioning.d.ts +0 -85
  590. package/dist/plugins/specweave-kafka/lib/utils/partitioning.d.ts.map +0 -1
  591. package/dist/plugins/specweave-kafka/lib/utils/partitioning.js +0 -281
  592. package/dist/plugins/specweave-kafka/lib/utils/partitioning.js.map +0 -1
  593. package/dist/plugins/specweave-kafka/lib/utils/sizing.d.ts +0 -75
  594. package/dist/plugins/specweave-kafka/lib/utils/sizing.d.ts.map +0 -1
  595. package/dist/plugins/specweave-kafka/lib/utils/sizing.js +0 -238
  596. package/dist/plugins/specweave-kafka/lib/utils/sizing.js.map +0 -1
  597. package/dist/spec-parser.js +0 -629
  598. package/dist/src/core/living-docs/spec-distributor.d.ts +0 -180
  599. package/dist/src/core/living-docs/spec-distributor.d.ts.map +0 -1
  600. package/dist/src/core/living-docs/spec-distributor.js +0 -1840
  601. package/dist/src/core/living-docs/spec-distributor.js.map +0 -1
  602. package/dist/src/core/sync/spec-content-sync.d.ts +0 -88
  603. package/dist/src/core/sync/spec-content-sync.d.ts.map +0 -1
  604. package/dist/src/core/sync/spec-content-sync.js +0 -5
  605. package/dist/src/core/sync/spec-content-sync.js.map +0 -1
  606. package/dist/tsconfig.tsbuildinfo +0 -1
  607. package/plugins/specweave-ado/lib/enhanced-ado-sync.js +0 -170
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Completion Propagator - Bottom-up completion propagation
3
+ *
4
+ * Propagates completion status from Tasks → ACs → User Stories → Increments
5
+ *
6
+ * Rules:
7
+ * - When all Tasks for AC complete → Mark AC complete
8
+ * - When all ACs for User Story complete → Mark User Story complete
9
+ * - When all User Stories for Increment complete → Mark Increment complete
10
+ */
11
+ /**
12
+ * Completion statistics
13
+ */
14
+ export interface CompletionStats {
15
+ /** Total items */
16
+ total: number;
17
+ /** Completed items */
18
+ completed: number;
19
+ /** Completion percentage */
20
+ percentage: number;
21
+ /** Is 100% complete */
22
+ isComplete: boolean;
23
+ }
24
+ /**
25
+ * Propagation result
26
+ */
27
+ export interface PropagationResult {
28
+ /** ACs marked complete */
29
+ acsCompleted: number;
30
+ /** User Stories marked complete */
31
+ userStoriesCompleted: number;
32
+ /** Increment marked complete */
33
+ incrementCompleted: boolean;
34
+ /** Errors encountered */
35
+ errors: string[];
36
+ }
37
+ /**
38
+ * CompletionPropagator - Handles bottom-up completion
39
+ */
40
+ export declare class CompletionPropagator {
41
+ /**
42
+ * Propagate completion from Tasks → ACs → User Stories → Increment
43
+ *
44
+ * @param incrementPath - Path to increment
45
+ */
46
+ propagateCompletion(incrementPath: string): Promise<PropagationResult>;
47
+ /**
48
+ * Get completion statistics for an AC
49
+ *
50
+ * @param acId - AC ID (e.g., "AC-US1-01")
51
+ * @param incrementPath - Path to increment
52
+ */
53
+ getAcCompletionStats(acId: string, incrementPath: string): Promise<CompletionStats>;
54
+ /**
55
+ * Get completion statistics for a User Story
56
+ *
57
+ * @param userStoryId - User Story ID (e.g., "US1")
58
+ * @param incrementPath - Path to increment
59
+ */
60
+ getUserStoryCompletionStats(userStoryId: string, incrementPath: string): Promise<CompletionStats>;
61
+ /**
62
+ * Get completion statistics for entire increment
63
+ *
64
+ * @param incrementPath - Path to increment
65
+ */
66
+ getIncrementCompletionStats(incrementPath: string): Promise<CompletionStats>;
67
+ /**
68
+ * Parse ACs from spec.md content
69
+ */
70
+ private parseAcs;
71
+ /**
72
+ * Parse Tasks from tasks.md content
73
+ */
74
+ private parseTasks;
75
+ /**
76
+ * Group ACs by User Story ID
77
+ */
78
+ private groupAcsByUserStory;
79
+ /**
80
+ * Update AC checkbox in content
81
+ */
82
+ private updateAcCheckbox;
83
+ }
84
+ //# sourceMappingURL=CompletionPropagator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompletionPropagator.d.ts","sourceRoot":"","sources":["../../../../src/core/living-docs/CompletionPropagator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IAEd,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAElB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IAEnB,uBAAuB;IACvB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;IAErB,mCAAmC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAE7B,gCAAgC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAE5B,yBAAyB;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B;;;;OAIG;IACG,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA2E5E;;;;;OAKG;IACG,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBzF;;;;;OAKG;IACG,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBvG;;;;OAIG;IACG,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAelF;;OAEG;IACH,OAAO,CAAC,QAAQ;IAkBhB;;OAEG;IACH,OAAO,CAAC,UAAU;IA6BlB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAKzB"}
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Completion Propagator - Bottom-up completion propagation
3
+ *
4
+ * Propagates completion status from Tasks → ACs → User Stories → Increments
5
+ *
6
+ * Rules:
7
+ * - When all Tasks for AC complete → Mark AC complete
8
+ * - When all ACs for User Story complete → Mark User Story complete
9
+ * - When all User Stories for Increment complete → Mark Increment complete
10
+ */
11
+ import fs from 'fs/promises';
12
+ import path from 'path';
13
+ /**
14
+ * CompletionPropagator - Handles bottom-up completion
15
+ */
16
+ export class CompletionPropagator {
17
+ /**
18
+ * Propagate completion from Tasks → ACs → User Stories → Increment
19
+ *
20
+ * @param incrementPath - Path to increment
21
+ */
22
+ async propagateCompletion(incrementPath) {
23
+ const result = {
24
+ acsCompleted: 0,
25
+ userStoriesCompleted: 0,
26
+ incrementCompleted: false,
27
+ errors: []
28
+ };
29
+ try {
30
+ // 1. Read increment spec.md and tasks.md
31
+ const specPath = path.join(incrementPath, 'spec.md');
32
+ const tasksPath = path.join(incrementPath, 'tasks.md');
33
+ let specContent = await fs.readFile(specPath, 'utf-8');
34
+ const tasksContent = await fs.readFile(tasksPath, 'utf-8');
35
+ // 2. Parse ACs and Tasks
36
+ const acs = this.parseAcs(specContent);
37
+ const tasks = this.parseTasks(tasksContent);
38
+ // 3. For each AC, check if all its tasks are complete
39
+ let specModified = false;
40
+ for (const ac of acs) {
41
+ // Find tasks for this AC
42
+ const acTasks = tasks.filter(t => t.acIds.includes(ac.id));
43
+ if (acTasks.length > 0) {
44
+ // Check if all tasks complete
45
+ const allTasksComplete = acTasks.every(t => t.completed);
46
+ if (allTasksComplete && !ac.completed) {
47
+ // Mark AC as complete
48
+ specContent = this.updateAcCheckbox(specContent, ac.id, true);
49
+ result.acsCompleted++;
50
+ specModified = true;
51
+ }
52
+ else if (!allTasksComplete && ac.completed) {
53
+ // Mark AC as incomplete (some task was reopened)
54
+ specContent = this.updateAcCheckbox(specContent, ac.id, false);
55
+ specModified = true;
56
+ }
57
+ }
58
+ }
59
+ // 4. Save updated spec.md if modified
60
+ if (specModified) {
61
+ await fs.writeFile(specPath, specContent, 'utf-8');
62
+ }
63
+ // 5. Check User Story completion
64
+ // Parse updated ACs to check if any User Stories are now complete
65
+ const updatedAcs = this.parseAcs(specContent);
66
+ const userStories = this.groupAcsByUserStory(updatedAcs);
67
+ for (const [userStoryId, userStoryAcs] of Object.entries(userStories)) {
68
+ const allAcsComplete = userStoryAcs.every(ac => ac.completed);
69
+ if (allAcsComplete) {
70
+ result.userStoriesCompleted++;
71
+ }
72
+ }
73
+ // 6. Check Increment completion
74
+ const allAcsComplete = updatedAcs.every(ac => ac.completed);
75
+ if (allAcsComplete && updatedAcs.length > 0) {
76
+ result.incrementCompleted = true;
77
+ // TODO: Update increment metadata status to 'completed'
78
+ }
79
+ }
80
+ catch (error) {
81
+ result.errors.push(error.message);
82
+ }
83
+ return result;
84
+ }
85
+ /**
86
+ * Get completion statistics for an AC
87
+ *
88
+ * @param acId - AC ID (e.g., "AC-US1-01")
89
+ * @param incrementPath - Path to increment
90
+ */
91
+ async getAcCompletionStats(acId, incrementPath) {
92
+ const tasksPath = path.join(incrementPath, 'tasks.md');
93
+ const tasksContent = await fs.readFile(tasksPath, 'utf-8');
94
+ const tasks = this.parseTasks(tasksContent);
95
+ const acTasks = tasks.filter(t => t.acIds.includes(acId));
96
+ const completedTasks = acTasks.filter(t => t.completed);
97
+ return {
98
+ total: acTasks.length,
99
+ completed: completedTasks.length,
100
+ percentage: acTasks.length > 0 ? Math.round((completedTasks.length / acTasks.length) * 100) : 0,
101
+ isComplete: acTasks.length > 0 && completedTasks.length === acTasks.length
102
+ };
103
+ }
104
+ /**
105
+ * Get completion statistics for a User Story
106
+ *
107
+ * @param userStoryId - User Story ID (e.g., "US1")
108
+ * @param incrementPath - Path to increment
109
+ */
110
+ async getUserStoryCompletionStats(userStoryId, incrementPath) {
111
+ const specPath = path.join(incrementPath, 'spec.md');
112
+ const specContent = await fs.readFile(specPath, 'utf-8');
113
+ const acs = this.parseAcs(specContent);
114
+ const userStoryAcs = acs.filter(ac => ac.userStoryId === userStoryId);
115
+ const completedAcs = userStoryAcs.filter(ac => ac.completed);
116
+ return {
117
+ total: userStoryAcs.length,
118
+ completed: completedAcs.length,
119
+ percentage: userStoryAcs.length > 0 ? Math.round((completedAcs.length / userStoryAcs.length) * 100) : 0,
120
+ isComplete: userStoryAcs.length > 0 && completedAcs.length === userStoryAcs.length
121
+ };
122
+ }
123
+ /**
124
+ * Get completion statistics for entire increment
125
+ *
126
+ * @param incrementPath - Path to increment
127
+ */
128
+ async getIncrementCompletionStats(incrementPath) {
129
+ const specPath = path.join(incrementPath, 'spec.md');
130
+ const specContent = await fs.readFile(specPath, 'utf-8');
131
+ const acs = this.parseAcs(specContent);
132
+ const completedAcs = acs.filter(ac => ac.completed);
133
+ return {
134
+ total: acs.length,
135
+ completed: completedAcs.length,
136
+ percentage: acs.length > 0 ? Math.round((completedAcs.length / acs.length) * 100) : 0,
137
+ isComplete: acs.length > 0 && completedAcs.length === acs.length
138
+ };
139
+ }
140
+ /**
141
+ * Parse ACs from spec.md content
142
+ */
143
+ parseAcs(content) {
144
+ const acs = [];
145
+ const lines = content.split('\n');
146
+ for (const line of lines) {
147
+ const match = line.match(/^- \[([ x])\] (AC-([A-Z0-9]+)-\d+):/);
148
+ if (match) {
149
+ acs.push({
150
+ id: match[2],
151
+ userStoryId: match[3],
152
+ completed: match[1] === 'x'
153
+ });
154
+ }
155
+ }
156
+ return acs;
157
+ }
158
+ /**
159
+ * Parse Tasks from tasks.md content
160
+ */
161
+ parseTasks(content) {
162
+ const tasks = [];
163
+ // Split by task headers
164
+ const taskPattern = /### (T-\d+):.*?(?=###|$)/gs;
165
+ const matches = content.matchAll(taskPattern);
166
+ for (const match of matches) {
167
+ const taskId = match[1];
168
+ const taskContent = match[0];
169
+ // Extract AC-IDs from task content
170
+ const acIdMatches = taskContent.matchAll(/AC-([\w]+-\d+)/g);
171
+ const acIds = Array.from(acIdMatches, m => `AC-${m[1]}`);
172
+ // Check if task is completed
173
+ const completedMatch = taskContent.match(/\*\*Completed\*\*:\s*(\d{4}-\d{2}-\d{2})/);
174
+ const completed = !!completedMatch;
175
+ tasks.push({
176
+ id: taskId,
177
+ acIds,
178
+ completed
179
+ });
180
+ }
181
+ return tasks;
182
+ }
183
+ /**
184
+ * Group ACs by User Story ID
185
+ */
186
+ groupAcsByUserStory(acs) {
187
+ const grouped = {};
188
+ for (const ac of acs) {
189
+ if (!grouped[ac.userStoryId]) {
190
+ grouped[ac.userStoryId] = [];
191
+ }
192
+ grouped[ac.userStoryId].push(ac);
193
+ }
194
+ return grouped;
195
+ }
196
+ /**
197
+ * Update AC checkbox in content
198
+ */
199
+ updateAcCheckbox(content, acId, completed) {
200
+ const checkbox = completed ? 'x' : ' ';
201
+ const pattern = new RegExp(`^- \\[([ x])\\] ${acId}:`, 'gm');
202
+ return content.replace(pattern, `- [${checkbox}] ${acId}:`);
203
+ }
204
+ }
205
+ //# sourceMappingURL=CompletionPropagator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompletionPropagator.js","sourceRoot":"","sources":["../../../../src/core/living-docs/CompletionPropagator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Project Detector
3
+ *
4
+ * Detects project type (backend/frontend/mobile) from AC descriptions.
5
+ */
6
+ import type { ProjectType, ProjectDetectionResult } from './types.js';
7
+ /**
8
+ * Detect project type from text
9
+ *
10
+ * @param text - Text to analyze (AC description, task title, etc.)
11
+ * @returns ProjectDetectionResult with detected projects and confidence
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const result = detectProject('Create backend API endpoint for user authentication');
16
+ * // result.projects = ['backend']
17
+ * // result.confidence = 0.8
18
+ * ```
19
+ */
20
+ export declare function detectProject(text: string): ProjectDetectionResult;
21
+ /**
22
+ * Filter text by project keywords
23
+ *
24
+ * @param text - Text to check
25
+ * @param projectFilter - Projects to filter by
26
+ * @returns True if text contains keywords for any of the specified projects
27
+ */
28
+ export declare function matchesProject(text: string, projectFilter: ProjectType[]): boolean;
29
+ //# sourceMappingURL=ProjectDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectDetector.d.ts","sourceRoot":"","sources":["../../../../src/core/living-docs/ProjectDetector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AA0BtE;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,CA6ClE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,OAAO,CAKlF"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Project Detector
3
+ *
4
+ * Detects project type (backend/frontend/mobile) from AC descriptions.
5
+ */
6
+ /**
7
+ * Project detection keywords
8
+ */
9
+ const PROJECT_KEYWORDS = {
10
+ backend: [
11
+ 'backend', 'api', 'server', 'database', 'db', 'endpoint', 'service',
12
+ 'rest', 'graphql', 'microservice', 'lambda', 'function', 'worker',
13
+ 'queue', 'cache', 'redis', 'postgres', 'mongodb', 'sql'
14
+ ],
15
+ frontend: [
16
+ 'frontend', 'ui', 'component', 'form', 'page', 'view', 'button',
17
+ 'modal', 'dialog', 'menu', 'nav', 'layout', 'react', 'vue', 'angular',
18
+ 'css', 'style', 'responsive', 'ux', 'user interface'
19
+ ],
20
+ mobile: [
21
+ 'mobile', 'ios', 'android', 'app', 'native', 'react native', 'flutter',
22
+ 'swift', 'kotlin', 'push notification', 'mobile app', 'tablet'
23
+ ],
24
+ shared: [
25
+ 'shared', 'common', 'utility', 'helper', 'type', 'interface', 'constant',
26
+ 'config', 'environment', 'validation'
27
+ ]
28
+ };
29
+ /**
30
+ * Detect project type from text
31
+ *
32
+ * @param text - Text to analyze (AC description, task title, etc.)
33
+ * @returns ProjectDetectionResult with detected projects and confidence
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * const result = detectProject('Create backend API endpoint for user authentication');
38
+ * // result.projects = ['backend']
39
+ * // result.confidence = 0.8
40
+ * ```
41
+ */
42
+ export function detectProject(text) {
43
+ const lowerText = text.toLowerCase();
44
+ const detectedProjects = [];
45
+ const matches = {
46
+ backend: 0,
47
+ frontend: 0,
48
+ mobile: 0,
49
+ shared: 0
50
+ };
51
+ // Count keyword matches for each project type
52
+ for (const [project, keywords] of Object.entries(PROJECT_KEYWORDS)) {
53
+ for (const keyword of keywords) {
54
+ if (lowerText.includes(keyword)) {
55
+ matches[project]++;
56
+ }
57
+ }
58
+ }
59
+ // Determine detected projects (any with matches)
60
+ const entries = Object.entries(matches);
61
+ const sorted = entries.sort((a, b) => b[1] - a[1]);
62
+ // Add projects with at least one match
63
+ for (const [project, count] of sorted) {
64
+ if (count > 0) {
65
+ detectedProjects.push(project);
66
+ }
67
+ }
68
+ // Default to 'shared' if no specific project detected
69
+ if (detectedProjects.length === 0) {
70
+ detectedProjects.push('shared');
71
+ }
72
+ // Calculate confidence based on keyword density
73
+ const totalMatches = Object.values(matches).reduce((sum, count) => sum + count, 0);
74
+ const confidence = totalMatches > 0
75
+ ? Math.min(totalMatches / 5, 1) // Cap at 1.0
76
+ : 0.3; // Low confidence for shared
77
+ return {
78
+ projects: detectedProjects,
79
+ confidence
80
+ };
81
+ }
82
+ /**
83
+ * Filter text by project keywords
84
+ *
85
+ * @param text - Text to check
86
+ * @param projectFilter - Projects to filter by
87
+ * @returns True if text contains keywords for any of the specified projects
88
+ */
89
+ export function matchesProject(text, projectFilter) {
90
+ const result = detectProject(text);
91
+ // Check if any detected project matches the filter
92
+ return result.projects.some(p => projectFilter.includes(p));
93
+ }
94
+ //# sourceMappingURL=ProjectDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectDetector.js","sourceRoot":"","sources":["../../../../src/core/living-docs/ProjectDetector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * SpecDistributor - Copy-Based Sync Implementation
3
+ *
4
+ * Distributes (copies) ACs and Tasks from increment spec.md/tasks.md
5
+ * to User Story files in living docs.
6
+ *
7
+ * This is the core of the copy-based sync paradigm where:
8
+ * - Increment files = source of truth
9
+ * - Living docs = copy for stakeholder visibility
10
+ */
11
+ /**
12
+ * SpecDistributor - Handles copying ACs and Tasks to User Story files
13
+ */
14
+ export declare class SpecDistributor {
15
+ /**
16
+ * Copy ACs and Tasks from increment to User Story files
17
+ *
18
+ * @param incrementPath - Path to increment folder (e.g., .specweave/increments/0037-feature)
19
+ * @param livingDocsPath - Path to living docs folder (e.g., .specweave/docs/public/user-stories)
20
+ */
21
+ copyAcsAndTasksToUserStories(incrementPath: string, livingDocsPath: string): Promise<void>;
22
+ /**
23
+ * Parse acceptance criteria from spec.md
24
+ */
25
+ private parseAcceptanceCriteria;
26
+ /**
27
+ * Parse tasks from tasks.md
28
+ */
29
+ private parseTasks;
30
+ /**
31
+ * Group ACs by User Story ID
32
+ */
33
+ private groupAcsByUserStory;
34
+ /**
35
+ * Detect projects from ACs
36
+ */
37
+ private detectProjectsFromAcs;
38
+ /**
39
+ * Filter tasks by AC IDs
40
+ */
41
+ private filterTasksByAcIds;
42
+ /**
43
+ * Find User Story file by ID
44
+ */
45
+ private findUserStoryFile;
46
+ /**
47
+ * Update User Story file with ACs and Tasks
48
+ */
49
+ private updateUserStoryFile;
50
+ /**
51
+ * Update a section in markdown content
52
+ */
53
+ private updateSection;
54
+ }
55
+ //# sourceMappingURL=SpecDistributor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpecDistributor.d.ts","sourceRoot":"","sources":["../../../../src/core/living-docs/SpecDistributor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;;;OAKG;IACG,4BAA4B,CAChC,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC;IAmChB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmC/B;;OAEG;IACH,OAAO,CAAC,UAAU;IAgDlB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;OAEG;YACW,iBAAiB;IAkB/B;;OAEG;YACW,mBAAmB;IA2BjC;;OAEG;IACH,OAAO,CAAC,aAAa;CAatB"}