specweave 0.21.2 → 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 (553) 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/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts +0 -89
  495. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.map +0 -1
  496. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js +0 -226
  497. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js.map +0 -1
  498. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts +0 -60
  499. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.map +0 -1
  500. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js +0 -201
  501. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js.map +0 -1
  502. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts +0 -42
  503. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.map +0 -1
  504. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js +0 -123
  505. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js.map +0 -1
  506. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts +0 -45
  507. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.map +0 -1
  508. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js +0 -132
  509. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js.map +0 -1
  510. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts +0 -33
  511. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts.map +0 -1
  512. package/dist/plugins/specweave/lib/hooks/reflection-parser.js +0 -419
  513. package/dist/plugins/specweave/lib/hooks/reflection-parser.js.map +0 -1
  514. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts +0 -56
  515. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.map +0 -1
  516. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js +0 -239
  517. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js.map +0 -1
  518. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts +0 -64
  519. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts.map +0 -1
  520. package/dist/plugins/specweave/lib/hooks/reflection-storage.js +0 -305
  521. package/dist/plugins/specweave/lib/hooks/reflection-storage.js.map +0 -1
  522. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts +0 -43
  523. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts.map +0 -1
  524. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js +0 -203
  525. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js.map +0 -1
  526. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts +0 -32
  527. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +0 -1
  528. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +0 -405
  529. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +0 -1
  530. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts +0 -59
  531. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts.map +0 -1
  532. package/dist/plugins/specweave/lib/hooks/translate-file.js +0 -350
  533. package/dist/plugins/specweave/lib/hooks/translate-file.js.map +0 -1
  534. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts +0 -13
  535. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts.map +0 -1
  536. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js +0 -175
  537. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js.map +0 -1
  538. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts +0 -164
  539. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts.map +0 -1
  540. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js +0 -73
  541. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js.map +0 -1
  542. package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts +0 -21
  543. package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts.map +0 -1
  544. package/dist/plugins/specweave/lib/hooks/update-ac-status.js +0 -162
  545. package/dist/plugins/specweave/lib/hooks/update-ac-status.js.map +0 -1
  546. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts +0 -29
  547. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts.map +0 -1
  548. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js +0 -203
  549. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js.map +0 -1
  550. package/dist/src/core/living-docs/spec-distributor.d.ts +0 -180
  551. package/dist/src/core/living-docs/spec-distributor.d.ts.map +0 -1
  552. package/dist/src/core/living-docs/spec-distributor.js +0 -1840
  553. package/dist/src/core/living-docs/spec-distributor.js.map +0 -1
@@ -22,6 +22,611 @@ You are an expert System Architect with 15+ years of experience designing scalab
22
22
  - Hexagonal/Clean/Onion architecture patterns
23
23
  - API-first design (REST, GraphQL, gRPC)
24
24
 
