specweave 0.15.0 → 0.16.1

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 (822) hide show
  1. package/CLAUDE.md +38 -0
  2. package/dist/cli/commands/init.d.ts.map +1 -1
  3. package/dist/cli/commands/init.js +162 -3
  4. package/dist/cli/commands/init.js.map +1 -1
  5. package/dist/cli/helpers/github/increment-profile-selector.d.ts +47 -0
  6. package/dist/cli/helpers/github/increment-profile-selector.d.ts.map +1 -0
  7. package/dist/cli/helpers/github/increment-profile-selector.js +186 -0
  8. package/dist/cli/helpers/github/increment-profile-selector.js.map +1 -0
  9. package/dist/cli/helpers/github/profile-manager.d.ts +119 -0
  10. package/dist/cli/helpers/github/profile-manager.d.ts.map +1 -0
  11. package/dist/cli/helpers/github/profile-manager.js +311 -0
  12. package/dist/cli/helpers/github/profile-manager.js.map +1 -0
  13. package/dist/cli/helpers/issue-tracker/github-multi-repo.d.ts +81 -0
  14. package/dist/cli/helpers/issue-tracker/github-multi-repo.d.ts.map +1 -0
  15. package/dist/cli/helpers/issue-tracker/github-multi-repo.js +385 -0
  16. package/dist/cli/helpers/issue-tracker/github-multi-repo.js.map +1 -0
  17. package/dist/cli/helpers/issue-tracker/github.d.ts +13 -0
  18. package/dist/cli/helpers/issue-tracker/github.d.ts.map +1 -1
  19. package/dist/cli/helpers/issue-tracker/github.js +38 -143
  20. package/dist/cli/helpers/issue-tracker/github.js.map +1 -1
  21. package/dist/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  22. package/dist/cli/helpers/issue-tracker/index.js +126 -43
  23. package/dist/cli/helpers/issue-tracker/index.js.map +1 -1
  24. package/dist/cli/helpers/issue-tracker/utils.d.ts +8 -0
  25. package/dist/cli/helpers/issue-tracker/utils.d.ts.map +1 -1
  26. package/dist/cli/helpers/issue-tracker/utils.js +46 -0
  27. package/dist/cli/helpers/issue-tracker/utils.js.map +1 -1
  28. package/dist/core/increment/active-increment-manager.d.ts +79 -0
  29. package/dist/core/increment/active-increment-manager.d.ts.map +1 -0
  30. package/dist/core/increment/active-increment-manager.js +153 -0
  31. package/dist/core/increment/active-increment-manager.js.map +1 -0
  32. package/dist/core/increment/metadata-manager.d.ts +2 -0
  33. package/dist/core/increment/metadata-manager.d.ts.map +1 -1
  34. package/dist/core/increment/metadata-manager.js +15 -0
  35. package/dist/core/increment/metadata-manager.js.map +1 -1
  36. package/dist/utils/git-detector.d.ts +84 -0
  37. package/dist/utils/git-detector.d.ts.map +1 -0
  38. package/dist/utils/git-detector.js +233 -0
  39. package/dist/utils/git-detector.js.map +1 -0
  40. package/package.json +2 -2
  41. package/plugins/specweave/commands/specweave-done.md +109 -1
  42. package/plugins/specweave/hooks/lib/update-status-line.sh +30 -4
  43. package/plugins/specweave/hooks/user-prompt-submit.sh +77 -21
  44. package/plugins/specweave/lib/hooks/git-diff-analyzer.js +129 -213
  45. package/plugins/specweave/lib/hooks/invoke-translator-skill.js +146 -192
  46. package/plugins/specweave/lib/hooks/prepare-reflection-context.js +103 -116
  47. package/plugins/specweave/lib/hooks/reflection-config-loader.js +85 -125
  48. package/plugins/specweave/lib/hooks/reflection-parser.js +267 -385
  49. package/plugins/specweave/lib/hooks/reflection-prompt-builder.js +169 -226
  50. package/plugins/specweave/lib/hooks/reflection-storage.js +223 -297
  51. package/plugins/specweave/lib/hooks/run-self-reflection.js +120 -191
  52. package/plugins/specweave/lib/hooks/sync-living-docs.js +87 -129
  53. package/plugins/specweave/lib/hooks/translate-file.js +239 -300
  54. package/plugins/specweave/lib/hooks/translate-living-docs.js +88 -144
  55. package/plugins/specweave/lib/hooks/types/reflection-types.js +57 -72
  56. package/plugins/specweave/lib/hooks/update-tasks-md.js +117 -179
  57. package/plugins/specweave-ado/lib/ado-board-resolver.js +135 -205
  58. package/plugins/specweave-ado/lib/ado-hierarchical-sync.js +223 -335
  59. package/plugins/specweave-ado/lib/ado-spec-sync.js +380 -414
  60. package/plugins/specweave-ado/lib/project-selector.js +168 -196
  61. package/plugins/specweave-ado/skills/ado-sync/SKILL.md +2 -2
  62. package/plugins/specweave-figma/ARCHITECTURE.md +1 -1
  63. package/plugins/specweave-figma/README.md +1 -1
  64. package/plugins/specweave-github/hooks/hooks.json +0 -11
  65. package/plugins/specweave-github/lib/cli-sync-increment-changes.js +9 -20
  66. package/plugins/specweave-github/lib/github-board-resolver.js +69 -115
  67. package/plugins/specweave-github/lib/github-client-v2.js +400 -389
  68. package/plugins/specweave-github/lib/github-client.js +246 -280
  69. package/plugins/specweave-github/lib/github-hierarchical-sync.js +168 -251
  70. package/plugins/specweave-github/lib/github-issue-updater.js +231 -288
  71. package/plugins/specweave-github/lib/github-spec-sync.js +379 -420
  72. package/plugins/specweave-github/lib/github-sync-bidirectional.js +175 -202
  73. package/plugins/specweave-github/lib/github-sync-increment-changes.js +212 -251
  74. package/plugins/specweave-github/lib/index.js +11 -10
  75. package/plugins/specweave-github/lib/repo-selector.js +174 -201
  76. package/plugins/specweave-github/lib/subtask-sync.js +132 -125
  77. package/plugins/specweave-github/lib/task-parser.js +191 -207
  78. package/plugins/specweave-github/lib/task-sync.js +344 -296
  79. package/plugins/specweave-github/lib/types.js +0 -5
  80. package/plugins/specweave-jira/lib/jira-board-resolver.js +50 -79
  81. package/plugins/specweave-jira/lib/jira-hierarchical-sync.js +119 -191
  82. package/plugins/specweave-jira/lib/jira-spec-sync.js +366 -405
  83. package/plugins/specweave-jira/lib/project-selector.js +172 -201
  84. package/plugins/specweave-jira/lib/reorganization-detector.js +202 -237
  85. package/plugins/specweave-jira/lib/setup-wizard.js +162 -204
  86. package/plugins/specweave-ml/README.md +1 -1
  87. package/dist/core/agent-model-manager.d.ts +0 -52
  88. package/dist/core/agent-model-manager.d.ts.map +0 -1
  89. package/dist/core/agent-model-manager.js +0 -120
  90. package/dist/core/agent-model-manager.js.map +0 -1
  91. package/dist/core/model-selector.d.ts +0 -57
  92. package/dist/core/model-selector.d.ts.map +0 -1
  93. package/dist/core/model-selector.js +0 -115
  94. package/dist/core/model-selector.js.map +0 -1
  95. package/dist/core/phase-detector.d.ts +0 -62
  96. package/dist/core/phase-detector.d.ts.map +0 -1
  97. package/dist/core/phase-detector.js +0 -229
  98. package/dist/core/phase-detector.js.map +0 -1
  99. package/dist/hooks/lib/git-diff-analyzer.d.ts +0 -89
  100. package/dist/hooks/lib/git-diff-analyzer.d.ts.map +0 -1
  101. package/dist/hooks/lib/git-diff-analyzer.js +0 -226
  102. package/dist/hooks/lib/git-diff-analyzer.js.map +0 -1
  103. package/dist/hooks/lib/invoke-translator-skill.d.ts +0 -60
  104. package/dist/hooks/lib/invoke-translator-skill.d.ts.map +0 -1
  105. package/dist/hooks/lib/invoke-translator-skill.js +0 -201
  106. package/dist/hooks/lib/invoke-translator-skill.js.map +0 -1
  107. package/dist/hooks/lib/prepare-reflection-context.d.ts +0 -42
  108. package/dist/hooks/lib/prepare-reflection-context.d.ts.map +0 -1
  109. package/dist/hooks/lib/prepare-reflection-context.js +0 -123
  110. package/dist/hooks/lib/prepare-reflection-context.js.map +0 -1
  111. package/dist/hooks/lib/reflection-config-loader.d.ts +0 -45
  112. package/dist/hooks/lib/reflection-config-loader.d.ts.map +0 -1
  113. package/dist/hooks/lib/reflection-config-loader.js +0 -132
  114. package/dist/hooks/lib/reflection-config-loader.js.map +0 -1
  115. package/dist/hooks/lib/reflection-parser.d.ts +0 -33
  116. package/dist/hooks/lib/reflection-parser.d.ts.map +0 -1
  117. package/dist/hooks/lib/reflection-parser.js +0 -419
  118. package/dist/hooks/lib/reflection-parser.js.map +0 -1
  119. package/dist/hooks/lib/reflection-prompt-builder.d.ts +0 -56
  120. package/dist/hooks/lib/reflection-prompt-builder.d.ts.map +0 -1
  121. package/dist/hooks/lib/reflection-prompt-builder.js +0 -239
  122. package/dist/hooks/lib/reflection-prompt-builder.js.map +0 -1
  123. package/dist/hooks/lib/reflection-storage.d.ts +0 -64
  124. package/dist/hooks/lib/reflection-storage.d.ts.map +0 -1
  125. package/dist/hooks/lib/reflection-storage.js +0 -305
  126. package/dist/hooks/lib/reflection-storage.js.map +0 -1
  127. package/dist/hooks/lib/run-self-reflection.d.ts +0 -43
  128. package/dist/hooks/lib/run-self-reflection.d.ts.map +0 -1
  129. package/dist/hooks/lib/run-self-reflection.js +0 -203
  130. package/dist/hooks/lib/run-self-reflection.js.map +0 -1
  131. package/dist/hooks/lib/sync-living-docs.d.ts +0 -27
  132. package/dist/hooks/lib/sync-living-docs.d.ts.map +0 -1
  133. package/dist/hooks/lib/sync-living-docs.js +0 -116
  134. package/dist/hooks/lib/sync-living-docs.js.map +0 -1
  135. package/dist/hooks/lib/translate-file.d.ts +0 -59
  136. package/dist/hooks/lib/translate-file.d.ts.map +0 -1
  137. package/dist/hooks/lib/translate-file.js +0 -350
  138. package/dist/hooks/lib/translate-file.js.map +0 -1
  139. package/dist/hooks/lib/translate-living-docs.d.ts +0 -13
  140. package/dist/hooks/lib/translate-living-docs.d.ts.map +0 -1
  141. package/dist/hooks/lib/translate-living-docs.js +0 -175
  142. package/dist/hooks/lib/translate-living-docs.js.map +0 -1
  143. package/dist/hooks/lib/types/reflection-types.d.ts +0 -164
  144. package/dist/hooks/lib/types/reflection-types.d.ts.map +0 -1
  145. package/dist/hooks/lib/types/reflection-types.js +0 -73
  146. package/dist/hooks/lib/types/reflection-types.js.map +0 -1
  147. package/dist/hooks/lib/update-tasks-md.d.ts +0 -29
  148. package/dist/hooks/lib/update-tasks-md.d.ts.map +0 -1
  149. package/dist/hooks/lib/update-tasks-md.js +0 -203
  150. package/dist/hooks/lib/update-tasks-md.js.map +0 -1
  151. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts +0 -89
  152. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.map +0 -1
  153. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js +0 -226
  154. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js.map +0 -1
  155. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts +0 -60
  156. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.map +0 -1
  157. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js +0 -201
  158. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js.map +0 -1
  159. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts +0 -42
  160. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.map +0 -1
  161. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js +0 -123
  162. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js.map +0 -1
  163. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts +0 -45
  164. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.map +0 -1
  165. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js +0 -132
  166. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js.map +0 -1
  167. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts +0 -33
  168. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts.map +0 -1
  169. package/dist/plugins/specweave/lib/hooks/reflection-parser.js +0 -419
  170. package/dist/plugins/specweave/lib/hooks/reflection-parser.js.map +0 -1
  171. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts +0 -56
  172. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.map +0 -1
  173. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js +0 -239
  174. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js.map +0 -1
  175. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts +0 -64
  176. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts.map +0 -1
  177. package/dist/plugins/specweave/lib/hooks/reflection-storage.js +0 -305
  178. package/dist/plugins/specweave/lib/hooks/reflection-storage.js.map +0 -1
  179. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts +0 -43
  180. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts.map +0 -1
  181. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js +0 -203
  182. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js.map +0 -1
  183. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts +0 -27
  184. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +0 -1
  185. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +0 -144
  186. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +0 -1
  187. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts +0 -59
  188. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts.map +0 -1
  189. package/dist/plugins/specweave/lib/hooks/translate-file.js +0 -350
  190. package/dist/plugins/specweave/lib/hooks/translate-file.js.map +0 -1
  191. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts +0 -13
  192. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts.map +0 -1
  193. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js +0 -175
  194. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js.map +0 -1
  195. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts +0 -164
  196. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts.map +0 -1
  197. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js +0 -73
  198. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js.map +0 -1
  199. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts +0 -29
  200. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts.map +0 -1
  201. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js +0 -203
  202. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js.map +0 -1
  203. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts +0 -94
  204. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +0 -1
  205. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +0 -219
  206. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +0 -1
  207. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts +0 -124
  208. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts.map +0 -1
  209. package/dist/plugins/specweave-ado/lib/ado-client-v2.js +0 -382
  210. package/dist/plugins/specweave-ado/lib/ado-client-v2.js.map +0 -1
  211. package/dist/plugins/specweave-ado/lib/ado-client.d.ts +0 -112
  212. package/dist/plugins/specweave-ado/lib/ado-client.d.ts.map +0 -1
  213. package/dist/plugins/specweave-ado/lib/ado-client.js +0 -257
  214. package/dist/plugins/specweave-ado/lib/ado-client.js.map +0 -1
  215. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts +0 -40
  216. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts.map +0 -1
  217. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js +0 -370
  218. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js.map +0 -1
  219. package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts +0 -100
  220. package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts.map +0 -1
  221. package/dist/plugins/specweave-ado/lib/ado-spec-sync.js +0 -471
  222. package/dist/plugins/specweave-ado/lib/ado-spec-sync.js.map +0 -1
  223. package/dist/plugins/specweave-ado/lib/project-selector.d.ts +0 -42
  224. package/dist/plugins/specweave-ado/lib/project-selector.d.ts.map +0 -1
  225. package/dist/plugins/specweave-ado/lib/project-selector.js +0 -211
  226. package/dist/plugins/specweave-ado/lib/project-selector.js.map +0 -1
  227. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.d.ts +0 -12
  228. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.d.ts.map +0 -1
  229. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.js +0 -28
  230. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.js.map +0 -1
  231. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts +0 -54
  232. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts.map +0 -1
  233. package/dist/plugins/specweave-github/lib/github-board-resolver.js +0 -122
  234. package/dist/plugins/specweave-github/lib/github-board-resolver.js.map +0 -1
  235. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +0 -104
  236. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +0 -1
  237. package/dist/plugins/specweave-github/lib/github-client-v2.js +0 -408
  238. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +0 -1
  239. package/dist/plugins/specweave-github/lib/github-client.d.ts +0 -96
  240. package/dist/plugins/specweave-github/lib/github-client.d.ts.map +0 -1
  241. package/dist/plugins/specweave-github/lib/github-client.js +0 -299
  242. package/dist/plugins/specweave-github/lib/github-client.js.map +0 -1
  243. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts +0 -29
  244. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts.map +0 -1
  245. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js +0 -268
  246. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js.map +0 -1
  247. package/dist/plugins/specweave-github/lib/github-issue-updater.d.ts +0 -61
  248. package/dist/plugins/specweave-github/lib/github-issue-updater.d.ts.map +0 -1
  249. package/dist/plugins/specweave-github/lib/github-issue-updater.js +0 -327
  250. package/dist/plugins/specweave-github/lib/github-issue-updater.js.map +0 -1
  251. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts +0 -108
  252. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts.map +0 -1
  253. package/dist/plugins/specweave-github/lib/github-spec-sync.js +0 -505
  254. package/dist/plugins/specweave-github/lib/github-spec-sync.js.map +0 -1
  255. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.d.ts +0 -36
  256. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.d.ts.map +0 -1
  257. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js +0 -228
  258. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js.map +0 -1
  259. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.d.ts +0 -18
  260. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.d.ts.map +0 -1
  261. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js +0 -287
  262. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js.map +0 -1
  263. package/dist/plugins/specweave-github/lib/index.d.ts +0 -10
  264. package/dist/plugins/specweave-github/lib/index.d.ts.map +0 -1
  265. package/dist/plugins/specweave-github/lib/index.js +0 -10
  266. package/dist/plugins/specweave-github/lib/index.js.map +0 -1
  267. package/dist/plugins/specweave-github/lib/repo-selector.d.ts +0 -49
  268. package/dist/plugins/specweave-github/lib/repo-selector.d.ts.map +0 -1
  269. package/dist/plugins/specweave-github/lib/repo-selector.js +0 -216
  270. package/dist/plugins/specweave-github/lib/repo-selector.js.map +0 -1
  271. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts +0 -51
  272. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts.map +0 -1
  273. package/dist/plugins/specweave-github/lib/subtask-sync.js +0 -147
  274. package/dist/plugins/specweave-github/lib/subtask-sync.js.map +0 -1
  275. package/dist/plugins/specweave-github/lib/task-parser.d.ts +0 -37
  276. package/dist/plugins/specweave-github/lib/task-parser.d.ts.map +0 -1
  277. package/dist/plugins/specweave-github/lib/task-parser.js +0 -211
  278. package/dist/plugins/specweave-github/lib/task-parser.js.map +0 -1
  279. package/dist/plugins/specweave-github/lib/task-sync.d.ts +0 -51
  280. package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +0 -1
  281. package/dist/plugins/specweave-github/lib/task-sync.js +0 -332
  282. package/dist/plugins/specweave-github/lib/task-sync.js.map +0 -1
  283. package/dist/plugins/specweave-github/lib/types.d.ts +0 -80
  284. package/dist/plugins/specweave-github/lib/types.d.ts.map +0 -1
  285. package/dist/plugins/specweave-github/lib/types.js +0 -5
  286. package/dist/plugins/specweave-github/lib/types.js.map +0 -1
  287. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +0 -50
  288. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +0 -1
  289. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +0 -84
  290. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +0 -1
  291. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts +0 -33
  292. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts.map +0 -1
  293. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js +0 -206
  294. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js.map +0 -1
  295. package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts +0 -105
  296. package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts.map +0 -1
  297. package/dist/plugins/specweave-jira/lib/jira-spec-sync.js +0 -456
  298. package/dist/plugins/specweave-jira/lib/jira-spec-sync.js.map +0 -1
  299. package/dist/plugins/specweave-jira/lib/project-selector.d.ts +0 -42
  300. package/dist/plugins/specweave-jira/lib/project-selector.d.ts.map +0 -1
  301. package/dist/plugins/specweave-jira/lib/project-selector.js +0 -216
  302. package/dist/plugins/specweave-jira/lib/project-selector.js.map +0 -1
  303. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts +0 -67
  304. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts.map +0 -1
  305. package/dist/plugins/specweave-jira/lib/reorganization-detector.js +0 -252
  306. package/dist/plugins/specweave-jira/lib/reorganization-detector.js.map +0 -1
  307. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts +0 -29
  308. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts.map +0 -1
  309. package/dist/plugins/specweave-jira/lib/setup-wizard.js +0 -219
  310. package/dist/plugins/specweave-jira/lib/setup-wizard.js.map +0 -1
  311. package/dist/project-mapper.js +0 -272
  312. package/dist/scripts/split-spec-by-project.js +0 -105
  313. package/dist/spec-splitter.js +0 -283
  314. package/dist/src/adapters/adapter-base.d.ts +0 -71
  315. package/dist/src/adapters/adapter-base.d.ts.map +0 -1
  316. package/dist/src/adapters/adapter-base.js +0 -139
  317. package/dist/src/adapters/adapter-base.js.map +0 -1
  318. package/dist/src/adapters/adapter-interface.d.ts +0 -149
  319. package/dist/src/adapters/adapter-interface.d.ts.map +0 -1
  320. package/dist/src/adapters/adapter-interface.js +0 -8
  321. package/dist/src/adapters/adapter-interface.js.map +0 -1
  322. package/dist/src/adapters/adapter-loader.d.ts +0 -91
  323. package/dist/src/adapters/adapter-loader.d.ts.map +0 -1
  324. package/dist/src/adapters/adapter-loader.js +0 -238
  325. package/dist/src/adapters/adapter-loader.js.map +0 -1
  326. package/dist/src/adapters/agents-md-generator.d.ts +0 -48
  327. package/dist/src/adapters/agents-md-generator.d.ts.map +0 -1
  328. package/dist/src/adapters/agents-md-generator.js +0 -193
  329. package/dist/src/adapters/agents-md-generator.js.map +0 -1
  330. package/dist/src/adapters/claude/adapter.d.ts +0 -128
  331. package/dist/src/adapters/claude/adapter.d.ts.map +0 -1
  332. package/dist/src/adapters/claude/adapter.js +0 -415
  333. package/dist/src/adapters/claude/adapter.js.map +0 -1
  334. package/dist/src/adapters/claude-md-generator.d.ts +0 -78
  335. package/dist/src/adapters/claude-md-generator.d.ts.map +0 -1
  336. package/dist/src/adapters/claude-md-generator.js +0 -307
  337. package/dist/src/adapters/claude-md-generator.js.map +0 -1
  338. package/dist/src/adapters/codex/adapter.d.ts +0 -50
  339. package/dist/src/adapters/codex/adapter.d.ts.map +0 -1
  340. package/dist/src/adapters/codex/adapter.js +0 -316
  341. package/dist/src/adapters/codex/adapter.js.map +0 -1
  342. package/dist/src/adapters/cursor/adapter.d.ts +0 -98
  343. package/dist/src/adapters/cursor/adapter.d.ts.map +0 -1
  344. package/dist/src/adapters/cursor/adapter.js +0 -406
  345. package/dist/src/adapters/cursor/adapter.js.map +0 -1
  346. package/dist/src/adapters/doc-generator.d.ts +0 -69
  347. package/dist/src/adapters/doc-generator.d.ts.map +0 -1
  348. package/dist/src/adapters/doc-generator.js +0 -247
  349. package/dist/src/adapters/doc-generator.js.map +0 -1
  350. package/dist/src/adapters/gemini/adapter.d.ts +0 -50
  351. package/dist/src/adapters/gemini/adapter.d.ts.map +0 -1
  352. package/dist/src/adapters/gemini/adapter.js +0 -281
  353. package/dist/src/adapters/gemini/adapter.js.map +0 -1
  354. package/dist/src/adapters/generic/adapter.d.ts +0 -86
  355. package/dist/src/adapters/generic/adapter.d.ts.map +0 -1
  356. package/dist/src/adapters/generic/adapter.js +0 -338
  357. package/dist/src/adapters/generic/adapter.js.map +0 -1
  358. package/dist/src/cli/commands/abandon.d.ts +0 -13
  359. package/dist/src/cli/commands/abandon.d.ts.map +0 -1
  360. package/dist/src/cli/commands/abandon.js +0 -15
  361. package/dist/src/cli/commands/abandon.js.map +0 -1
  362. package/dist/src/cli/commands/import-docs.d.ts +0 -21
  363. package/dist/src/cli/commands/import-docs.d.ts.map +0 -1
  364. package/dist/src/cli/commands/import-docs.js +0 -146
  365. package/dist/src/cli/commands/import-docs.js.map +0 -1
  366. package/dist/src/cli/commands/init-multiproject.d.ts +0 -11
  367. package/dist/src/cli/commands/init-multiproject.d.ts.map +0 -1
  368. package/dist/src/cli/commands/init-multiproject.js +0 -202
  369. package/dist/src/cli/commands/init-multiproject.js.map +0 -1
  370. package/dist/src/cli/commands/init.d.ts +0 -9
  371. package/dist/src/cli/commands/init.d.ts.map +0 -1
  372. package/dist/src/cli/commands/init.js +0 -1444
  373. package/dist/src/cli/commands/init.js.map +0 -1
  374. package/dist/src/cli/commands/install.d.ts +0 -9
  375. package/dist/src/cli/commands/install.d.ts.map +0 -1
  376. package/dist/src/cli/commands/install.js +0 -127
  377. package/dist/src/cli/commands/install.js.map +0 -1
  378. package/dist/src/cli/commands/list.d.ts +0 -8
  379. package/dist/src/cli/commands/list.d.ts.map +0 -1
  380. package/dist/src/cli/commands/list.js +0 -119
  381. package/dist/src/cli/commands/list.js.map +0 -1
  382. package/dist/src/cli/commands/migrate-to-multiproject.d.ts +0 -37
  383. package/dist/src/cli/commands/migrate-to-multiproject.d.ts.map +0 -1
  384. package/dist/src/cli/commands/migrate-to-multiproject.js +0 -189
  385. package/dist/src/cli/commands/migrate-to-multiproject.js.map +0 -1
  386. package/dist/src/cli/commands/migrate-to-profiles.d.ts +0 -25
  387. package/dist/src/cli/commands/migrate-to-profiles.d.ts.map +0 -1
  388. package/dist/src/cli/commands/migrate-to-profiles.js +0 -350
  389. package/dist/src/cli/commands/migrate-to-profiles.js.map +0 -1
  390. package/dist/src/cli/commands/pause.d.ts +0 -13
  391. package/dist/src/cli/commands/pause.d.ts.map +0 -1
  392. package/dist/src/cli/commands/pause.js +0 -15
  393. package/dist/src/cli/commands/pause.js.map +0 -1
  394. package/dist/src/cli/commands/qa.d.ts +0 -54
  395. package/dist/src/cli/commands/qa.d.ts.map +0 -1
  396. package/dist/src/cli/commands/qa.js +0 -98
  397. package/dist/src/cli/commands/qa.js.map +0 -1
  398. package/dist/src/cli/commands/resume.d.ts +0 -12
  399. package/dist/src/cli/commands/resume.d.ts.map +0 -1
  400. package/dist/src/cli/commands/resume.js +0 -14
  401. package/dist/src/cli/commands/resume.js.map +0 -1
  402. package/dist/src/cli/commands/status.d.ts +0 -12
  403. package/dist/src/cli/commands/status.d.ts.map +0 -1
  404. package/dist/src/cli/commands/status.js +0 -23
  405. package/dist/src/cli/commands/status.js.map +0 -1
  406. package/dist/src/cli/commands/switch-project.d.ts +0 -13
  407. package/dist/src/cli/commands/switch-project.d.ts.map +0 -1
  408. package/dist/src/cli/commands/switch-project.js +0 -91
  409. package/dist/src/cli/commands/switch-project.js.map +0 -1
  410. package/dist/src/cli/commands/validate-jira.d.ts +0 -35
  411. package/dist/src/cli/commands/validate-jira.d.ts.map +0 -1
  412. package/dist/src/cli/commands/validate-jira.js +0 -112
  413. package/dist/src/cli/commands/validate-jira.js.map +0 -1
  414. package/dist/src/cli/commands/validate-plugins.d.ts +0 -41
  415. package/dist/src/cli/commands/validate-plugins.d.ts.map +0 -1
  416. package/dist/src/cli/commands/validate-plugins.js +0 -171
  417. package/dist/src/cli/commands/validate-plugins.js.map +0 -1
  418. package/dist/src/cli/helpers/issue-tracker/ado.d.ts +0 -57
  419. package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +0 -1
  420. package/dist/src/cli/helpers/issue-tracker/ado.js +0 -243
  421. package/dist/src/cli/helpers/issue-tracker/ado.js.map +0 -1
  422. package/dist/src/cli/helpers/issue-tracker/github.d.ts +0 -65
  423. package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +0 -1
  424. package/dist/src/cli/helpers/issue-tracker/github.js +0 -426
  425. package/dist/src/cli/helpers/issue-tracker/github.js.map +0 -1
  426. package/dist/src/cli/helpers/issue-tracker/index.d.ts +0 -22
  427. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +0 -1
  428. package/dist/src/cli/helpers/issue-tracker/index.js +0 -314
  429. package/dist/src/cli/helpers/issue-tracker/index.js.map +0 -1
  430. package/dist/src/cli/helpers/issue-tracker/jira.d.ts +0 -61
  431. package/dist/src/cli/helpers/issue-tracker/jira.d.ts.map +0 -1
  432. package/dist/src/cli/helpers/issue-tracker/jira.js +0 -404
  433. package/dist/src/cli/helpers/issue-tracker/jira.js.map +0 -1
  434. package/dist/src/cli/helpers/issue-tracker/types.d.ts +0 -108
  435. package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +0 -1
  436. package/dist/src/cli/helpers/issue-tracker/types.js +0 -16
  437. package/dist/src/cli/helpers/issue-tracker/types.js.map +0 -1
  438. package/dist/src/cli/helpers/issue-tracker/utils.d.ts +0 -112
  439. package/dist/src/cli/helpers/issue-tracker/utils.d.ts.map +0 -1
  440. package/dist/src/cli/helpers/issue-tracker/utils.js +0 -247
  441. package/dist/src/cli/helpers/issue-tracker/utils.js.map +0 -1
  442. package/dist/src/core/agent-model-manager.d.ts +0 -52
  443. package/dist/src/core/agent-model-manager.d.ts.map +0 -1
  444. package/dist/src/core/agent-model-manager.js +0 -120
  445. package/dist/src/core/agent-model-manager.js.map +0 -1
  446. package/dist/src/core/brownfield/analyzer.d.ts +0 -86
  447. package/dist/src/core/brownfield/analyzer.d.ts.map +0 -1
  448. package/dist/src/core/brownfield/analyzer.js +0 -365
  449. package/dist/src/core/brownfield/analyzer.js.map +0 -1
  450. package/dist/src/core/brownfield/importer.d.ts +0 -76
  451. package/dist/src/core/brownfield/importer.d.ts.map +0 -1
  452. package/dist/src/core/brownfield/importer.js +0 -287
  453. package/dist/src/core/brownfield/importer.js.map +0 -1
  454. package/dist/src/core/config-manager.d.ts +0 -47
  455. package/dist/src/core/config-manager.d.ts.map +0 -1
  456. package/dist/src/core/config-manager.js +0 -136
  457. package/dist/src/core/config-manager.js.map +0 -1
  458. package/dist/src/core/cost-tracker.d.ts +0 -108
  459. package/dist/src/core/cost-tracker.d.ts.map +0 -1
  460. package/dist/src/core/cost-tracker.js +0 -281
  461. package/dist/src/core/cost-tracker.js.map +0 -1
  462. package/dist/src/core/credentials-manager.d.ts +0 -107
  463. package/dist/src/core/credentials-manager.d.ts.map +0 -1
  464. package/dist/src/core/credentials-manager.js +0 -457
  465. package/dist/src/core/credentials-manager.js.map +0 -1
  466. package/dist/src/core/i18n/language-detector.d.ts +0 -29
  467. package/dist/src/core/i18n/language-detector.d.ts.map +0 -1
  468. package/dist/src/core/i18n/language-detector.js +0 -143
  469. package/dist/src/core/i18n/language-detector.js.map +0 -1
  470. package/dist/src/core/i18n/language-manager.d.ts +0 -101
  471. package/dist/src/core/i18n/language-manager.d.ts.map +0 -1
  472. package/dist/src/core/i18n/language-manager.js +0 -232
  473. package/dist/src/core/i18n/language-manager.js.map +0 -1
  474. package/dist/src/core/i18n/language-registry.d.ts +0 -44
  475. package/dist/src/core/i18n/language-registry.d.ts.map +0 -1
  476. package/dist/src/core/i18n/language-registry.js +0 -234
  477. package/dist/src/core/i18n/language-registry.js.map +0 -1
  478. package/dist/src/core/i18n/locale-manager.d.ts +0 -62
  479. package/dist/src/core/i18n/locale-manager.d.ts.map +0 -1
  480. package/dist/src/core/i18n/locale-manager.js +0 -137
  481. package/dist/src/core/i18n/locale-manager.js.map +0 -1
  482. package/dist/src/core/i18n/system-prompt-injector.d.ts +0 -33
  483. package/dist/src/core/i18n/system-prompt-injector.d.ts.map +0 -1
  484. package/dist/src/core/i18n/system-prompt-injector.js +0 -131
  485. package/dist/src/core/i18n/system-prompt-injector.js.map +0 -1
  486. package/dist/src/core/i18n/types.d.ts +0 -151
  487. package/dist/src/core/i18n/types.d.ts.map +0 -1
  488. package/dist/src/core/i18n/types.js +0 -11
  489. package/dist/src/core/i18n/types.js.map +0 -1
  490. package/dist/src/core/increment/limits.d.ts +0 -68
  491. package/dist/src/core/increment/limits.d.ts.map +0 -1
  492. package/dist/src/core/increment/limits.js +0 -224
  493. package/dist/src/core/increment/limits.js.map +0 -1
  494. package/dist/src/core/increment/metadata-manager.d.ts +0 -114
  495. package/dist/src/core/increment/metadata-manager.d.ts.map +0 -1
  496. package/dist/src/core/increment/metadata-manager.js +0 -320
  497. package/dist/src/core/increment/metadata-manager.js.map +0 -1
  498. package/dist/src/core/increment/status-commands.d.ts +0 -43
  499. package/dist/src/core/increment/status-commands.d.ts.map +0 -1
  500. package/dist/src/core/increment/status-commands.js +0 -277
  501. package/dist/src/core/increment/status-commands.js.map +0 -1
  502. package/dist/src/core/increment-status.d.ts +0 -72
  503. package/dist/src/core/increment-status.d.ts.map +0 -1
  504. package/dist/src/core/increment-status.js +0 -227
  505. package/dist/src/core/increment-status.js.map +0 -1
  506. package/dist/src/core/model-selector.d.ts +0 -57
  507. package/dist/src/core/model-selector.d.ts.map +0 -1
  508. package/dist/src/core/model-selector.js +0 -115
  509. package/dist/src/core/model-selector.js.map +0 -1
  510. package/dist/src/core/phase-detector.d.ts +0 -62
  511. package/dist/src/core/phase-detector.d.ts.map +0 -1
  512. package/dist/src/core/phase-detector.js +0 -229
  513. package/dist/src/core/phase-detector.js.map +0 -1
  514. package/dist/src/core/plugin-loader.d.ts +0 -131
  515. package/dist/src/core/plugin-loader.d.ts.map +0 -1
  516. package/dist/src/core/plugin-loader.js +0 -421
  517. package/dist/src/core/plugin-loader.js.map +0 -1
  518. package/dist/src/core/project-manager.d.ts +0 -127
  519. package/dist/src/core/project-manager.d.ts.map +0 -1
  520. package/dist/src/core/project-manager.js +0 -524
  521. package/dist/src/core/project-manager.js.map +0 -1
  522. package/dist/src/core/project-structure-detector.d.ts +0 -92
  523. package/dist/src/core/project-structure-detector.d.ts.map +0 -1
  524. package/dist/src/core/project-structure-detector.js +0 -289
  525. package/dist/src/core/project-structure-detector.js.map +0 -1
  526. package/dist/src/core/qa/qa-runner.d.ts +0 -16
  527. package/dist/src/core/qa/qa-runner.d.ts.map +0 -1
  528. package/dist/src/core/qa/qa-runner.js +0 -404
  529. package/dist/src/core/qa/qa-runner.js.map +0 -1
  530. package/dist/src/core/qa/quality-gate-decider.d.ts +0 -53
  531. package/dist/src/core/qa/quality-gate-decider.d.ts.map +0 -1
  532. package/dist/src/core/qa/quality-gate-decider.js +0 -268
  533. package/dist/src/core/qa/quality-gate-decider.js.map +0 -1
  534. package/dist/src/core/qa/risk-calculator.d.ts +0 -126
  535. package/dist/src/core/qa/risk-calculator.d.ts.map +0 -1
  536. package/dist/src/core/qa/risk-calculator.js +0 -247
  537. package/dist/src/core/qa/risk-calculator.js.map +0 -1
  538. package/dist/src/core/qa/types.d.ts +0 -315
  539. package/dist/src/core/qa/types.d.ts.map +0 -1
  540. package/dist/src/core/qa/types.js +0 -8
  541. package/dist/src/core/qa/types.js.map +0 -1
  542. package/dist/src/core/rfc-generator-v2.d.ts +0 -149
  543. package/dist/src/core/rfc-generator-v2.d.ts.map +0 -1
  544. package/dist/src/core/rfc-generator-v2.js +0 -399
  545. package/dist/src/core/rfc-generator-v2.js.map +0 -1
  546. package/dist/src/core/specs/spec-metadata-manager.d.ts +0 -70
  547. package/dist/src/core/specs/spec-metadata-manager.d.ts.map +0 -1
  548. package/dist/src/core/specs/spec-metadata-manager.js +0 -371
  549. package/dist/src/core/specs/spec-metadata-manager.js.map +0 -1
  550. package/dist/src/core/specs/spec-parser.d.ts +0 -66
  551. package/dist/src/core/specs/spec-parser.d.ts.map +0 -1
  552. package/dist/src/core/specs/spec-parser.js +0 -276
  553. package/dist/src/core/specs/spec-parser.js.map +0 -1
  554. package/dist/src/core/sync/bidirectional-engine.d.ts +0 -110
  555. package/dist/src/core/sync/bidirectional-engine.d.ts.map +0 -1
  556. package/dist/src/core/sync/bidirectional-engine.js +0 -356
  557. package/dist/src/core/sync/bidirectional-engine.js.map +0 -1
  558. package/dist/src/core/sync/folder-mapper.d.ts +0 -71
  559. package/dist/src/core/sync/folder-mapper.d.ts.map +0 -1
  560. package/dist/src/core/sync/folder-mapper.js +0 -168
  561. package/dist/src/core/sync/folder-mapper.js.map +0 -1
  562. package/dist/src/core/sync/profile-manager.d.ts +0 -72
  563. package/dist/src/core/sync/profile-manager.d.ts.map +0 -1
  564. package/dist/src/core/sync/profile-manager.js +0 -338
  565. package/dist/src/core/sync/profile-manager.js.map +0 -1
  566. package/dist/src/core/sync/profile-selector.d.ts +0 -52
  567. package/dist/src/core/sync/profile-selector.d.ts.map +0 -1
  568. package/dist/src/core/sync/profile-selector.js +0 -179
  569. package/dist/src/core/sync/profile-selector.js.map +0 -1
  570. package/dist/src/core/sync/profile-validator.d.ts +0 -52
  571. package/dist/src/core/sync/profile-validator.d.ts.map +0 -1
  572. package/dist/src/core/sync/profile-validator.js +0 -225
  573. package/dist/src/core/sync/profile-validator.js.map +0 -1
  574. package/dist/src/core/sync/project-context.d.ts +0 -81
  575. package/dist/src/core/sync/project-context.d.ts.map +0 -1
  576. package/dist/src/core/sync/project-context.js +0 -354
  577. package/dist/src/core/sync/project-context.js.map +0 -1
  578. package/dist/src/core/sync/rate-limiter.d.ts +0 -116
  579. package/dist/src/core/sync/rate-limiter.d.ts.map +0 -1
  580. package/dist/src/core/sync/rate-limiter.js +0 -308
  581. package/dist/src/core/sync/rate-limiter.js.map +0 -1
  582. package/dist/src/core/sync/time-range-selector.d.ts +0 -48
  583. package/dist/src/core/sync/time-range-selector.d.ts.map +0 -1
  584. package/dist/src/core/sync/time-range-selector.js +0 -224
  585. package/dist/src/core/sync/time-range-selector.js.map +0 -1
  586. package/dist/src/core/types/config.d.ts +0 -90
  587. package/dist/src/core/types/config.d.ts.map +0 -1
  588. package/dist/src/core/types/config.js +0 -44
  589. package/dist/src/core/types/config.js.map +0 -1
  590. package/dist/src/core/types/increment-metadata.d.ts +0 -120
  591. package/dist/src/core/types/increment-metadata.d.ts.map +0 -1
  592. package/dist/src/core/types/increment-metadata.js +0 -138
  593. package/dist/src/core/types/increment-metadata.js.map +0 -1
  594. package/dist/src/core/types/plugin.d.ts +0 -283
  595. package/dist/src/core/types/plugin.d.ts.map +0 -1
  596. package/dist/src/core/types/plugin.js +0 -49
  597. package/dist/src/core/types/plugin.js.map +0 -1
  598. package/dist/src/core/types/spec-metadata.d.ts +0 -229
  599. package/dist/src/core/types/spec-metadata.d.ts.map +0 -1
  600. package/dist/src/core/types/spec-metadata.js +0 -14
  601. package/dist/src/core/types/spec-metadata.js.map +0 -1
  602. package/dist/src/core/types/sync-profile.d.ts +0 -403
  603. package/dist/src/core/types/sync-profile.d.ts.map +0 -1
  604. package/dist/src/core/types/sync-profile.js +0 -55
  605. package/dist/src/core/types/sync-profile.js.map +0 -1
  606. package/dist/src/hooks/lib/git-diff-analyzer.d.ts +0 -89
  607. package/dist/src/hooks/lib/git-diff-analyzer.d.ts.map +0 -1
  608. package/dist/src/hooks/lib/git-diff-analyzer.js +0 -226
  609. package/dist/src/hooks/lib/git-diff-analyzer.js.map +0 -1
  610. package/dist/src/hooks/lib/invoke-translator-skill.d.ts +0 -60
  611. package/dist/src/hooks/lib/invoke-translator-skill.d.ts.map +0 -1
  612. package/dist/src/hooks/lib/invoke-translator-skill.js +0 -201
  613. package/dist/src/hooks/lib/invoke-translator-skill.js.map +0 -1
  614. package/dist/src/hooks/lib/prepare-reflection-context.d.ts +0 -42
  615. package/dist/src/hooks/lib/prepare-reflection-context.d.ts.map +0 -1
  616. package/dist/src/hooks/lib/prepare-reflection-context.js +0 -123
  617. package/dist/src/hooks/lib/prepare-reflection-context.js.map +0 -1
  618. package/dist/src/hooks/lib/reflection-config-loader.d.ts +0 -45
  619. package/dist/src/hooks/lib/reflection-config-loader.d.ts.map +0 -1
  620. package/dist/src/hooks/lib/reflection-config-loader.js +0 -132
  621. package/dist/src/hooks/lib/reflection-config-loader.js.map +0 -1
  622. package/dist/src/hooks/lib/reflection-parser.d.ts +0 -33
  623. package/dist/src/hooks/lib/reflection-parser.d.ts.map +0 -1
  624. package/dist/src/hooks/lib/reflection-parser.js +0 -419
  625. package/dist/src/hooks/lib/reflection-parser.js.map +0 -1
  626. package/dist/src/hooks/lib/reflection-prompt-builder.d.ts +0 -56
  627. package/dist/src/hooks/lib/reflection-prompt-builder.d.ts.map +0 -1
  628. package/dist/src/hooks/lib/reflection-prompt-builder.js +0 -239
  629. package/dist/src/hooks/lib/reflection-prompt-builder.js.map +0 -1
  630. package/dist/src/hooks/lib/reflection-storage.d.ts +0 -64
  631. package/dist/src/hooks/lib/reflection-storage.d.ts.map +0 -1
  632. package/dist/src/hooks/lib/reflection-storage.js +0 -305
  633. package/dist/src/hooks/lib/reflection-storage.js.map +0 -1
  634. package/dist/src/hooks/lib/run-self-reflection.d.ts +0 -43
  635. package/dist/src/hooks/lib/run-self-reflection.d.ts.map +0 -1
  636. package/dist/src/hooks/lib/run-self-reflection.js +0 -203
  637. package/dist/src/hooks/lib/run-self-reflection.js.map +0 -1
  638. package/dist/src/hooks/lib/sync-living-docs.d.ts +0 -27
  639. package/dist/src/hooks/lib/sync-living-docs.d.ts.map +0 -1
  640. package/dist/src/hooks/lib/sync-living-docs.js +0 -116
  641. package/dist/src/hooks/lib/sync-living-docs.js.map +0 -1
  642. package/dist/src/hooks/lib/translate-file.d.ts +0 -59
  643. package/dist/src/hooks/lib/translate-file.d.ts.map +0 -1
  644. package/dist/src/hooks/lib/translate-file.js +0 -350
  645. package/dist/src/hooks/lib/translate-file.js.map +0 -1
  646. package/dist/src/hooks/lib/translate-living-docs.d.ts +0 -13
  647. package/dist/src/hooks/lib/translate-living-docs.d.ts.map +0 -1
  648. package/dist/src/hooks/lib/translate-living-docs.js +0 -175
  649. package/dist/src/hooks/lib/translate-living-docs.js.map +0 -1
  650. package/dist/src/hooks/lib/types/reflection-types.d.ts +0 -164
  651. package/dist/src/hooks/lib/types/reflection-types.d.ts.map +0 -1
  652. package/dist/src/hooks/lib/types/reflection-types.js +0 -73
  653. package/dist/src/hooks/lib/types/reflection-types.js.map +0 -1
  654. package/dist/src/hooks/lib/update-tasks-md.d.ts +0 -29
  655. package/dist/src/hooks/lib/update-tasks-md.d.ts.map +0 -1
  656. package/dist/src/hooks/lib/update-tasks-md.js +0 -203
  657. package/dist/src/hooks/lib/update-tasks-md.js.map +0 -1
  658. package/dist/src/integrations/ado/ado-client.d.ts +0 -127
  659. package/dist/src/integrations/ado/ado-client.d.ts.map +0 -1
  660. package/dist/src/integrations/ado/ado-client.js +0 -416
  661. package/dist/src/integrations/ado/ado-client.js.map +0 -1
  662. package/dist/src/integrations/jira/jira-client.d.ts +0 -139
  663. package/dist/src/integrations/jira/jira-client.d.ts.map +0 -1
  664. package/dist/src/integrations/jira/jira-client.js +0 -386
  665. package/dist/src/integrations/jira/jira-client.js.map +0 -1
  666. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +0 -75
  667. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +0 -1
  668. package/dist/src/integrations/jira/jira-incremental-mapper.js +0 -474
  669. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +0 -1
  670. package/dist/src/integrations/jira/jira-mapper.d.ts +0 -105
  671. package/dist/src/integrations/jira/jira-mapper.d.ts.map +0 -1
  672. package/dist/src/integrations/jira/jira-mapper.js +0 -494
  673. package/dist/src/integrations/jira/jira-mapper.js.map +0 -1
  674. package/dist/src/metrics/calculators/change-failure-rate.d.ts +0 -22
  675. package/dist/src/metrics/calculators/change-failure-rate.d.ts.map +0 -1
  676. package/dist/src/metrics/calculators/change-failure-rate.js +0 -70
  677. package/dist/src/metrics/calculators/change-failure-rate.js.map +0 -1
  678. package/dist/src/metrics/calculators/deployment-frequency.d.ts +0 -20
  679. package/dist/src/metrics/calculators/deployment-frequency.d.ts.map +0 -1
  680. package/dist/src/metrics/calculators/deployment-frequency.js +0 -61
  681. package/dist/src/metrics/calculators/deployment-frequency.js.map +0 -1
  682. package/dist/src/metrics/calculators/lead-time.d.ts +0 -22
  683. package/dist/src/metrics/calculators/lead-time.d.ts.map +0 -1
  684. package/dist/src/metrics/calculators/lead-time.js +0 -82
  685. package/dist/src/metrics/calculators/lead-time.js.map +0 -1
  686. package/dist/src/metrics/calculators/mttr.d.ts +0 -21
  687. package/dist/src/metrics/calculators/mttr.d.ts.map +0 -1
  688. package/dist/src/metrics/calculators/mttr.js +0 -60
  689. package/dist/src/metrics/calculators/mttr.js.map +0 -1
  690. package/dist/src/metrics/dora-calculator.d.ts +0 -28
  691. package/dist/src/metrics/dora-calculator.d.ts.map +0 -1
  692. package/dist/src/metrics/dora-calculator.js +0 -117
  693. package/dist/src/metrics/dora-calculator.js.map +0 -1
  694. package/dist/src/metrics/github-client.d.ts +0 -51
  695. package/dist/src/metrics/github-client.d.ts.map +0 -1
  696. package/dist/src/metrics/github-client.js +0 -133
  697. package/dist/src/metrics/github-client.js.map +0 -1
  698. package/dist/src/metrics/report-generator.d.ts +0 -17
  699. package/dist/src/metrics/report-generator.d.ts.map +0 -1
  700. package/dist/src/metrics/report-generator.js +0 -403
  701. package/dist/src/metrics/report-generator.js.map +0 -1
  702. package/dist/src/metrics/types.d.ts +0 -112
  703. package/dist/src/metrics/types.d.ts.map +0 -1
  704. package/dist/src/metrics/types.js +0 -10
  705. package/dist/src/metrics/types.js.map +0 -1
  706. package/dist/src/metrics/utils/percentile.d.ts +0 -25
  707. package/dist/src/metrics/utils/percentile.d.ts.map +0 -1
  708. package/dist/src/metrics/utils/percentile.js +0 -46
  709. package/dist/src/metrics/utils/percentile.js.map +0 -1
  710. package/dist/src/metrics/utils/tier-classifier.d.ts +0 -61
  711. package/dist/src/metrics/utils/tier-classifier.d.ts.map +0 -1
  712. package/dist/src/metrics/utils/tier-classifier.js +0 -100
  713. package/dist/src/metrics/utils/tier-classifier.js.map +0 -1
  714. package/dist/src/testing/test-generator.d.ts +0 -117
  715. package/dist/src/testing/test-generator.d.ts.map +0 -1
  716. package/dist/src/testing/test-generator.js +0 -370
  717. package/dist/src/testing/test-generator.js.map +0 -1
  718. package/dist/src/types/cost-tracking.d.ts +0 -43
  719. package/dist/src/types/cost-tracking.d.ts.map +0 -1
  720. package/dist/src/types/cost-tracking.js +0 -8
  721. package/dist/src/types/cost-tracking.js.map +0 -1
  722. package/dist/src/types/model-selection.d.ts +0 -53
  723. package/dist/src/types/model-selection.d.ts.map +0 -1
  724. package/dist/src/types/model-selection.js +0 -12
  725. package/dist/src/types/model-selection.js.map +0 -1
  726. package/dist/src/utils/agents-md-compiler.d.ts +0 -68
  727. package/dist/src/utils/agents-md-compiler.d.ts.map +0 -1
  728. package/dist/src/utils/agents-md-compiler.js +0 -420
  729. package/dist/src/utils/agents-md-compiler.js.map +0 -1
  730. package/dist/src/utils/auth-helpers.d.ts +0 -58
  731. package/dist/src/utils/auth-helpers.d.ts.map +0 -1
  732. package/dist/src/utils/auth-helpers.js +0 -108
  733. package/dist/src/utils/auth-helpers.js.map +0 -1
  734. package/dist/src/utils/auto-install.d.ts +0 -47
  735. package/dist/src/utils/auto-install.d.ts.map +0 -1
  736. package/dist/src/utils/auto-install.js +0 -211
  737. package/dist/src/utils/auto-install.js.map +0 -1
  738. package/dist/src/utils/claude-cli-detector.d.ts +0 -75
  739. package/dist/src/utils/claude-cli-detector.d.ts.map +0 -1
  740. package/dist/src/utils/claude-cli-detector.js +0 -285
  741. package/dist/src/utils/claude-cli-detector.js.map +0 -1
  742. package/dist/src/utils/cost-reporter.d.ts +0 -58
  743. package/dist/src/utils/cost-reporter.d.ts.map +0 -1
  744. package/dist/src/utils/cost-reporter.js +0 -224
  745. package/dist/src/utils/cost-reporter.js.map +0 -1
  746. package/dist/src/utils/docs-preview/config-generator.d.ts +0 -46
  747. package/dist/src/utils/docs-preview/config-generator.d.ts.map +0 -1
  748. package/dist/src/utils/docs-preview/config-generator.js +0 -377
  749. package/dist/src/utils/docs-preview/config-generator.js.map +0 -1
  750. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +0 -38
  751. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +0 -1
  752. package/dist/src/utils/docs-preview/docusaurus-setup.js +0 -177
  753. package/dist/src/utils/docs-preview/docusaurus-setup.js.map +0 -1
  754. package/dist/src/utils/docs-preview/index.d.ts +0 -7
  755. package/dist/src/utils/docs-preview/index.d.ts.map +0 -1
  756. package/dist/src/utils/docs-preview/index.js +0 -7
  757. package/dist/src/utils/docs-preview/index.js.map +0 -1
  758. package/dist/src/utils/docs-preview/package-installer.d.ts +0 -42
  759. package/dist/src/utils/docs-preview/package-installer.d.ts.map +0 -1
  760. package/dist/src/utils/docs-preview/package-installer.js +0 -182
  761. package/dist/src/utils/docs-preview/package-installer.js.map +0 -1
  762. package/dist/src/utils/docs-preview/server-manager.d.ts +0 -30
  763. package/dist/src/utils/docs-preview/server-manager.d.ts.map +0 -1
  764. package/dist/src/utils/docs-preview/server-manager.js +0 -212
  765. package/dist/src/utils/docs-preview/server-manager.js.map +0 -1
  766. package/dist/src/utils/docs-preview/sidebar-builder.d.ts +0 -32
  767. package/dist/src/utils/docs-preview/sidebar-builder.d.ts.map +0 -1
  768. package/dist/src/utils/docs-preview/sidebar-builder.js +0 -202
  769. package/dist/src/utils/docs-preview/sidebar-builder.js.map +0 -1
  770. package/dist/src/utils/docs-preview/types.d.ts +0 -57
  771. package/dist/src/utils/docs-preview/types.d.ts.map +0 -1
  772. package/dist/src/utils/docs-preview/types.js +0 -2
  773. package/dist/src/utils/docs-preview/types.js.map +0 -1
  774. package/dist/src/utils/env-file.d.ts +0 -88
  775. package/dist/src/utils/env-file.d.ts.map +0 -1
  776. package/dist/src/utils/env-file.js +0 -180
  777. package/dist/src/utils/env-file.js.map +0 -1
  778. package/dist/src/utils/env-multi-project-parser.d.ts +0 -220
  779. package/dist/src/utils/env-multi-project-parser.d.ts.map +0 -1
  780. package/dist/src/utils/env-multi-project-parser.js +0 -403
  781. package/dist/src/utils/env-multi-project-parser.js.map +0 -1
  782. package/dist/src/utils/esm-helpers.d.ts +0 -50
  783. package/dist/src/utils/esm-helpers.d.ts.map +0 -1
  784. package/dist/src/utils/esm-helpers.js +0 -57
  785. package/dist/src/utils/esm-helpers.js.map +0 -1
  786. package/dist/src/utils/execFileNoThrow.d.ts +0 -99
  787. package/dist/src/utils/execFileNoThrow.d.ts.map +0 -1
  788. package/dist/src/utils/execFileNoThrow.js +0 -137
  789. package/dist/src/utils/execFileNoThrow.js.map +0 -1
  790. package/dist/src/utils/external-resource-validator.d.ts +0 -102
  791. package/dist/src/utils/external-resource-validator.d.ts.map +0 -1
  792. package/dist/src/utils/external-resource-validator.js +0 -442
  793. package/dist/src/utils/external-resource-validator.js.map +0 -1
  794. package/dist/src/utils/generate-skills-index.d.ts +0 -24
  795. package/dist/src/utils/generate-skills-index.d.ts.map +0 -1
  796. package/dist/src/utils/generate-skills-index.js +0 -410
  797. package/dist/src/utils/generate-skills-index.js.map +0 -1
  798. package/dist/src/utils/model-selection.d.ts +0 -75
  799. package/dist/src/utils/model-selection.d.ts.map +0 -1
  800. package/dist/src/utils/model-selection.js +0 -204
  801. package/dist/src/utils/model-selection.js.map +0 -1
  802. package/dist/src/utils/plugin-validator.d.ts +0 -161
  803. package/dist/src/utils/plugin-validator.d.ts.map +0 -1
  804. package/dist/src/utils/plugin-validator.js +0 -558
  805. package/dist/src/utils/plugin-validator.js.map +0 -1
  806. package/dist/src/utils/pricing-constants.d.ts +0 -70
  807. package/dist/src/utils/pricing-constants.d.ts.map +0 -1
  808. package/dist/src/utils/pricing-constants.js +0 -71
  809. package/dist/src/utils/pricing-constants.js.map +0 -1
  810. package/dist/src/utils/project-detection.d.ts +0 -141
  811. package/dist/src/utils/project-detection.d.ts.map +0 -1
  812. package/dist/src/utils/project-detection.js +0 -321
  813. package/dist/src/utils/project-detection.js.map +0 -1
  814. package/dist/src/utils/string-utils.d.ts +0 -40
  815. package/dist/src/utils/string-utils.d.ts.map +0 -1
  816. package/dist/src/utils/string-utils.js +0 -58
  817. package/dist/src/utils/string-utils.js.map +0 -1
  818. package/dist/src/utils/translation.d.ts +0 -187
  819. package/dist/src/utils/translation.d.ts.map +0 -1
  820. package/dist/src/utils/translation.js +0 -414
  821. package/dist/src/utils/translation.js.map +0 -1
  822. package/plugins/specweave-github/hooks/post-increment-done.sh +0 -224
