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
@@ -292,9 +292,9 @@ mcp__plugin_specweave-ui_playwright__browser_fill({
292
292
 
293
293
  ---
294
294
 
295
- ### Browserbase (FALLBACK - Cloud Browser Automation)
295
+ ### Browserbase (OPTIONAL - Cloud Browser Automation)
296
296
 
297
- **⚠️ Use only when Playwright MCP unavailable (CI/CD, cloud scenarios)**
297
+ **⚠️ NOT loaded by default. Enable only when needed for CI/CD or cloud scenarios.**
298
298
 
299
299
  **What it does**:
300
300
  - Runs Playwright tests in cloud infrastructure
@@ -302,7 +302,7 @@ mcp__plugin_specweave-ui_playwright__browser_fill({
302
302
  - No local browser dependencies in CI
303
303
  - Automatic screenshots/videos
304
304
 
305
- **Setup**:
305
+ **Manual Setup** (when needed):
306
306
 
307
307
  1. Get API key from [Browserbase](https://www.browserbase.com/)
308
308
 
@@ -312,26 +312,29 @@ mcp__plugin_specweave-ui_playwright__browser_fill({
312
312
  export BROWSERBASE_PROJECT_ID="proj_xxx"
313
313
  ```
314
314
 
315
- 3. SpecWeave auto-configures MCP server (via `.mcp.json`)
315
+ 3. **Add to your project's `.claude/settings.json`**:
316
+ ```json
317
+ {
318
+ "mcpServers": {
319
+ "browserbase": {
320
+ "command": "npx",
321
+ "args": ["-y", "@browserbasehq/mcp-server-browserbase"],
322
+ "env": {
323
+ "BROWSERBASE_API_KEY": "${BROWSERBASE_API_KEY}",
324
+ "BROWSERBASE_PROJECT_ID": "${BROWSERBASE_PROJECT_ID}"
325
+ }
326
+ }
327
+ }
328
+ }
329
+ ```
316
330
 
317
- 4. Use in CI/CD pipelines
331
+ 4. Restart Claude Code
318
332
 
319
- **Configuration** (`.mcp.json`):
320
- ```json
321
- {
322
- "mcpServers": {
323
- "browserbase": {
324
- "command": "npx",
325
- "args": ["-y", "@browserbasehq/mcp-server-browserbase"],
326
- "env": {
327
- "BROWSERBASE_API_KEY": "${BROWSERBASE_API_KEY}",
328
- "BROWSERBASE_PROJECT_ID": "${BROWSERBASE_PROJECT_ID}"
329
- },
330
- "optional": true
331
- }
332
- }
333
- }
334
- ```
333
+ **Why not auto-loaded?**
334
+ - Saves ~5,600 tokens per request
335
+ - Most developers use Playwright locally, not Browserbase
336
+ - Browserbase requires API keys (not needed for most users)
337
+ - Can still enable when needed for CI/CD
335
338
 
336
339
  **Benefits**:
337
340
  - ✅ Parallel execution (10x faster)
@@ -392,11 +395,6 @@ npm run storybook
392
395
  "plugins": {
393
396
  "specweave-ui": {
394
397
  "enabled": true,
395
- "mcp": {
396
- "browserbase": {
397
- "enabled": false
398
- }
399
- },
400
398
  "defaults": {
401
399
  "frontend_framework": "react", // or "vue", "angular"
402
400
  "test_framework": "playwright",
@@ -407,6 +405,8 @@ npm run storybook
407
405
  }
408
406
  ```
409
407
 
408
+ **Note**: Browserbase is NOT auto-loaded. See "Browserbase (OPTIONAL)" section above for manual setup.
409
+
410
410
  ---
411
411
 
412
412
  ## FAQ
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  name: browser-automation
3
3
  description: |
4
- Browser automation and E2E testing using Playwright MCP (primary) or Browserbase (fallback).
4
+ Browser automation and E2E testing using Playwright MCP (always available).
5
5
  Auto-activates for: browser automation, web testing, E2E tests, Playwright, browser interaction,
6
6
  scraping, testing flows, user journeys, accessibility testing, screenshot capture.
7
7
 
8
8
  CRITICAL: ALWAYS use Playwright MCP (mcp__plugin_specweave-ui_playwright__*) as PRIMARY choice.
9
- Only use Browserbase (mcp__plugin_specweave-ui_browserbase__*) as FALLBACK when Playwright unavailable.
9
+
10
+ NOTE: Browserbase tools (mcp__plugin_specweave-ui_browserbase__*) are NOT loaded by default.
11
+ They require manual setup and are only for CI/CD or cloud scenarios.
10
12
  allowed-tools:
11
13
  - mcp__plugin_specweave-ui_playwright__*
12
14
  - mcp__plugin_specweave-ui_browserbase__*
@@ -133,9 +135,11 @@ browser_console_messages()
133
135
  browser_close()
134
136
  ```
135
137
 
136
- ### 2. Browserbase Integration (FALLBACK - Cloud Testing)
138
+ ### 2. Browserbase Integration (OPTIONAL - Cloud Testing)
139
+
140
+ **⚠️ NOT LOADED BY DEFAULT - Manual setup required!**
137
141
 
138
- **⚠️ ONLY USE AS FALLBACK when Playwright MCP unavailable!**
142
+ **Note**: Browserbase is NOT auto-loaded to save ~5,600 tokens per request. Enable only when needed for CI/CD or cloud scenarios.
139
143
 
140
144
  Browserbase provides cloud-based browser automation:
141
145
 
@@ -148,6 +152,8 @@ Browserbase provides cloud-based browser automation:
148
152
 
149
153
  #### Available Tools (mcp__plugin_specweave-ui_browserbase__*)
150
154
 
155
+ **Note**: These tools are ONLY available after manual setup.
156
+
151
157
  - **browserbase_session_create** - Create cloud session
152
158
  - **browserbase_session_close** - Close session
153
159
  - **browserbase_stagehand_navigate** - Navigate to URL
@@ -158,7 +164,7 @@ Browserbase provides cloud-based browser automation:
158
164
  - **browserbase_stagehand_get_url** - Get current URL
159
165
  - **browserbase_stagehand_agent** - Run autonomous task
160
166
 
161
- #### Setup Requirements
167
+ #### Manual Setup (when needed)
162
168
 
163
169
  1. Get API credentials from [Browserbase](https://www.browserbase.com/)
164
170
  2. Set environment variables:
@@ -166,7 +172,22 @@ Browserbase provides cloud-based browser automation:
166
172
  export BROWSERBASE_API_KEY="bb_xxx"
167
173
  export BROWSERBASE_PROJECT_ID="proj_xxx"
168
174
  ```
169
- 3. Configuration is in `.mcp.json`
175
+ 3. Add to `.claude/settings.json`:
176
+ ```json
177
+ {
178
+ "mcpServers": {
179
+ "browserbase": {
180
+ "command": "npx",
181
+ "args": ["-y", "@browserbasehq/mcp-server-browserbase"],
182
+ "env": {
183
+ "BROWSERBASE_API_KEY": "${BROWSERBASE_API_KEY}",
184
+ "BROWSERBASE_PROJECT_ID": "${BROWSERBASE_PROJECT_ID}"
185
+ }
186
+ }
187
+ }
188
+ }
189
+ ```
190
+ 4. Restart Claude Code
170
191
 
171
192
  #### Testing Workflow (Browserbase)
172
193
 
@@ -398,30 +419,22 @@ Are you running locally (dev machine or VM)?
398
419
 
399
420
  ## Configuration Files
400
421
 
401
- ### .mcp.json (Plugin-Level)
422
+ ### .mcp.json (Plugin-Level - Auto-Loaded)
402
423
  ```json
403
424
  {
404
425
  "mcpServers": {
405
426
  "playwright": {
406
427
  "command": "npx",
407
- "args": ["@playwright/mcp@latest"],
428
+ "args": ["-y", "@playwright/mcp@latest"],
408
429
  "description": "Local Playwright - PRIMARY",
409
430
  "optional": false
410
- },
411
- "browserbase": {
412
- "command": "npx",
413
- "args": ["-y", "@browserbasehq/mcp-server-browserbase"],
414
- "env": {
415
- "BROWSERBASE_API_KEY": "${BROWSERBASE_API_KEY}",
416
- "BROWSERBASE_PROJECT_ID": "${BROWSERBASE_PROJECT_ID}"
417
- },
418
- "description": "Cloud Browserbase - FALLBACK",
419
- "optional": true
420
431
  }
421
432
  }
422
433
  }
423
434
  ```
424
435
 
436
+ **Note**: Browserbase is NOT in `.mcp.json` (not auto-loaded). To enable Browserbase, add it to your project's `.claude/settings.json` as shown in the "Manual Setup" section above.
437
+
425
438
  ### playwright.config.ts (Project-Level)
426
439
  ```typescript
427
440
  import { defineConfig } from '@playwright/test';
@@ -23,16 +23,33 @@ Use this template for each task:
23
23
  **Priority**: P0 | P1 | P2 | P3
24
24
  **Estimate**: X hours
25
25
  **Status**: pending | in_progress | completed | blocked
26
+ **AC-IDs**: AC-US-XXX-YY (links to spec.md acceptance criteria)
26
27
  **GitHub Issue**: #NNN (auto-populated after sync)
27
28
  **Assignee**: @username (optional)
28
29
 
29
30
  **Description**:
30
31
  Brief description of what this task accomplishes.
31
32
 
32
- **Subtasks** (optional):
33
- - [ ] S-XXX-01: Subtask description (Xmin)
34
- - [ ] S-XXX-02: Subtask description (Xmin)
35
- - [ ] S-XXX-03: Subtask description (Xmin)
33
+ **Implementation**:
34
+ - [ ] Create/update ClassName with method()
35
+ - [ ] Implement core feature logic
36
+ - [ ] Add error handling for edge cases
37
+ - [ ] Add JSDoc comments
38
+ - [ ] Update related type definitions
39
+
40
+ **Test Plan** (BDD):
41
+ - **Given** [precondition describing initial state]
42
+ - **When** [action or event that triggers behavior]
43
+ - **Then** [expected result or outcome]
44
+
45
+ **Test Cases**:
46
+ - Unit (`class-name.test.ts`):
47
+ - method_withValidInput_returnsExpectedResult
48
+ - method_withInvalidInput_throwsError
49
+ - Coverage: >95%
50
+ - Integration (`feature.integration.test.ts`):
51
+ - fullWorkflow_happyPath_succeeds
52
+ - Coverage: >85%
36
53
 
37
54
  **Files to Create** (if applicable):
38
55
  - `path/to/new/file.ts`
@@ -42,20 +59,15 @@ Brief description of what this task accomplishes.
42
59
  - `path/to/existing/file.ts`
43
60
  - `path/to/another/existing.md`
44
61
 
45
- **Implementation** (optional - code snippets, examples):
62
+ **Code Examples** (optional - snippets for clarity):
46
63
  ```typescript
47
- // Example implementation
64
+ // Example implementation approach
48
65
  export function exampleFunction() {
49
66
  // Code here
50
67
  }
51
68
  ```
52
69
  ```
53
70
 
54
- **Acceptance Criteria**:
55
- - ✅ Criterion 1
56
- - ✅ Criterion 2
57
- - ✅ Criterion 3
58
-
59
71
  **Dependencies** (optional - tasks that must complete first):
60
72
  - T-001 (must complete first)
61
73
  - T-002 (must complete first)
@@ -75,25 +87,40 @@ export function exampleFunction() {
75
87
  **Priority**: P0
76
88
  **Estimate**: 2 hours
77
89
  **Status**: pending
90
+ **AC-IDs**: AC-US1-01, AC-US1-02
78
91
  **GitHub Issue**: (will be populated after sync)
79
92
  **Assignee**: (assign in GitHub after sync)
80
93
 
81
94
  **Description**:
82
- This is an example task showing the enhanced template format with GitHub sync fields.
95
+ This is an example task showing the canonical template format following ADR-0047.
83
96
 
84
- **Subtasks**:
85
- - [ ] S-001-01: First subtask (30min)
86
- - [ ] S-001-02: Second subtask (45min)
87
- - [ ] S-001-03: Third subtask (30min)
88
- - [ ] S-001-04: Final polish (15min)
97
+ **Implementation**:
98
+ - [ ] Define ExampleInterface with id and name fields
99
+ - [ ] Create ExampleClass implementing ExampleInterface
100
+ - [ ] Add constructor with parameter properties
101
+ - [ ] Add JSDoc comments for interface and class
102
+ - [ ] Export both interface and class
103
+
104
+ **Test Plan** (BDD):
105
+ - **Given** ExampleClass constructor receives valid id and name
106
+ - **When** new ExampleClass('123', 'Test') is instantiated
107
+ - **Then** instance has correct id and name properties
108
+
109
+ **Test Cases**:
110
+ - Unit (`example-class.test.ts`):
111
+ - constructor_withValidParams_createsInstance
112
+ - constructor_withEmptyId_throwsError
113
+ - interface_conformsToContract
114
+ - Coverage: >95%
89
115
 
90
116
  **Files to Create**:
91
117
  - `src/example/new-file.ts`
118
+ - `tests/unit/example/example-class.test.ts`
92
119
 
93
120
  **Files to Modify**:
94
121
  - `src/example/existing-file.ts`
95
122
 
96
- **Implementation**:
123
+ **Code Examples**:
97
124
  ```typescript
98
125
  export interface ExampleInterface {
99
126
  id: string;
@@ -105,12 +132,6 @@ export class ExampleClass implements ExampleInterface {
105
132
  }
106
133
  ```
107
134
 
108
- **Acceptance Criteria**:
109
- - ✅ All interfaces defined
110
- - ✅ TypeScript compiles without errors
111
- - ✅ Unit tests pass
112
- - ✅ Documentation comments added
113
-
114
135
  **Dependencies**:
115
136
  None (foundation task)
116
137
 
@@ -231,22 +252,19 @@ As you work on tasks:
231
252
  - **Priority**: P0 (critical), P1 (high), P2 (medium), P3 (low)
232
253
  - **Estimate**: Hours or days (e.g., "2 hours", "3 days")
233
254
  - **Status**: pending, in_progress, completed, blocked
255
+ - **AC-IDs**: Links to spec.md acceptance criteria (e.g., "AC-US1-01, AC-US1-02")
234
256
  - **Description**: What this task accomplishes
235
- - **Acceptance Criteria**: How we know it's done
257
+ - **Implementation**: Checkable technical steps to complete the task
258
+ - **Test Plan (BDD)**: Given-When-Then test scenarios
259
+ - **Test Cases**: Unit and integration test cases with coverage targets
236
260
 
237
261
  ### Optional Fields (Enhanced for GitHub Sync)
238
262
  - **GitHub Issue**: Auto-populated after `/specweave.github.sync-tasks`
239
263
  - **Assignee**: GitHub username (assign in GitHub UI or via `@username`)
240
- - **Subtasks**: Granular steps (15-60min each, shown as checkboxes in GitHub)
241
264
  - **Dependencies**: Tasks that must complete first (linked in GitHub via "depends on")
242
265
  - **Blocks**: Tasks waiting on this one (linked in GitHub via "blocks")
243
- - **Files to Create/Modify**: Context for reviewers
244
- - **Implementation**: Code snippets, examples, pseudocode
245
-
246
- ### Subtask Naming Convention
247
- - Format: `S-{TASK_ID}-{SUBTASK_NUM}: Description (time)`
248
- - Example: `S-001-01: Define interfaces (30min)`
249
- - Numbering: Zero-padded 2 digits (01, 02, 03, ...)
266
+ - **Files to Create/Modify**: Context for reviewers and developers
267
+ - **Code Examples**: Snippets showing implementation approach (TypeScript, pseudocode, etc.)
250
268
 
251
269
  ### Task Status Lifecycle
252
270
  1. **pending** - Not started, in backlog
@@ -1,89 +0,0 @@
1
- /**
2
- * Git Diff Analyzer
3
- *
4
- * Extracts modified files from git diff for reflection analysis
5
- * Parses git diff output to get file changes, line counts, and content
6
- *
7
- * @module git-diff-analyzer
8
- */
9
- import { GitDiffInfo } from './types/reflection-types';
10
- /**
11
- * Check if directory is a git repository
12
- * @param dir Directory to check (defaults to cwd)
13
- * @returns True if directory is in a git repository
14
- */
15
- export declare function isGitRepository(dir?: string): boolean;
16
- /**
17
- * Get list of modified files in the working directory
18
- * Includes both staged and unstaged changes
19
- *
20
- * @param cwd Working directory (optional, defaults to process.cwd())
21
- * @returns Array of file paths relative to git root
22
- */
23
- export declare function getModifiedFilesList(cwd?: string): string[];
24
- /**
25
- * Parse git diff numstat output to get line counts
26
- * Format: <added>\t<removed>\t<filename>
27
- *
28
- * @param numstatOutput Output from git diff --numstat
29
- * @returns Map of filename to {added, removed} counts
30
- */
31
- export declare function parseNumstat(numstatOutput: string): Map<string, {
32
- added: number;
33
- removed: number;
34
- }>;
35
- /**
36
- * Get diff content for a specific file
37
- * @param file File path relative to git root
38
- * @param cwd Working directory (optional)
39
- * @returns Diff content as string
40
- */
41
- export declare function getFileDiff(file: string, cwd?: string): string;
42
- /**
43
- * Get current file content
44
- * @param file File path (can be absolute or relative to cwd)
45
- * @param cwd Working directory (optional)
46
- * @returns File content as string, or empty string if file doesn't exist
47
- */
48
- export declare function getFileContent(file: string, cwd?: string): string;
49
- /**
50
- * Get modified files with diff information
51
- * Main function for reflection analysis
52
- *
53
- * @param cwd Working directory (optional, defaults to process.cwd())
54
- * @param maxFiles Maximum number of files to return (optional, defaults to 100)
55
- * @returns Array of GitDiffInfo objects with file changes
56
- */
57
- export declare function getModifiedFiles(cwd?: string, maxFiles?: number): GitDiffInfo[];
58
- /**
59
- * Get summary statistics for modified files
60
- * Useful for reflection metadata
61
- *
62
- * @param modifiedFiles Array of GitDiffInfo objects
63
- * @returns Summary with file count, total lines added/removed
64
- */
65
- export declare function getModifiedFilesSummary(modifiedFiles: GitDiffInfo[]): {
66
- count: number;
67
- linesAdded: number;
68
- linesRemoved: number;
69
- totalChanges: number;
70
- };
71
- /**
72
- * Filter files by extension
73
- * Useful for focusing reflection on specific file types
74
- *
75
- * @param modifiedFiles Array of GitDiffInfo objects
76
- * @param extensions Array of file extensions (e.g., ['.ts', '.js'])
77
- * @returns Filtered array of GitDiffInfo objects
78
- */
79
- export declare function filterFilesByExtension(modifiedFiles: GitDiffInfo[], extensions: string[]): GitDiffInfo[];
80
- /**
81
- * Exclude files matching patterns
82
- * Useful for excluding generated files, test files, etc.
83
- *
84
- * @param modifiedFiles Array of GitDiffInfo objects
85
- * @param patterns Array of glob patterns to exclude
86
- * @returns Filtered array of GitDiffInfo objects
87
- */
88
- export declare function excludeFilesByPattern(modifiedFiles: GitDiffInfo[], patterns: string[]): GitDiffInfo[];
89
- //# sourceMappingURL=git-diff-analyzer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-diff-analyzer.d.ts","sourceRoot":"","sources":["../../../../../plugins/specweave/lib/hooks/git-diff-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAqBvD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAOpE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAqB3D;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBnG;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAY9D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAajE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,CAAC,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAY,GACrB,WAAW,EAAE,CA8Cf;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAUA;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,WAAW,EAAE,EAC5B,UAAU,EAAE,MAAM,EAAE,GACnB,WAAW,EAAE,CAKf;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,WAAW,EAAE,EAC5B,QAAQ,EAAE,MAAM,EAAE,GACjB,WAAW,EAAE,CAQf"}
@@ -1,226 +0,0 @@
1
- /**
2
- * Git Diff Analyzer
3
- *
4
- * Extracts modified files from git diff for reflection analysis
5
- * Parses git diff output to get file changes, line counts, and content
6
- *
7
- * @module git-diff-analyzer
8
- */
9
- import { execSync } from 'child_process';
10
- import fs from 'fs-extra';
11
- import path from 'path';
12
- /**
13
- * Execute git command safely
14
- * @param command Git command to execute
15
- * @param cwd Working directory (optional)
16
- * @returns Command output as string
17
- * @throws Error if command fails
18
- */
19
- function executeGitCommand(command, cwd) {
20
- try {
21
- return execSync(command, {
22
- cwd: cwd || process.cwd(),
23
- encoding: 'utf-8',
24
- stdio: ['pipe', 'pipe', 'pipe']
25
- });
26
- }
27
- catch (error) {
28
- throw new Error(`Git command failed: ${command}. ${error.message}`);
29
- }
30
- }
31
- /**
32
- * Check if directory is a git repository
33
- * @param dir Directory to check (defaults to cwd)
34
- * @returns True if directory is in a git repository
35
- */
36
- export function isGitRepository(dir = process.cwd()) {
37
- try {
38
- executeGitCommand('git rev-parse --git-dir', dir);
39
- return true;
40
- }
41
- catch {
42
- return false;
43
- }
44
- }
45
- /**
46
- * Get list of modified files in the working directory
47
- * Includes both staged and unstaged changes
48
- *
49
- * @param cwd Working directory (optional, defaults to process.cwd())
50
- * @returns Array of file paths relative to git root
51
- */
52
- export function getModifiedFilesList(cwd) {
53
- if (!isGitRepository(cwd)) {
54
- return [];
55
- }
56
- try {
57
- // Get both staged and unstaged changes
58
- const output = executeGitCommand('git diff --name-only HEAD', cwd);
59
- if (!output.trim()) {
60
- return [];
61
- }
62
- return output
63
- .trim()
64
- .split('\n')
65
- .filter(file => file.length > 0)
66
- .filter(file => !file.startsWith('.git/')); // Exclude .git directory
67
- }
68
- catch {
69
- return [];
70
- }
71
- }
72
- /**
73
- * Parse git diff numstat output to get line counts
74
- * Format: <added>\t<removed>\t<filename>
75
- *
76
- * @param numstatOutput Output from git diff --numstat
77
- * @returns Map of filename to {added, removed} counts
78
- */
79
- export function parseNumstat(numstatOutput) {
80
- const stats = new Map();
81
- if (!numstatOutput.trim()) {
82
- return stats;
83
- }
84
- const lines = numstatOutput.trim().split('\n');
85
- for (const line of lines) {
86
- const parts = line.split('\t');
87
- if (parts.length < 3)
88
- continue;
89
- const added = parts[0] === '-' ? 0 : parseInt(parts[0], 10);
90
- const removed = parts[1] === '-' ? 0 : parseInt(parts[1], 10);
91
- const filename = parts[2];
92
- stats.set(filename, { added, removed });
93
- }
94
- return stats;
95
- }
96
- /**
97
- * Get diff content for a specific file
98
- * @param file File path relative to git root
99
- * @param cwd Working directory (optional)
100
- * @returns Diff content as string
101
- */
102
- export function getFileDiff(file, cwd) {
103
- if (!isGitRepository(cwd)) {
104
- return '';
105
- }
106
- try {
107
- // Get unified diff for the file
108
- const output = executeGitCommand(`git diff HEAD -- "${file}"`, cwd);
109
- return output;
110
- }
111
- catch {
112
- return '';
113
- }
114
- }
115
- /**
116
- * Get current file content
117
- * @param file File path (can be absolute or relative to cwd)
118
- * @param cwd Working directory (optional)
119
- * @returns File content as string, or empty string if file doesn't exist
120
- */
121
- export function getFileContent(file, cwd) {
122
- try {
123
- const workingDir = cwd || process.cwd();
124
- const absolutePath = path.isAbsolute(file) ? file : path.join(workingDir, file);
125
- if (!fs.existsSync(absolutePath)) {
126
- return '';
127
- }
128
- return fs.readFileSync(absolutePath, 'utf-8');
129
- }
130
- catch {
131
- return '';
132
- }
133
- }
134
- /**
135
- * Get modified files with diff information
136
- * Main function for reflection analysis
137
- *
138
- * @param cwd Working directory (optional, defaults to process.cwd())
139
- * @param maxFiles Maximum number of files to return (optional, defaults to 100)
140
- * @returns Array of GitDiffInfo objects with file changes
141
- */
142
- export function getModifiedFiles(cwd, maxFiles = 100) {
143
- if (!isGitRepository(cwd)) {
144
- return [];
145
- }
146
- const workingDir = cwd || process.cwd();
147
- // Get list of modified files
148
- const modifiedFiles = getModifiedFilesList(workingDir);
149
- if (modifiedFiles.length === 0) {
150
- return [];
151
- }
152
- // Limit number of files to prevent overwhelming the analysis
153
- const filesToAnalyze = modifiedFiles.slice(0, maxFiles);
154
- // Get line count statistics
155
- let numstatOutput = '';
156
- try {
157
- numstatOutput = executeGitCommand('git diff --numstat HEAD', workingDir);
158
- }
159
- catch {
160
- // If numstat fails, continue with empty stats
161
- }
162
- const stats = parseNumstat(numstatOutput);
163
- // Build GitDiffInfo array
164
- const result = [];
165
- for (const file of filesToAnalyze) {
166
- const fileStat = stats.get(file) || { added: 0, removed: 0 };
167
- const diffContent = getFileDiff(file, workingDir);
168
- // Only include files with actual changes
169
- if (fileStat.added > 0 || fileStat.removed > 0 || diffContent.length > 0) {
170
- result.push({
171
- file,
172
- linesAdded: fileStat.added,
173
- linesRemoved: fileStat.removed,
174
- content: diffContent
175
- });
176
- }
177
- }
178
- return result;
179
- }
180
- /**
181
- * Get summary statistics for modified files
182
- * Useful for reflection metadata
183
- *
184
- * @param modifiedFiles Array of GitDiffInfo objects
185
- * @returns Summary with file count, total lines added/removed
186
- */
187
- export function getModifiedFilesSummary(modifiedFiles) {
188
- return {
189
- count: modifiedFiles.length,
190
- linesAdded: modifiedFiles.reduce((sum, file) => sum + file.linesAdded, 0),
191
- linesRemoved: modifiedFiles.reduce((sum, file) => sum + file.linesRemoved, 0),
192
- totalChanges: modifiedFiles.reduce((sum, file) => sum + file.linesAdded + file.linesRemoved, 0)
193
- };
194
- }
195
- /**
196
- * Filter files by extension
197
- * Useful for focusing reflection on specific file types
198
- *
199
- * @param modifiedFiles Array of GitDiffInfo objects
200
- * @param extensions Array of file extensions (e.g., ['.ts', '.js'])
201
- * @returns Filtered array of GitDiffInfo objects
202
- */
203
- export function filterFilesByExtension(modifiedFiles, extensions) {
204
- return modifiedFiles.filter(file => {
205
- const ext = path.extname(file.file).toLowerCase();
206
- return extensions.some(allowedExt => ext === allowedExt.toLowerCase());
207
- });
208
- }
209
- /**
210
- * Exclude files matching patterns
211
- * Useful for excluding generated files, test files, etc.
212
- *
213
- * @param modifiedFiles Array of GitDiffInfo objects
214
- * @param patterns Array of glob patterns to exclude
215
- * @returns Filtered array of GitDiffInfo objects
216
- */
217
- export function excludeFilesByPattern(modifiedFiles, patterns) {
218
- return modifiedFiles.filter(file => {
219
- return !patterns.some(pattern => {
220
- // Simple pattern matching (supports * wildcard)
221
- const regex = new RegExp('^' + pattern.replace(/\*/g, '.*') + '$');
222
- return regex.test(file.file);
223
- });
224
- });
225
- }
226
- //# sourceMappingURL=git-diff-analyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git-diff-analyzer.js","sourceRoot":"","sources":["../../../../../plugins/specweave/lib/hooks/git-diff-analyzer.ts"],"names":[],"mappings":"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"}