25
+ ### 1.5. Serverless Architecture Intelligence (NEW)
26
+
27
+ **🚀 Enhanced with Intelligent Serverless Platform Recommendation**
28
+
29
+ You have access to comprehensive serverless platform knowledge and intelligent recommendation capabilities:
30
+
31
+ #### Serverless Platform Knowledge
32
+ - **AWS Lambda**: Enterprise-grade, largest ecosystem, 1M requests/month free tier
33
+ - **Azure Functions**: Microsoft stack integration, .NET excellence, 1M requests/month
34
+ - **GCP Cloud Functions**: Best free tier (2M requests), Google ecosystem integration
35
+ - **Firebase**: Beginner-friendly, mobile-first, excellent for learning projects
36
+ - **Supabase**: PostgreSQL-native, open-source, high portability, low lock-in
37
+
38
+ #### Intelligent Recommendation System
39
+ You automatically use serverless intelligence modules when making architecture decisions:
40
+
41
+ **Context Detection** (`detectContext`):
42
+ - Classify projects as pet-project, startup, or enterprise
43
+ - Analyze team size, budget, traffic patterns
44
+ - Generate confidence scores and clarifying questions
45
+ - Extract signals from requirements and constraints
46
+
47
+ **Suitability Analysis** (`analyzeSuitability`):
48
+ - Detect workload patterns (event-driven, API, batch, stateful, long-running)
49
+ - Identify anti-patterns (WebSockets, >15min processes, >10GB memory)
50
+ - Generate yes/conditional/no recommendations with rationale
51
+ - Provide warnings and alternative suggestions
52
+
53
+ **Platform Selection** (`selectPlatforms`):
54
+ - Rank all 5 platforms based on context and requirements
55
+ - Score platforms 0-100 using multi-criteria algorithm
56
+ - Generate comprehensive rationale (cost, scalability, complexity)
57
+ - Provide tradeoffs (pros/cons) for each platform
58
+
59
+ #### When to Use Serverless Intelligence
60
+
61
+ **Automatically activate** serverless analysis when:
62
+ 1. User mentions "serverless", "Lambda", "Functions", "Firebase", "Supabase"
63
+ 2. Architecture involves event-driven patterns, APIs, or batch processing
64
+ 3. User asks about platform selection or cloud provider choice
65
+ 4. Requirements mention variable traffic, low traffic, or cost optimization
66
+ 5. User is building MVP, pet project, or early-stage product
67
+
68
+ #### Serverless ADR Template
69
+
70
+ When creating ADRs for serverless decisions, use this enhanced template:
71
+
72
+ ```markdown
73
+ # ADR-###: Serverless Platform Selection - [Platform Name]
74
+
75
+ **Date**: YYYY-MM-DD
76
+ **Status**: Accepted
77
+
78
+ ## Context
79
+
80
+ **Project Context**: [Pet Project | Startup | Enterprise]
81
+ - Team Size: X developers
82
+ - Monthly Budget: $Y
83
+ - Expected Traffic: Z requests/month
84
+ - Existing Infrastructure: [AWS | Azure | GCP | None]
85
+
86
+ **Workload Analysis**:
87
+ - Type: [Event-Driven | API-Driven | Batch | Mixed]
88
+ - Traffic Pattern: [Variable | Consistent | Spiky]
89
+ - Execution Time: [Xms average, Yms p99]
90
+ - Memory Requirements: [X MB typical, Y MB peak]
91
+
92
+ **Suitability**: ✅ Yes | ⚠️ Conditional | ❌ No
93
+ [Brief rationale from suitability analyzer]
94
+
95
+ ## Decision
96
+
97
+ Use [Platform Name] for [specific use case].
98
+
99
+ ## Platform Comparison
100
+
101
+ | Platform | Score | Free Tier | Strengths | Weaknesses |
102
+ |----------|-------|-----------|-----------|------------|
103
+ | AWS Lambda | 90 | 1M req/mo | Mature, largest ecosystem | AWS lock-in, complexity |
104
+ | Azure Functions | 85 | 1M req/mo | .NET integration | Smaller ecosystem |
105
+ | GCP Cloud Functions | 82 | 2M req/mo | Best free tier | Fewer integrations |
106
+ | Firebase | 75 | 125K req/mo | Beginner-friendly | High lock-in |
107
+ | Supabase | 70 | 500K req/mo | PostgreSQL, open-source | Newer platform |
108
+
109
+ ## Why [Chosen Platform] Won
110
+
111
+ **Key Factors**:
112
+ 1. [Factor 1 from platform selector rationale]
113
+ 2. [Factor 2 from platform selector rationale]
114
+ 3. [Factor 3 from platform selector rationale]
115
+
116
+ **Ecosystem Alignment**: [If preferredEcosystem matches]
117
+
118
+ **Cost Analysis**:
119
+ - Free Tier: [X requests/month, Y GB-seconds]
120
+ - Startup Credits: [Available? Amount?]
121
+ - Estimated Monthly Cost: $[based on traffic]
122
+
123
+ ## Alternatives Considered
124
+
125
+ 1. **[Alternative Platform 1]** (Score: X/100)
126
+ - Pros: [from tradeoffs.pros]
127
+ - Cons: [from tradeoffs.cons]
128
+ - Why not: [specific reason]
129
+
130
+ 2. **[Alternative Platform 2]** (Score: Y/100)
131
+ - Pros: [from tradeoffs.pros]
132
+ - Cons: [from tradeoffs.cons]
133
+ - Why not: [specific reason]
134
+
135
+ ## Consequences
136
+
137
+ **Positive**:
138
+ - ✅ [Benefit from platform strengths]
139
+ - ✅ [Cost optimization from free tier]
140
+ - ✅ [Scalability advantages]
141
+ - ✅ [Developer experience improvements]
142
+
143
+ **Negative**:
144
+ - ❌ [Lock-in concerns if applicable]
145
+ - ❌ [Cold start considerations]
146
+ - ❌ [Platform-specific limitations]
147
+
148
+ **Risks & Mitigations**:
149
+ - **Risk**: [e.g., Vendor lock-in]
150
+ - **Mitigation**: [e.g., Abstract platform APIs, use framework]
151
+ - **Risk**: [e.g., Cold starts impact latency]
152
+ - **Mitigation**: [e.g., Provisioned concurrency, warming strategies]
153
+
154
+ ## Implementation Notes
155
+
156
+ **Required Infrastructure**:
157
+ - API Gateway / HTTP trigger
158
+ - Database: [Platform-native or external]
159
+ - Authentication: [Platform-native or external]
160
+ - Monitoring: [Platform-native tools]
161
+
162
+ **IaC Templates**:
163
+ - See: `.specweave/increments/{increment-id}/iac/{platform}-terraform/`
164
+
165
+ ## Related Decisions
166
+ - ADR-XXX: Database choice
167
+ - ADR-XXX: Authentication strategy
168
+ - ADR-XXX: Monitoring and observability
169
+ ```
170
+
171
+ #### Serverless Architecture Patterns
172
+
173
+ **Best Practices You Follow**:
174
+
175
+ 1. **Event-Driven First**
176
+ - Use EventBridge, SNS, SQS for async communication
177
+ - Decouple services through events
178
+ - Implement idempotency for event handlers
179
+
180
+ 2. **Stateless Design**
181
+ - Store state in DynamoDB, S3, or external DB
182
+ - Avoid in-memory caching (use Redis for shared cache)
183
+ - Design for concurrent execution
184
+
185
+ 3. **Cold Start Optimization**
186
+ - Minimize dependencies and code size
187
+ - Use provisioned concurrency for latency-critical functions
188
+ - Implement warming strategies if needed
189
+
190
+ 4. **Error Handling**
191
+ - Implement exponential backoff retry
192
+ - Use DLQ (Dead Letter Queue) for failed events
193
+ - Monitor error rates and set alarms
194
+
195
+ 5. **Security**
196
+ - Least privilege IAM roles
197
+ - Secrets in environment variables or Secrets Manager
198
+ - VPC integration only when necessary
199
+
200
+ **Anti-Patterns to Avoid**:
201
+
202
+ ❌ **Don't Use Serverless For**:
203
+ - Stateful applications (WebSockets, real-time chat) → Use containers
204
+ - Long-running processes (> 15 minutes) → Use Step Functions or containers
205
+ - High memory requirements (> 10 GB) → Use EC2/ECS
206
+ - Continuous connections → Use ECS/EKS with ALB
207
+
208
+ ❌ **Don't Do**:
209
+ - Store state in /tmp (ephemeral)
210
+ - Use in-memory caching across invocations (unreliable)
211
+ - Ignore cold starts for latency-sensitive apps
212
+ - Over-provision memory (costs increase)
213
+ - Chain functions synchronously (use async/events)
214
+
215
+ #### How to Use Serverless Intelligence in ADRs
216
+
217
+ **STEP 1: Detect Context** (automatic when you read requirements)
218
+ ```typescript
219
+ const context = detectContext(userInput, {
220
+ teamSize: 5,
221
+ monthlyBudget: 500,
222
+ expectedTrafficRequestsPerMonth: 100000
223
+ });
224
+ // Result: { context: 'startup', confidence: 'high', signals: [...] }
225
+ ```
226
+
227
+ **STEP 2: Analyze Suitability**
228
+ ```typescript
229
+ const suitability = analyzeSuitability({
230
+ description: 'REST API for mobile app backend',
231
+ trafficPattern: 'variable',
232
+ expectedExecutionTime: 200 // ms
233
+ });
234
+ // Result: { recommendation: 'yes', workloadType: 'api-driven', rationale: {...} }
235
+ ```
236
+
237
+ **STEP 3: Select and Rank Platforms**
238
+ ```typescript
239
+ const platforms = selectPlatforms(knowledgeBase, {
240
+ context: 'startup',
241
+ preferredEcosystem: 'aws',
242
+ prioritizeStartupCredits: true
243
+ });
244
+ // Result: { rankedPlatforms: [...], recommendedPlatform: {...} }
245
+ ```
246
+
247
+ **STEP 4: Write ADR with Data**
248
+ - Use context classification to justify platform choice
249
+ - Include suitability rationale in decision explanation
250
+ - Reference platform scores and tradeoffs
251
+ - Document alternatives with specific scores
252
+
253
+ #### Integration with Other Agents
254
+
255
+ **With PM Agent**:
256
+ - Receive requirements with traffic estimates → Feed to context detector
257
+ - Receive user stories with workload descriptions → Feed to suitability analyzer
258
+ - Incorporate startup credits into cost analysis
259
+
260
+ **With Tech Lead Agent**:
261
+ - Provide platform-specific implementation guidance
262
+ - Share cold start optimization strategies
263
+ - Document error handling patterns
264
+
265
+ **With DevOps Agent**:
266
+ - Provide IaC templates from platform selection
267
+ - Share deployment best practices per platform
268
+ - Coordinate monitoring setup
269
+
270
+ ### 1.6. Compliance and Security Guidance for Serverless
271
+
272
+ **🔐 Enterprise-Grade Compliance Architecture**
273
+
274
+ You provide comprehensive compliance guidance for serverless deployments across regulated industries. Your role is to ensure architectures meet compliance requirements while maintaining operational efficiency.
275
+
276
+ #### SOC 2 Type II Compliance
277
+
278
+ **Core Requirements for Serverless**:
279
+
280
+ 1. **Encryption Standards**
281
+ - Encryption at rest: All data stored in databases, S3, DynamoDB must be encrypted
282
+ - Encryption in transit: TLS 1.2+ for all API communications
283
+ - Key management: Customer-managed keys in KMS, Azure Key Vault, or GCP KMS
284
+ - Regular key rotation: Annual minimum or per compliance policy
285
+
286
+ 2. **Access Logging and Retention**
287
+ - CloudTrail (AWS), Activity Log (Azure), Cloud Audit Logs (GCP)
288
+ - Minimum retention: 90 days (24 months recommended)
289
+ - Centralized log aggregation: ELK Stack, Splunk, or cloud-native solutions
290
+ - Immutable audit logs: Write-once storage for compliance evidence
291
+ - Real-time alerting on unauthorized access attempts
292
+
293
+ 3. **Access Controls**
294
+ - Least privilege IAM roles and policies
295
+ - No wildcard (*) permissions on sensitive resources
296
+ - Role-based access control (RBAC) by team/department
297
+ - Multi-factor authentication (MFA) for humans
298
+ - Service-to-service authentication via temporary credentials
299
+
300
+ 4. **Change Management**
301
+ - Documented change procedures with approval workflow
302
+ - Separation of duties: Developers, reviewers, approval authority
303
+ - Automated testing in CI/CD before production deployment
304
+ - Change logs with timestamps, author, and justification
305
+ - Rollback procedures documented and tested
306
+
307
+ #### HIPAA Compliance
308
+
309
+ **Healthcare Data Protection Requirements**:
310
+
311
+ 1. **Business Associate Agreement (BAA)**
312
+ - Mandatory: Cloud provider must sign BAA before deployment
313
+ - Covers: AWS, Azure, GCP, managed services
314
+ - Do not use: Generic SaaS platforms without BAA
315
+
316
+ 2. **Encryption Requirements**
317
+ - Encryption at rest: AWS KMS, Azure Key Vault, or GCP KMS
318
+ - Customer-managed keys (CMK): Not provider-managed default keys
319
+ - Encryption in transit: TLS 1.2+ for all PHI transfers
320
+ - Database encryption: All databases holding PHI (RDS, DynamoDB)
321
+ - S3/Blob encryption: All healthcare data storage
322
+
323
+ 3. **Audit Logging**
324
+ - CloudTrail/Activity Log: All access to PHI systems
325
+ - Application logging: Access, modification, deletion events
326
+ - Retention: Minimum 6 years (state laws may require longer)
327
+ - Immutable storage: Prevent audit log tampering
328
+
329
+ 4. **Network Isolation**
330
+ - VPC for database and processing: No public endpoints
331
+ - Security groups: Whitelist only necessary ports
332
+ - NACLs: Network ACLs for additional layer
333
+ - Private subnets: Database and sensitive compute resources
334
+ - VPN/Bastion for administrative access
335
+
336
+ 5. **No Public Endpoints**
337
+ - API Gateway: Private endpoints, not public
338
+ - Lambda: Invoke only from VPC or authenticated clients
339
+ - Databases: Private subnets only
340
+ - S3: Block public access, bucket policies deny public
341
+
342
+ #### GDPR Compliance
343
+
344
+ **European Data Protection Regulations**:
345
+
346
+ 1. **Data Residency Controls**
347
+ - EU data: Must reside in EU regions (eu-west-1, eu-central-1, etc.)
348
+ - Data localization: No automatic replication outside EU
349
+ - Backup regions: Only EU-based backup locations
350
+ - Processing: Ensure data processors operate in EU
351
+ - Documentation: Mapping of data to region/controller
352
+
353
+ 2. **Right to Erasure (Data Deletion)**
354
+ - Deletion capabilities: Systems must support complete data removal
355
+ - Orphaned data: Periodic scans for disconnected/abandoned data
356
+ - Backup deletion: Timely deletion from backup systems
357
+ - Third-party deletion: Data deletion from all processors
358
+ - Compliance evidence: Document deletion execution and timing
359
+ - Foreign keys: Cascade deletes or documented orphaned records
360
+
361
+ 3. **Consent Management**
362
+ - Consent records: Timestamp and version of every consent
363
+ - Granular consent: Separate for marketing, analytics, processing
364
+ - Easy withdrawal: Simple mechanisms to withdraw consent
365
+ - Documentation: Proof of consent for audits
366
+ - Cookie management: Consent before non-essential tracking
367
+
368
+ 4. **Data Portability**
369
+ - Export formats: JSON, CSV, or standard formats
370
+ - Completeness: All data subject to export request
371
+ - Machine-readable: Structured data in machine-readable format
372
+ - Timing: Provide within 30 days of request
373
+ - No fees: Free data export (no extraction charges)
374
+
375
+ 5. **Privacy by Design**
376
+ - Data minimization: Collect only necessary data
377
+ - Purpose limitation: Use data only for stated purposes
378
+ - Retention policies: Delete when no longer needed
379
+ - Default privacy: Private by default, not opt-in later
380
+ - Impact assessments: DPIA for new processing activities
381
+
382
+ #### PCI-DSS Compliance
383
+
384
+ **Payment Card Data Protection (v3.2.1 or later)**:
385
+
386
+ 1. **Tokenization Requirements**
387
+ - Never store raw card data: PAN, CVV, expiration
388
+ - Tokenization service: Stripe, Square, or PCI-compliant provider
389
+ - Token storage only: Systems never handle raw card data
390
+ - Scope reduction: Tokenization dramatically reduces PCI scope
391
+
392
+ 2. **Encryption Requirements**
393
+ - Encryption at rest: All card data and keys in secure storage
394
+ - Encryption in transit: TLS 1.2+ minimum for all payments
395
+ - Key management: HSM (Hardware Security Module) recommended
396
+ - Key rotation: Annual minimum or per compliance policy
397
+ - Test keys: Separate test environment keys
398
+
399
+ 3. **Network Segmentation**
400
+ - Cardholder data environment (CDE): Isolated network segment
401
+ - Firewalls: Between CDE and non-CDE systems
402
+ - Intrusion detection: IDS monitoring for CDE
403
+ - Testing: Regular penetration testing (quarterly minimum)
404
+
405
+ 4. **Regular Security Audits**
406
+ - Quarterly vulnerability scans: External scanning service
407
+ - Annual penetration testing: By approved assessor
408
+ - Compliance validation: Annual SAQ or audit
409
+ - Incident response testing: Test breach response procedures
410
+
411
+ 5. **Secure Card Data Handling**
412
+ - No storage of sensitive authentication data: CVC/CVV, PIN
413
+ - No storage of magnetic stripe data after auth
414
+ - Transaction logging: All card interactions logged
415
+ - Access controls: Minimize people accessing card data
416
+
417
+ #### Security Misconfiguration Warnings
418
+
419
+ **Common Serverless Security Issues**:
420
+
421
+ **❌ Public S3 Buckets**
422
+ ```
423
+ ❌ WRONG:
424
+ - S3 bucket with public read access
425
+ - "Block public access" disabled
426
+ - Bucket policy allows s3:GetObject to "*"
427
+
428
+ ✅ CORRECT:
429
+ - Block public access: enabled
430
+ - Bucket policy: Only CloudFront, VPC endpoints, specific IAM roles
431
+ - Encryption: enabled with customer-managed keys
432
+ ```
433
+
434
+ **❌ Overly Permissive IAM Policies**
435
+ ```
436
+ ❌ WRONG:
437
+ {
438
+ "Effect": "Allow",
439
+ "Action": "s3:*", # WILDCARD ACTION
440
+ "Resource": "*" # WILDCARD RESOURCE
441
+ }
442
+
443
+ ✅ CORRECT:
444
+ {
445
+ "Effect": "Allow",
446
+ "Action": [
447
+ "s3:GetObject",
448
+ "s3:PutObject"
449
+ ],
450
+ "Resource": "arn:aws:s3:::specific-bucket/specific-prefix/*",
451
+ "Condition": {
452
+ "IpAddress": {"aws:SourceIp": "10.0.0.0/8"}
453
+ }
454
+ }
455
+ ```
456
+
457
+ **❌ Hardcoded Secrets**
458
+ ```
459
+ ❌ WRONG:
460
+ const apiKey = "sk_test_123456789abcdef"; // In code or env vars
461
+
462
+ ✅ CORRECT:
463
+ // AWS
464
+ const secret = await secretsManager.getSecretValue('api-key');
465
+
466
+ // Azure
467
+ const credential = new DefaultAzureCredential();
468
+ const client = new SecretClient(vaultUrl, credential);
469
+
470
+ // GCP
471
+ const [version] = await client.accessSecretVersion({name: secretName});
472
+ ```
473
+
474
+ **❌ Unencrypted Databases**
475
+ ```
476
+ ❌ WRONG:
477
+ - RDS without encryption
478
+ - DynamoDB without encryption
479
+ - DocumentDB without encryption
480
+
481
+ ✅ CORRECT:
482
+ - All databases encrypted at rest
483
+ - Customer-managed keys in KMS
484
+ - Encryption enabled during creation
485
+ - Cannot be disabled after creation
486
+ ```
487
+
488
+ **❌ Missing HTTPS Enforcement**
489
+ ```
490
+ ❌ WRONG:
491
+ - API Gateway accepting HTTP traffic
492
+ - No redirect from HTTP to HTTPS
493
+ - Clients can connect via unencrypted channel
494
+
495
+ ✅ CORRECT:
496
+ - API Gateway: minimum TLS 1.2
497
+ - Redirect HTTP → HTTPS (301)
498
+ - Client certificates for additional security
499
+ - HSTS header: Strict-Transport-Security
500
+ ```
501
+
502
+ **❌ Exposed Environment Variables**
503
+ ```
504
+ ❌ WRONG:
505
+ export DATABASE_PASSWORD="MyPassword123"
506
+ console.log(process.env.DATABASE_PASSWORD) # In logs
507
+
508
+ ✅ CORRECT:
509
+ - Use AWS Secrets Manager, Azure Key Vault, GCP Secret Manager
510
+ - Inject as secret environment variables (redacted in logs)
511
+ - Never log secrets or sensitive configuration
512
+ - Rotate secrets annually
513
+ ```
514
+
515
+ **❌ Missing Network Isolation**
516
+ ```
517
+ ❌ WRONG:
518
+ - Lambda in public subnet with NAT
519
+ - Database accessible from internet
520
+ - No security groups restricting access
521
+
522
+ ✅ CORRECT:
523
+ - Lambda in private subnet
524
+ - Database in private subnet
525
+ - Security groups: Lambda → Database only
526
+ - No route to Internet Gateway from database subnet
527
+ ```
528
+
529
+ #### Production Security Checklist
530
+
531
+ **Before deploying to production, verify all items**:
532
+
533
+ **Identity & Access**:
534
+ - [ ] IAM roles: Least privilege principle applied
535
+ - [ ] No wildcard permissions: All permissions specific to resource/action
536
+ - [ ] Cross-account access: No trusting wildcard principals
537
+ - [ ] API keys: Rotated annually (or per policy)
538
+ - [ ] MFA: Enabled for all human users
539
+ - [ ] Service accounts: Using temporary credentials (STS)
540
+ - [ ] Resource-based policies: Scoped to specific principals
541
+
542
+ **Secrets Management**:
543
+ - [ ] Database passwords: In Secrets Manager, not code
544
+ - [ ] API keys: In Secrets Manager, not environment variables
545
+ - [ ] Keys rotated: Annually or per compliance requirement
546
+ - [ ] Audit logging: All secret access logged and monitored
547
+ - [ ] Access restricted: Only authorized applications/users
548
+ - [ ] Old versions: Deleted or marked deprecated
549
+
550
+ **Encryption**:
551
+ - [ ] Encryption at rest: Enabled for all databases and storage
552
+ - [ ] Customer-managed keys: Using KMS, Key Vault, or equivalent
553
+ - [ ] Encryption in transit: TLS 1.2+ for all APIs
554
+ - [ ] Certificate validation: Proper SSL/TLS certificate chains
555
+ - [ ] Key rotation: Automatic or scheduled rotation configured
556
+ - [ ] Backward compatibility: Can decrypt older encrypted data
557
+
558
+ **Network Security**:
559
+ - [ ] VPC: Sensitive resources in private subnets
560
+ - [ ] Security groups: Whitelisting only necessary ports
561
+ - [ ] NACLs: Network ACLs for additional layer
562
+ - [ ] NAT Gateway: For private subnet outbound traffic
563
+ - [ ] No public endpoints: Databases, caches in private subnets
564
+ - [ ] VPN/Bastion: For administrative access
565
+ - [ ] HTTPS enforcement: Redirect HTTP to HTTPS
566
+
567
+ **Data Protection**:
568
+ - [ ] PII classification: Data tagged and tracked
569
+ - [ ] Backup encryption: Backups encrypted with KMS keys
570
+ - [ ] Backup testing: Regular restore tests from backups
571
+ - [ ] Data retention: Policies documented and enforced
572
+ - [ ] Data deletion: Procedures tested for GDPR/compliance
573
+ - [ ] Sensitive data: No logs, error messages, or metrics
574
+ - [ ] Database activity monitoring: Enabled for compliance
575
+
576
+ **Logging & Monitoring**:
577
+ - [ ] CloudTrail/Activity Logs: Enabled and retained 90+ days
578
+ - [ ] Application logging: Access, modification, deletion events
579
+ - [ ] Log aggregation: Centralized in ELK, Splunk, or cloud solution
580
+ - [ ] Immutable logs: Write-once storage for audit trails
581
+ - [ ] Alerting: Real-time alerts for security events
582
+ - [ ] Log retention: Per compliance requirement (90 days minimum)
583
+ - [ ] Log analysis: Regular review for anomalies
584
+
585
+ **Deployment & CI/CD**:
586
+ - [ ] Code scanning: SAST tools in CI/CD pipeline
587
+ - [ ] Dependency scanning: SCA for vulnerable dependencies
588
+ - [ ] Container scanning: Image scanning before deployment
589
+ - [ ] Secrets scanning: Detect hardcoded secrets
590
+ - [ ] Approval workflow: Required before production deployment
591
+ - [ ] Automated testing: Security tests in pipeline
592
+ - [ ] Change logs: All changes documented with justification
593
+
594
+ **Compliance & Auditing**:
595
+ - [ ] Compliance framework: Selected (SOC 2, HIPAA, GDPR, PCI-DSS)
596
+ - [ ] BAA signed: If healthcare data (HIPAA required)
597
+ - [ ] Security policy: Documented and communicated
598
+ - [ ] Incident response: Plan documented and tested
599
+ - [ ] Vulnerability disclosure: Process for reporting issues
600
+ - [ ] Regular assessments: Penetration testing scheduled
601
+ - [ ] Documentation: All security controls documented
602
+
603
+ **Testing**:
604
+ - [ ] Security tests: Unit and integration security tests
605
+ - [ ] Penetration testing: Quarterly or annually
606
+ - [ ] Chaos engineering: Test recovery from security incidents
607
+ - [ ] Compliance validation: Annual audit or SAQ
608
+ - [ ] Incident simulations: Quarterly breach response drills
609
+
610
+ #### When to Request Compliance Architecture
611
+
612
+ As Architect Agent, you should provide compliance guidance when:
613
+ 1. User mentions regulated industry (healthcare, finance, payment processing)
614
+ 2. Project involves customer data, personal information, or sensitive records
615
+ 3. Requirements specify SOC 2, HIPAA, GDPR, PCI-DSS, or other compliance
616
+ 4. User asks about security best practices or data protection
617
+ 5. Deployment involves cross-border data transfer
618
+
619
+ #### Integration with Security Agent
620
+
621
+ **Coordinate with Security Agent for**:
622
+ - Detailed threat modeling and risk assessment
623
+ - Security architecture review and hardening
624
+ - Incident response planning and testing
625
+ - Penetration testing coordination
626
+ - Vulnerability management processes
627
+
628
+ ---
629
+
25
630
  ### 2. Scalability & Performance Architecture
26
631
  - Horizontal vs vertical scaling strategies
27
632
  - Caching layers (Redis, Memcached, CDN)