@@ -1,403 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * DORA Metrics Report Generator
4
- *
5
- * Generates detailed markdown reports from DORA metrics
6
- * Provides insights, trends, and actionable recommendations
7
- */
8
- import * as fs from 'fs';
9
- import * as path from 'path';
10
- /**
11
- * Format date for display
12
- */
13
- function formatDate(date) {
14
- const d = typeof date === 'string' ? new Date(date) : date;
15
- return d.toLocaleDateString('en-US', {
16
- year: 'numeric',
17
- month: 'short',
18
- day: 'numeric',
19
- });
20
- }
21
- /**
22
- * Get tier emoji
23
- */
24
- function getTierEmoji(tier) {
25
- switch (tier) {
26
- case 'Elite': return '🏆';
27
- case 'High': return '⭐';
28
- case 'Medium': return '📊';
29
- case 'Low': return '⚠️';
30
- default: return '⚪';
31
- }
32
- }
33
- /**
34
- * Get status emoji
35
- */
36
- function getStatusEmoji(tier) {
37
- switch (tier) {
38
- case 'Elite':
39
- case 'High':
40
- return '✅';
41
- case 'Medium':
42
- return '⚠️';
43
- case 'Low':
44
- return '❌';
45
- default:
46
- return 'ℹ️';
47
- }
48
- }
49
- /**
50
- * Generate deployment frequency insights
51
- */
52
- function generateDFInsights(value, tier) {
53
- const insights = [];
54
- if (tier === 'Elite') {
55
- insights.push('🎉 **Elite Performance**: Deploying multiple times per day enables rapid feedback and reduced risk');
56
- insights.push('✅ Continue current cadence - no action needed');
57
- }
58
- else if (tier === 'High') {
59
- insights.push('✅ **Strong Performance**: Weekly to monthly deployments indicate healthy delivery rhythm');
60
- insights.push('📈 **Next Level**: Consider increasing to daily deployments for elite performance');
61
- insights.push('💡 **Tip**: Implement feature flags to decouple deployment from release');
62
- }
63
- else if (tier === 'Medium') {
64
- insights.push('⚠️ **Room for Improvement**: Monthly to quarterly deployments increase risk');
65
- insights.push('🎯 **Action**: Break down changes into smaller, more frequent deployments');
66
- insights.push('🔧 **Focus**: Improve CI/CD pipeline automation');
67
- }
68
- else {
69
- insights.push('❌ **Critical**: Infrequent deployments create significant risk and slow feedback');
70
- insights.push('🚨 **Urgent**: Implement automated deployment pipeline');
71
- insights.push('📋 **Priority**: Break monolithic releases into incremental deployments');
72
- }
73
- return insights;
74
- }
75
- /**
76
- * Generate lead time insights
77
- */
78
- function generateLTInsights(value, tier, p50, p90) {
79
- const insights = [];
80
- if (tier === 'Elite') {
81
- insights.push('🎉 **Elite Performance**: Sub-hour lead time enables rapid iteration');
82
- insights.push('✅ Best-in-class delivery speed');
83
- }
84
- else if (tier === 'High') {
85
- insights.push('✅ **Strong Performance**: Lead time under 1 week is competitive');
86
- if (p50 && p90) {
87
- insights.push(`📊 **Distribution**: 50% of changes deploy in ${p50}h, 90% in ${p90}h`);
88
- }
89
- insights.push('📈 **Next Level**: Focus on reducing p90 to reach elite tier');
90
- insights.push('💡 **Tip**: Identify bottlenecks in slowest 10% of deployments');
91
- }
92
- else if (tier === 'Medium') {
93
- insights.push('⚠️ **Moderate Performance**: 1 week to 1 month lead time slows feedback');
94
- insights.push('🎯 **Action**: Reduce code review time and automate testing');
95
- insights.push('🔧 **Focus**: Eliminate manual approval steps');
96
- }
97
- else {
98
- insights.push('❌ **Critical**: Long lead times reduce agility and increase risk');
99
- insights.push('🚨 **Urgent**: Implement automated testing and deployment');
100
- insights.push('📋 **Priority**: Reduce batch size and increase deployment frequency');
101
- }
102
- return insights;
103
- }
104
- /**
105
- * Generate change failure rate insights
106
- */
107
- function generateCFRInsights(value, tier, failed, total) {
108
- const insights = [];
109
- if (tier === 'Elite') {
110
- insights.push('🎉 **Elite Performance**: < 15% failure rate indicates high quality');
111
- if (failed === 0) {
112
- insights.push('🏆 **Perfect Record**: Zero failures across all deployments!');
113
- }
114
- insights.push('✅ Maintain current quality standards');
115
- }
116
- else if (tier === 'High') {
117
- insights.push('✅ **Good Performance**: 16-30% failure rate is manageable');
118
- insights.push(`📊 **Stats**: ${failed} failures out of ${total} deployments`);
119
- insights.push('📈 **Next Level**: Focus on test coverage and pre-deployment validation');
120
- insights.push('💡 **Tip**: Implement smoke tests and canary deployments');
121
- }
122
- else if (tier === 'Medium') {
123
- insights.push('⚠️ **Concerning**: 31-45% failure rate impacts reliability');
124
- insights.push(`📊 **Stats**: ${failed} failures out of ${total} deployments`);
125
- insights.push('🎯 **Action**: Increase automated test coverage');
126
- insights.push('🔧 **Focus**: Implement pre-commit hooks and PR validation');
127
- }
128
- else {
129
- insights.push('❌ **Critical**: > 45% failure rate severely impacts trust');
130
- insights.push(`📊 **Stats**: ${failed} failures out of ${total} deployments`);
131
- insights.push('🚨 **Urgent**: Implement comprehensive test suite');
132
- insights.push('📋 **Priority**: Add smoke tests and staging environment');
133
- }
134
- return insights;
135
- }
136
- /**
137
- * Generate MTTR insights
138
- */
139
- function generateMTTRInsights(value, tier, p50, p90) {
140
- const insights = [];
141
- if (value === 0 || tier === 'N/A') {
142
- insights.push('ℹ️ **No Incidents**: No production incidents in measurement period');
143
- insights.push('✅ This is good news! Either stability is high or incident tracking needs improvement');
144
- insights.push('💡 **Tip**: Ensure production incidents are labeled "incident" or "production-bug"');
145
- return insights;
146
- }
147
- if (tier === 'Elite') {
148
- insights.push('🎉 **Elite Performance**: Sub-hour recovery time minimizes impact');
149
- insights.push('✅ Excellent incident response capability');
150
- }
151
- else if (tier === 'High') {
152
- insights.push('✅ **Strong Performance**: Recovery within 24 hours limits damage');
153
- if (p50 && p90) {
154
- insights.push(`📊 **Distribution**: 50% resolve in ${p50} min, 90% in ${p90} min`);
155
- }
156
- insights.push('📈 **Next Level**: Implement auto-remediation for common issues');
157
- }
158
- else if (tier === 'Medium') {
159
- insights.push('⚠️ **Room for Improvement**: Multi-day recovery extends impact');
160
- insights.push('🎯 **Action**: Create runbooks for common incidents');
161
- insights.push('🔧 **Focus**: Improve monitoring and alerting');
162
- }
163
- else {
164
- insights.push('❌ **Critical**: Week-plus recovery time is unacceptable');
165
- insights.push('🚨 **Urgent**: Implement on-call rotation and incident procedures');
166
- insights.push('📋 **Priority**: Create disaster recovery plan');
167
- }
168
- return insights;
169
- }
170
- /**
171
- * Generate markdown report
172
- */
173
- export function generateMarkdownReport(metrics, releases, issues) {
174
- const timestamp = new Date(metrics.timestamp);
175
- const { deploymentFrequency, leadTime, changeFailureRate, mttr } = metrics.metrics;
176
- let report = `# DORA Metrics Report
177
-
178
- **Generated**: ${formatDate(timestamp)} at ${timestamp.toLocaleTimeString('en-US')}
179
- **Period**: Last 30 days
180
-
181
- ---
182
-
183
- ## 📊 Executive Summary
184
-
185
- | Metric | Value | Tier | Status |
186
- |--------|-------|------|--------|
187
- | **Deployment Frequency** | ${deploymentFrequency.value} ${deploymentFrequency.unit} | ${getTierEmoji(deploymentFrequency.tier)} ${deploymentFrequency.tier} | ${getStatusEmoji(deploymentFrequency.tier)} |
188
- | **Lead Time for Changes** | ${leadTime.value} ${leadTime.unit} | ${getTierEmoji(leadTime.tier)} ${leadTime.tier} | ${getStatusEmoji(leadTime.tier)} |
189
- | **Change Failure Rate** | ${changeFailureRate.value}% | ${getTierEmoji(changeFailureRate.tier)} ${changeFailureRate.tier} | ${getStatusEmoji(changeFailureRate.tier)} |
190
- | **Mean Time to Recovery** | ${mttr.value} ${mttr.unit} | ${getTierEmoji(mttr.tier)} ${mttr.tier} | ${getStatusEmoji(mttr.tier)} |
191
-
192
- `;
193
- // Overall assessment
194
- const tiers = [deploymentFrequency.tier, leadTime.tier, changeFailureRate.tier, mttr.tier];
195
- const eliteCount = tiers.filter(t => t === 'Elite').length;
196
- const highCount = tiers.filter(t => t === 'High').length;
197
- if (eliteCount >= 3) {
198
- report += `**Overall Assessment**: 🏆 **Elite Team** - ${eliteCount}/4 metrics at elite level\n\n`;
199
- }
200
- else if (eliteCount + highCount >= 3) {
201
- report += `**Overall Assessment**: ⭐ **High-Performing Team** - ${eliteCount + highCount}/4 metrics at high or elite\n\n`;
202
- }
203
- else {
204
- report += `**Overall Assessment**: 📊 **Growing Team** - Focus on continuous improvement\n\n`;
205
- }
206
- report += `---
207
-
208
- ## 🚀 Deployment Frequency
209
-
210
- **Current**: ${deploymentFrequency.value} ${deploymentFrequency.unit} (${getTierEmoji(deploymentFrequency.tier)} ${deploymentFrequency.tier})
211
-
212
- **Industry Benchmarks**:
213
- - 🏆 Elite: Multiple deploys per day (>365/year)
214
- - ⭐ High: Weekly to monthly (52-365/year)
215
- - 📊 Medium: Monthly to quarterly (12-52/year)
216
- - ⚠️ Low: Less than quarterly (<12/year)
217
-
218
- ### Insights
219
-
220
- ${generateDFInsights(deploymentFrequency.value, deploymentFrequency.tier).map(i => `- ${i}`).join('\n')}
221
-
222
- ---
223
-
224
- ## ⚡ Lead Time for Changes
225
-
226
- **Current**: ${leadTime.value} ${leadTime.unit} (${getTierEmoji(leadTime.tier)} ${leadTime.tier})
227
- `;
228
- if (leadTime.p50 && leadTime.p90) {
229
- report += `**Percentiles**: P50 = ${leadTime.p50}h, P90 = ${leadTime.p90}h\n`;
230
- }
231
- report += `
232
- **Industry Benchmarks**:
233
- - 🏆 Elite: Less than 1 hour
234
- - ⭐ High: 1 day to 1 week
235
- - 📊 Medium: 1 week to 1 month
236
- - ⚠️ Low: More than 1 month
237
-
238
- ### Insights
239
-
240
- ${generateLTInsights(leadTime.value, leadTime.tier, leadTime.p50, leadTime.p90).map(i => `- ${i}`).join('\n')}
241
-
242
- ---
243
-
244
- ## ✅ Change Failure Rate
245
-
246
- **Current**: ${changeFailureRate.value}% (${getTierEmoji(changeFailureRate.tier)} ${changeFailureRate.tier})
247
- **Failed Releases**: ${changeFailureRate.failedReleases} / ${changeFailureRate.totalReleases}
248
-
249
- **Industry Benchmarks**:
250
- - 🏆 Elite: 0-15%
251
- - ⭐ High: 16-30%
252
- - 📊 Medium: 31-45%
253
- - ⚠️ Low: More than 45%
254
-
255
- ### Insights
256
-
257
- ${generateCFRInsights(changeFailureRate.value, changeFailureRate.tier, changeFailureRate.failedReleases, changeFailureRate.totalReleases).map(i => `- ${i}`).join('\n')}
258
-
259
- ---
260
-
261
- ## 🔧 Mean Time to Recovery (MTTR)
262
-
263
- **Current**: ${mttr.value} ${mttr.unit} (${getTierEmoji(mttr.tier)} ${mttr.tier})
264
- `;
265
- if (mttr.p50 && mttr.p90) {
266
- report += `**Percentiles**: P50 = ${mttr.p50} min, P90 = ${mttr.p90} min\n`;
267
- }
268
- report += `
269
- **Industry Benchmarks**:
270
- - 🏆 Elite: Less than 1 hour
271
- - ⭐ High: 1 hour to 1 day
272
- - 📊 Medium: 1 day to 1 week
273
- - ⚠️ Low: More than 1 week
274
-
275
- ### Insights
276
-
277
- ${generateMTTRInsights(mttr.value, mttr.tier, mttr.p50, mttr.p90).map(i => `- ${i}`).join('\n')}
278
-
279
- ---
280
-
281
- ## 📈 Recent Activity
282
-
283
- `;
284
- // Add release information if available
285
- if (releases && releases.length > 0) {
286
- report += `### Recent Releases (${releases.length} in last 30 days)\n\n`;
287
- releases.slice(0, 5).forEach((release) => {
288
- const publishedAt = new Date(release.published_at);
289
- report += `- **[${release.tag_name}](${release.html_url})** - ${formatDate(publishedAt)}\n`;
290
- if (release.name && release.name !== release.tag_name) {
291
- report += ` _${release.name}_\n`;
292
- }
293
- });
294
- if (releases.length > 5) {
295
- report += `\n_...and ${releases.length - 5} more releases_\n`;
296
- }
297
- report += '\n';
298
- }
299
- // Add incident information if available
300
- if (issues && issues.length > 0) {
301
- report += `### Production Incidents (${issues.length} tracked)\n\n`;
302
- issues.slice(0, 5).forEach((issue) => {
303
- const createdAt = new Date(issue.created_at);
304
- const closedAt = issue.closed_at ? new Date(issue.closed_at) : null;
305
- const duration = closedAt
306
- ? Math.round((closedAt.getTime() - createdAt.getTime()) / (1000 * 60))
307
- : 'ongoing';
308
- report += `- **[#${issue.number}](${issue.html_url})** ${issue.title}\n`;
309
- report += ` Created: ${formatDate(createdAt)} | `;
310
- if (typeof duration === 'number') {
311
- report += `Resolved in: ${duration} minutes\n`;
312
- }
313
- else {
314
- report += `Status: ${duration}\n`;
315
- }
316
- });
317
- if (issues.length > 5) {
318
- report += `\n_...and ${issues.length - 5} more incidents_\n`;
319
- }
320
- }
321
- else {
322
- report += `### Production Incidents
323
-
324
- ℹ️ No production incidents tracked in the last 30 days.
325
-
326
- 💡 **Tip**: Label issues with "incident" or "production-bug" to track them automatically.
327
-
328
- `;
329
- }
330
- report += `---
331
-
332
- ## 🎯 Recommended Actions
333
-
334
- `;
335
- const actions = [];
336
- // Deployment frequency actions
337
- if (deploymentFrequency.tier === 'Medium' || deploymentFrequency.tier === 'Low') {
338
- actions.push('1. **Increase Deployment Frequency**');
339
- actions.push(' - Implement automated CI/CD pipeline');
340
- actions.push(' - Use feature flags to decouple deployment from release');
341
- actions.push(' - Break down large changes into smaller increments');
342
- }
343
- // Lead time actions
344
- if (leadTime.tier === 'Medium' || leadTime.tier === 'Low') {
345
- actions.push('2. **Reduce Lead Time**');
346
- actions.push(' - Automate code review and approval processes');
347
- actions.push(' - Implement automated testing (unit, integration, E2E)');
348
- actions.push(' - Reduce manual steps in deployment pipeline');
349
- }
350
- // Change failure rate actions
351
- if (changeFailureRate.tier === 'Medium' || changeFailureRate.tier === 'Low') {
352
- actions.push('3. **Improve Change Failure Rate**');
353
- actions.push(' - Increase test coverage (target: 80%+)');
354
- actions.push(' - Implement pre-commit hooks and linting');
355
- actions.push(' - Add smoke tests and staging environment');
356
- }
357
- // MTTR actions
358
- if (mttr.tier === 'Medium' || mttr.tier === 'Low') {
359
- actions.push('4. **Reduce Mean Time to Recovery**');
360
- actions.push(' - Create incident runbooks for common issues');
361
- actions.push(' - Implement automated rollback procedures');
362
- actions.push(' - Improve monitoring and alerting');
363
- }
364
- if (actions.length === 0) {
365
- report += `✅ **Great work!** All metrics are performing well. Focus on maintaining current standards.
366
-
367
- 💡 **Continue**:
368
- - Monitor metrics regularly for trends
369
- - Share DORA metrics with team for transparency
370
- - Celebrate successes and learn from incidents
371
- `;
372
- }
373
- else {
374
- report += actions.join('\n') + '\n';
375
- }
376
- report += `
377
- ---
378
-
379
- ## 📚 Resources
380
-
381
- - **DORA Research**: [State of DevOps Report](https://cloud.google.com/devops/state-of-devops)
382
- - **Metrics Calculation**: [GitHub Workflow](https://github.com/anton-abyzov/specweave/actions/workflows/dora-metrics.yml)
383
- - **Implementation**: [SpecWeave DORA Calculator](https://github.com/anton-abyzov/specweave/tree/develop/src/metrics)
384
-
385
- ---
386
-
387
- _This report was generated automatically by SpecWeave DORA Metrics Calculator_
388
- _Last updated: ${formatDate(timestamp)}_
389
- `;
390
- return report;
391
- }
392
- /**
393
- * Write report to markdown file
394
- */
395
- export function writeReport(report, filePath) {
396
- const dir = path.dirname(filePath);
397
- if (!fs.existsSync(dir)) {
398
- fs.mkdirSync(dir, { recursive: true });
399
- }
400
- fs.writeFileSync(filePath, report, 'utf-8');
401
- console.log(`\n✅ Report written to ${filePath}`);
402
- }
403
- //# sourceMappingURL=report-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"report-generator.js","sourceRoot":"","sources":["../../../src/metrics/report-generator.ts"],"names":[],"mappings":"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"}
@@ -1,112 +0,0 @@
1
- /**
2
- * DORA Metrics Types
3
- *
4
- * TypeScript interfaces for DORA metrics calculation
5
- * Based on DevOps Research and Assessment (DORA) benchmarks
6
- *
7
- * @see https://dora.dev/
8
- */
9
- /**
10
- * DORA Performance Tier
11
- * Based on industry benchmarks from DORA research
12
- */
13
- export type DORAType = 'Elite' | 'High' | 'Medium' | 'Low' | 'N/A';
14
- /**
15
- * GitHub Release (from REST API)
16
- */
17
- export interface Release {
18
- id: number;
19
- tag_name: string;
20
- name: string;
21
- created_at: string;
22
- published_at: string;
23
- target_commitish: string;
24
- }
25
- /**
26
- * GitHub Commit (from REST API)
27
- */
28
- export interface Commit {
29
- sha: string;
30
- commit: {
31
- author: {
32
- name: string;
33
- date: string;
34
- };
35
- };
36
- }
37
- /**
38
- * GitHub Issue (from REST API)
39
- */
40
- export interface Issue {
41
- id: number;
42
- number: number;
43
- title: string;
44
- state: 'open' | 'closed';
45
- labels: Array<{
46
- name: string;
47
- }>;
48
- created_at: string;
49
- closed_at: string | null;
50
- }
51
- /**
52
- * Deployment Frequency Metric
53
- */
54
- export interface DeploymentFrequencyMetric {
55
- value: number;
56
- unit: 'deploys/month' | 'deploys/week';
57
- tier: DORAType;
58
- description: string;
59
- }
60
- /**
61
- * Lead Time for Changes Metric
62
- */
63
- export interface LeadTimeMetric {
64
- value: number;
65
- unit: 'hours' | 'days';
66
- tier: DORAType;
67
- p50: number;
68
- p90: number;
69
- }
70
- /**
71
- * Change Failure Rate Metric
72
- */
73
- export interface ChangeFailureRateMetric {
74
- value: number;
75
- unit: 'percentage';
76
- tier: DORAType;
77
- failedReleases: number;
78
- totalReleases: number;
79
- }
80
- /**
81
- * Mean Time to Recovery (MTTR) Metric
82
- */
83
- export interface MTTRMetric {
84
- value: number;
85
- unit: 'minutes' | 'hours';
86
- tier: DORAType;
87
- p50: number;
88
- p90: number;
89
- }
90
- /**
91
- * Complete DORA Metrics Output
92
- *
93
- * This is the JSON structure written to metrics/dora-latest.json
94
- */
95
- export interface DORAMetrics {
96
- timestamp: string;
97
- metrics: {
98
- deploymentFrequency: DeploymentFrequencyMetric;
99
- leadTime: LeadTimeMetric;
100
- changeFailureRate: ChangeFailureRateMetric;
101
- mttr: MTTRMetric;
102
- };
103
- }
104
- /**
105
- * GitHub API Client Configuration
106
- */
107
- export interface GitHubConfig {
108
- token: string;
109
- owner: string;
110
- repo: string;
111
- }
112
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/metrics/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,GAAG,cAAc,CAAC;IACvC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,mBAAmB,EAAE,yBAAyB,CAAC;QAC/C,QAAQ,EAAE,cAAc,CAAC;QACzB,iBAAiB,EAAE,uBAAuB,CAAC;QAC3C,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -1,10 +0,0 @@
1
- /**
2
- * DORA Metrics Types
3
- *
4
- * TypeScript interfaces for DORA metrics calculation
5
- * Based on DevOps Research and Assessment (DORA) benchmarks
6
- *
7
- * @see https://dora.dev/
8
- */
9
- export {};
10
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/metrics/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Percentile Calculator
3
- *
4
- * Calculates Pth percentile of a dataset using linear interpolation
5
- * Used for P50 (median) and P90 calculations in DORA metrics
6
- */
7
- /**
8
- * Calculate percentile value from array of numbers
9
- *
10
- * Uses linear interpolation method:
11
- * 1. Sort values ascending
12
- * 2. Calculate index: (P/100) * (n-1)
13
- * 3. If index is integer, return value at that index
14
- * 4. If index is fractional, interpolate between adjacent values
15
- *
16
- * @param values - Array of numeric values
17
- * @param percentile - Percentile to calculate (0-100)
18
- * @returns Percentile value
19
- *
20
- * @example
21
- * calculatePercentile([1, 2, 3, 4, 5], 50) // Returns 3 (median)
22
- * calculatePercentile([1, 2, 3, 4, 5], 90) // Returns 4.6 (P90)
23
- */
24
- export declare function calculatePercentile(values: number[], percentile: number): number;
25
- //# sourceMappingURL=percentile.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"percentile.d.ts","sourceRoot":"","sources":["../../../../src/metrics/utils/percentile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CA0BhF"}
@@ -1,46 +0,0 @@
1
- /**
2
- * Percentile Calculator
3
- *
4
- * Calculates Pth percentile of a dataset using linear interpolation
5
- * Used for P50 (median) and P90 calculations in DORA metrics
6
- */
7
- /**
8
- * Calculate percentile value from array of numbers
9
- *
10
- * Uses linear interpolation method:
11
- * 1. Sort values ascending
12
- * 2. Calculate index: (P/100) * (n-1)
13
- * 3. If index is integer, return value at that index
14
- * 4. If index is fractional, interpolate between adjacent values
15
- *
16
- * @param values - Array of numeric values
17
- * @param percentile - Percentile to calculate (0-100)
18
- * @returns Percentile value
19
- *
20
- * @example
21
- * calculatePercentile([1, 2, 3, 4, 5], 50) // Returns 3 (median)
22
- * calculatePercentile([1, 2, 3, 4, 5], 90) // Returns 4.6 (P90)
23
- */
24
- export function calculatePercentile(values, percentile) {
25
- if (values.length === 0)
26
- return 0;
27
- if (percentile < 0 || percentile > 100) {
28
- throw new Error('Percentile must be between 0 and 100');
29
- }
30
- // Sort values ascending
31
- const sorted = [...values].sort((a, b) => a - b);
32
- // Calculate index
33
- const index = (percentile / 100) * (sorted.length - 1);
34
- // If index is integer, return exact value
35
- if (Number.isInteger(index)) {
36
- return sorted[index];
37
- }
38
- // Otherwise, interpolate between adjacent values
39
- const lowerIndex = Math.floor(index);
40
- const upperIndex = Math.ceil(index);
41
- const fraction = index - lowerIndex;
42
- const lowerValue = sorted[lowerIndex];
43
- const upperValue = sorted[upperIndex];
44
- return lowerValue + (upperValue - lowerValue) * fraction;
45
- }
46
- //# sourceMappingURL=percentile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"percentile.js","sourceRoot":"","sources":["../../../../src/metrics/utils/percentile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAgB,EAAE,UAAkB;IACtE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,wBAAwB;IACxB,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjD,kBAAkB;IAClB,MAAM,KAAK,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEvD,0CAA0C;IAC1C,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,iDAAiD;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC;IAEpC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAEtC,OAAO,UAAU,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,QAAQ,CAAC;AAC3D,CAAC"}