specweave 0.10.1 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/CLAUDE.md +184 -288
  3. package/README.md +48 -21
  4. package/dist/cli/commands/init.d.ts.map +1 -1
  5. package/dist/cli/commands/init.js +75 -113
  6. package/dist/cli/commands/init.js.map +1 -1
  7. package/dist/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  8. package/dist/cli/helpers/issue-tracker/index.js +39 -0
  9. package/dist/cli/helpers/issue-tracker/index.js.map +1 -1
  10. package/dist/cli/helpers/issue-tracker/jira.d.ts.map +1 -1
  11. package/dist/cli/helpers/issue-tracker/jira.js +2 -9
  12. package/dist/cli/helpers/issue-tracker/jira.js.map +1 -1
  13. package/dist/hooks/lib/git-diff-analyzer.d.ts +89 -0
  14. package/dist/hooks/lib/git-diff-analyzer.d.ts.map +1 -0
  15. package/dist/hooks/lib/git-diff-analyzer.js +226 -0
  16. package/dist/hooks/lib/git-diff-analyzer.js.map +1 -0
  17. package/dist/hooks/lib/prepare-reflection-context.d.ts +42 -0
  18. package/dist/hooks/lib/prepare-reflection-context.d.ts.map +1 -0
  19. package/dist/hooks/lib/prepare-reflection-context.js +123 -0
  20. package/dist/hooks/lib/prepare-reflection-context.js.map +1 -0
  21. package/dist/hooks/lib/reflection-config-loader.d.ts +45 -0
  22. package/dist/hooks/lib/reflection-config-loader.d.ts.map +1 -0
  23. package/dist/hooks/lib/reflection-config-loader.js +132 -0
  24. package/dist/hooks/lib/reflection-config-loader.js.map +1 -0
  25. package/dist/hooks/lib/reflection-parser.d.ts +33 -0
  26. package/dist/hooks/lib/reflection-parser.d.ts.map +1 -0
  27. package/dist/hooks/lib/reflection-parser.js +419 -0
  28. package/dist/hooks/lib/reflection-parser.js.map +1 -0
  29. package/dist/hooks/lib/reflection-prompt-builder.d.ts +56 -0
  30. package/dist/hooks/lib/reflection-prompt-builder.d.ts.map +1 -0
  31. package/dist/hooks/lib/reflection-prompt-builder.js +239 -0
  32. package/dist/hooks/lib/reflection-prompt-builder.js.map +1 -0
  33. package/dist/hooks/lib/reflection-storage.d.ts +64 -0
  34. package/dist/hooks/lib/reflection-storage.d.ts.map +1 -0
  35. package/dist/hooks/lib/reflection-storage.js +305 -0
  36. package/dist/hooks/lib/reflection-storage.js.map +1 -0
  37. package/dist/hooks/lib/run-self-reflection.d.ts +43 -0
  38. package/dist/hooks/lib/run-self-reflection.d.ts.map +1 -0
  39. package/dist/hooks/lib/run-self-reflection.js +203 -0
  40. package/dist/hooks/lib/run-self-reflection.js.map +1 -0
  41. package/dist/hooks/lib/types/reflection-types.d.ts +164 -0
  42. package/dist/hooks/lib/types/reflection-types.d.ts.map +1 -0
  43. package/dist/hooks/lib/types/reflection-types.js +73 -0
  44. package/dist/hooks/lib/types/reflection-types.js.map +1 -0
  45. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts +89 -0
  46. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.map +1 -0
  47. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js +226 -0
  48. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js.map +1 -0
  49. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts +60 -0
  50. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.map +1 -0
  51. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js +201 -0
  52. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js.map +1 -0
  53. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts +42 -0
  54. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.map +1 -0
  55. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js +123 -0
  56. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js.map +1 -0
  57. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts +45 -0
  58. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.map +1 -0
  59. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js +132 -0
  60. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js.map +1 -0
  61. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts +33 -0
  62. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts.map +1 -0
  63. package/dist/plugins/specweave/lib/hooks/reflection-parser.js +419 -0
  64. package/dist/plugins/specweave/lib/hooks/reflection-parser.js.map +1 -0
  65. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts +56 -0
  66. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.map +1 -0
  67. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js +239 -0
  68. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js.map +1 -0
  69. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts +64 -0
  70. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts.map +1 -0
  71. package/dist/plugins/specweave/lib/hooks/reflection-storage.js +305 -0
  72. package/dist/plugins/specweave/lib/hooks/reflection-storage.js.map +1 -0
  73. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts +43 -0
  74. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts.map +1 -0
  75. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js +203 -0
  76. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js.map +1 -0
  77. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts +27 -0
  78. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +1 -0
  79. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +116 -0
  80. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +1 -0
  81. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts +59 -0
  82. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts.map +1 -0
  83. package/dist/plugins/specweave/lib/hooks/translate-file.js +350 -0
  84. package/dist/plugins/specweave/lib/hooks/translate-file.js.map +1 -0
  85. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts +13 -0
  86. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts.map +1 -0
  87. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js +175 -0
  88. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js.map +1 -0
  89. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts +164 -0
  90. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts.map +1 -0
  91. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js +73 -0
  92. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js.map +1 -0
  93. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts +29 -0
  94. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts.map +1 -0
  95. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js +203 -0
  96. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js.map +1 -0
  97. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts +94 -0
  98. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +1 -0
  99. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +219 -0
  100. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +1 -0
  101. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts +124 -0
  102. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts.map +1 -0
  103. package/dist/plugins/specweave-ado/lib/ado-client-v2.js +382 -0
  104. package/dist/plugins/specweave-ado/lib/ado-client-v2.js.map +1 -0
  105. package/dist/plugins/specweave-ado/lib/ado-client.d.ts +112 -0
  106. package/dist/plugins/specweave-ado/lib/ado-client.d.ts.map +1 -0
  107. package/dist/plugins/specweave-ado/lib/ado-client.js +257 -0
  108. package/dist/plugins/specweave-ado/lib/ado-client.js.map +1 -0
  109. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts +40 -0
  110. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts.map +1 -0
  111. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js +370 -0
  112. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js.map +1 -0
  113. package/dist/plugins/specweave-ado/lib/project-selector.d.ts +42 -0
  114. package/dist/plugins/specweave-ado/lib/project-selector.d.ts.map +1 -0
  115. package/dist/plugins/specweave-ado/lib/project-selector.js +211 -0
  116. package/dist/plugins/specweave-ado/lib/project-selector.js.map +1 -0
  117. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts +54 -0
  118. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts.map +1 -0
  119. package/dist/plugins/specweave-github/lib/github-board-resolver.js +122 -0
  120. package/dist/plugins/specweave-github/lib/github-board-resolver.js.map +1 -0
  121. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +104 -0
  122. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +1 -0
  123. package/dist/plugins/specweave-github/lib/github-client-v2.js +408 -0
  124. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -0
  125. package/dist/plugins/specweave-github/lib/github-client.d.ts +10 -0
  126. package/dist/plugins/specweave-github/lib/github-client.d.ts.map +1 -1
  127. package/dist/plugins/specweave-github/lib/github-client.js +24 -0
  128. package/dist/plugins/specweave-github/lib/github-client.js.map +1 -1
  129. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts +29 -0
  130. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts.map +1 -0
  131. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js +268 -0
  132. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js.map +1 -0
  133. package/dist/plugins/specweave-github/lib/index.d.ts.map +1 -1
  134. package/dist/plugins/specweave-github/lib/index.js.map +1 -1
  135. package/dist/plugins/specweave-github/lib/repo-selector.d.ts +49 -0
  136. package/dist/plugins/specweave-github/lib/repo-selector.d.ts.map +1 -0
  137. package/dist/plugins/specweave-github/lib/repo-selector.js +216 -0
  138. package/dist/plugins/specweave-github/lib/repo-selector.js.map +1 -0
  139. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts.map +1 -1
  140. package/dist/plugins/specweave-github/lib/subtask-sync.js.map +1 -1
  141. package/dist/plugins/specweave-github/lib/task-parser.d.ts.map +1 -1
  142. package/dist/plugins/specweave-github/lib/task-parser.js.map +1 -1
  143. package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +1 -1
  144. package/dist/plugins/specweave-github/lib/task-sync.js.map +1 -1
  145. package/dist/plugins/specweave-github/lib/types.d.ts.map +1 -1
  146. package/dist/plugins/specweave-github/lib/types.js.map +1 -1
  147. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +50 -0
  148. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +1 -0
  149. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +84 -0
  150. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +1 -0
  151. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts +33 -0
  152. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts.map +1 -0
  153. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js +206 -0
  154. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js.map +1 -0
  155. package/dist/plugins/specweave-jira/lib/project-selector.d.ts +42 -0
  156. package/dist/plugins/specweave-jira/lib/project-selector.d.ts.map +1 -0
  157. package/dist/plugins/specweave-jira/lib/project-selector.js +216 -0
  158. package/dist/plugins/specweave-jira/lib/project-selector.js.map +1 -0
  159. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts +67 -0
  160. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts.map +1 -0
  161. package/dist/plugins/specweave-jira/lib/reorganization-detector.js +252 -0
  162. package/dist/plugins/specweave-jira/lib/reorganization-detector.js.map +1 -0
  163. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts +29 -0
  164. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts.map +1 -0
  165. package/dist/plugins/specweave-jira/lib/setup-wizard.js +219 -0
  166. package/dist/plugins/specweave-jira/lib/setup-wizard.js.map +1 -0
  167. package/dist/src/adapters/adapter-base.d.ts +71 -0
  168. package/dist/src/adapters/adapter-base.d.ts.map +1 -0
  169. package/dist/src/adapters/adapter-base.js +139 -0
  170. package/dist/src/adapters/adapter-base.js.map +1 -0
  171. package/dist/src/adapters/adapter-interface.d.ts +149 -0
  172. package/dist/src/adapters/adapter-interface.d.ts.map +1 -0
  173. package/dist/src/adapters/adapter-interface.js +8 -0
  174. package/dist/src/adapters/adapter-interface.js.map +1 -0
  175. package/dist/src/adapters/adapter-loader.d.ts +91 -0
  176. package/dist/src/adapters/adapter-loader.d.ts.map +1 -0
  177. package/dist/src/adapters/adapter-loader.js +238 -0
  178. package/dist/src/adapters/adapter-loader.js.map +1 -0
  179. package/dist/src/adapters/agents-md-generator.d.ts +48 -0
  180. package/dist/src/adapters/agents-md-generator.d.ts.map +1 -0
  181. package/dist/src/adapters/agents-md-generator.js +193 -0
  182. package/dist/src/adapters/agents-md-generator.js.map +1 -0
  183. package/dist/src/adapters/claude/adapter.d.ts +128 -0
  184. package/dist/src/adapters/claude/adapter.d.ts.map +1 -0
  185. package/dist/src/adapters/claude/adapter.js +415 -0
  186. package/dist/src/adapters/claude/adapter.js.map +1 -0
  187. package/dist/src/adapters/claude-md-generator.d.ts +78 -0
  188. package/dist/src/adapters/claude-md-generator.d.ts.map +1 -0
  189. package/dist/src/adapters/claude-md-generator.js +307 -0
  190. package/dist/src/adapters/claude-md-generator.js.map +1 -0
  191. package/dist/src/adapters/codex/adapter.d.ts +50 -0
  192. package/dist/src/adapters/codex/adapter.d.ts.map +1 -0
  193. package/dist/src/adapters/codex/adapter.js +316 -0
  194. package/dist/src/adapters/codex/adapter.js.map +1 -0
  195. package/dist/src/adapters/cursor/adapter.d.ts +98 -0
  196. package/dist/src/adapters/cursor/adapter.d.ts.map +1 -0
  197. package/dist/src/adapters/cursor/adapter.js +406 -0
  198. package/dist/src/adapters/cursor/adapter.js.map +1 -0
  199. package/dist/src/adapters/doc-generator.d.ts +69 -0
  200. package/dist/src/adapters/doc-generator.d.ts.map +1 -0
  201. package/dist/src/adapters/doc-generator.js +247 -0
  202. package/dist/src/adapters/doc-generator.js.map +1 -0
  203. package/dist/src/adapters/gemini/adapter.d.ts +50 -0
  204. package/dist/src/adapters/gemini/adapter.d.ts.map +1 -0
  205. package/dist/src/adapters/gemini/adapter.js +281 -0
  206. package/dist/src/adapters/gemini/adapter.js.map +1 -0
  207. package/dist/src/adapters/generic/adapter.d.ts +86 -0
  208. package/dist/src/adapters/generic/adapter.d.ts.map +1 -0
  209. package/dist/src/adapters/generic/adapter.js +338 -0
  210. package/dist/src/adapters/generic/adapter.js.map +1 -0
  211. package/dist/src/cli/commands/abandon.d.ts +13 -0
  212. package/dist/src/cli/commands/abandon.d.ts.map +1 -0
  213. package/dist/src/cli/commands/abandon.js +15 -0
  214. package/dist/src/cli/commands/abandon.js.map +1 -0
  215. package/dist/src/cli/commands/import-docs.d.ts +21 -0
  216. package/dist/src/cli/commands/import-docs.d.ts.map +1 -0
  217. package/dist/src/cli/commands/import-docs.js +146 -0
  218. package/dist/src/cli/commands/import-docs.js.map +1 -0
  219. package/dist/src/cli/commands/init-multiproject.d.ts +11 -0
  220. package/dist/src/cli/commands/init-multiproject.d.ts.map +1 -0
  221. package/dist/src/cli/commands/init-multiproject.js +202 -0
  222. package/dist/src/cli/commands/init-multiproject.js.map +1 -0
  223. package/dist/src/cli/commands/init.d.ts +9 -0
  224. package/dist/src/cli/commands/init.d.ts.map +1 -0
  225. package/dist/src/cli/commands/init.js +1205 -0
  226. package/dist/src/cli/commands/init.js.map +1 -0
  227. package/dist/src/cli/commands/install.d.ts +9 -0
  228. package/dist/src/cli/commands/install.d.ts.map +1 -0
  229. package/dist/src/cli/commands/install.js +127 -0
  230. package/dist/src/cli/commands/install.js.map +1 -0
  231. package/dist/src/cli/commands/list.d.ts +8 -0
  232. package/dist/src/cli/commands/list.d.ts.map +1 -0
  233. package/dist/src/cli/commands/list.js +119 -0
  234. package/dist/src/cli/commands/list.js.map +1 -0
  235. package/dist/src/cli/commands/migrate-to-multiproject.d.ts +37 -0
  236. package/dist/src/cli/commands/migrate-to-multiproject.d.ts.map +1 -0
  237. package/dist/src/cli/commands/migrate-to-multiproject.js +189 -0
  238. package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -0
  239. package/dist/src/cli/commands/migrate-to-profiles.d.ts +25 -0
  240. package/dist/src/cli/commands/migrate-to-profiles.d.ts.map +1 -0
  241. package/dist/src/cli/commands/migrate-to-profiles.js +350 -0
  242. package/dist/src/cli/commands/migrate-to-profiles.js.map +1 -0
  243. package/dist/src/cli/commands/pause.d.ts +13 -0
  244. package/dist/src/cli/commands/pause.d.ts.map +1 -0
  245. package/dist/src/cli/commands/pause.js +15 -0
  246. package/dist/src/cli/commands/pause.js.map +1 -0
  247. package/dist/src/cli/commands/qa.d.ts +54 -0
  248. package/dist/src/cli/commands/qa.d.ts.map +1 -0
  249. package/dist/src/cli/commands/qa.js +98 -0
  250. package/dist/src/cli/commands/qa.js.map +1 -0
  251. package/dist/src/cli/commands/resume.d.ts +12 -0
  252. package/dist/src/cli/commands/resume.d.ts.map +1 -0
  253. package/dist/src/cli/commands/resume.js +14 -0
  254. package/dist/src/cli/commands/resume.js.map +1 -0
  255. package/dist/src/cli/commands/status.d.ts +12 -0
  256. package/dist/src/cli/commands/status.d.ts.map +1 -0
  257. package/dist/src/cli/commands/status.js +23 -0
  258. package/dist/src/cli/commands/status.js.map +1 -0
  259. package/dist/src/cli/commands/switch-project.d.ts +13 -0
  260. package/dist/src/cli/commands/switch-project.d.ts.map +1 -0
  261. package/dist/src/cli/commands/switch-project.js +91 -0
  262. package/dist/src/cli/commands/switch-project.js.map +1 -0
  263. package/dist/src/cli/commands/validate-jira.d.ts +35 -0
  264. package/dist/src/cli/commands/validate-jira.d.ts.map +1 -0
  265. package/dist/src/cli/commands/validate-jira.js +112 -0
  266. package/dist/src/cli/commands/validate-jira.js.map +1 -0
  267. package/dist/src/cli/commands/validate-plugins.d.ts +41 -0
  268. package/dist/src/cli/commands/validate-plugins.d.ts.map +1 -0
  269. package/dist/src/cli/commands/validate-plugins.js +171 -0
  270. package/dist/src/cli/commands/validate-plugins.js.map +1 -0
  271. package/dist/src/cli/helpers/issue-tracker/ado.d.ts +57 -0
  272. package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +1 -0
  273. package/dist/src/cli/helpers/issue-tracker/ado.js +243 -0
  274. package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -0
  275. package/dist/src/cli/helpers/issue-tracker/github.d.ts +65 -0
  276. package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +1 -0
  277. package/dist/src/cli/helpers/issue-tracker/github.js +426 -0
  278. package/dist/src/cli/helpers/issue-tracker/github.js.map +1 -0
  279. package/dist/src/cli/helpers/issue-tracker/index.d.ts +22 -0
  280. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -0
  281. package/dist/src/cli/helpers/issue-tracker/index.js +314 -0
  282. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -0
  283. package/dist/src/cli/helpers/issue-tracker/jira.d.ts +61 -0
  284. package/dist/src/cli/helpers/issue-tracker/jira.d.ts.map +1 -0
  285. package/dist/src/cli/helpers/issue-tracker/jira.js +404 -0
  286. package/dist/src/cli/helpers/issue-tracker/jira.js.map +1 -0
  287. package/dist/src/cli/helpers/issue-tracker/types.d.ts +107 -0
  288. package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +1 -0
  289. package/dist/src/cli/helpers/issue-tracker/types.js +16 -0
  290. package/dist/src/cli/helpers/issue-tracker/types.js.map +1 -0
  291. package/dist/src/cli/helpers/issue-tracker/utils.d.ts +112 -0
  292. package/dist/src/cli/helpers/issue-tracker/utils.d.ts.map +1 -0
  293. package/dist/src/cli/helpers/issue-tracker/utils.js +247 -0
  294. package/dist/src/cli/helpers/issue-tracker/utils.js.map +1 -0
  295. package/dist/src/core/agent-model-manager.d.ts +52 -0
  296. package/dist/src/core/agent-model-manager.d.ts.map +1 -0
  297. package/dist/src/core/agent-model-manager.js +120 -0
  298. package/dist/src/core/agent-model-manager.js.map +1 -0
  299. package/dist/src/core/brownfield/analyzer.d.ts +86 -0
  300. package/dist/src/core/brownfield/analyzer.d.ts.map +1 -0
  301. package/dist/src/core/brownfield/analyzer.js +365 -0
  302. package/dist/src/core/brownfield/analyzer.js.map +1 -0
  303. package/dist/src/core/brownfield/importer.d.ts +76 -0
  304. package/dist/src/core/brownfield/importer.d.ts.map +1 -0
  305. package/dist/src/core/brownfield/importer.js +287 -0
  306. package/dist/src/core/brownfield/importer.js.map +1 -0
  307. package/dist/src/core/config-manager.d.ts +47 -0
  308. package/dist/src/core/config-manager.d.ts.map +1 -0
  309. package/dist/src/core/config-manager.js +136 -0
  310. package/dist/src/core/config-manager.js.map +1 -0
  311. package/dist/src/core/cost-tracker.d.ts +108 -0
  312. package/dist/src/core/cost-tracker.d.ts.map +1 -0
  313. package/dist/src/core/cost-tracker.js +281 -0
  314. package/dist/src/core/cost-tracker.js.map +1 -0
  315. package/dist/src/core/credentials-manager.d.ts +107 -0
  316. package/dist/src/core/credentials-manager.d.ts.map +1 -0
  317. package/dist/src/core/credentials-manager.js +457 -0
  318. package/dist/src/core/credentials-manager.js.map +1 -0
  319. package/dist/src/core/i18n/language-detector.d.ts +29 -0
  320. package/dist/src/core/i18n/language-detector.d.ts.map +1 -0
  321. package/dist/src/core/i18n/language-detector.js +143 -0
  322. package/dist/src/core/i18n/language-detector.js.map +1 -0
  323. package/dist/src/core/i18n/language-manager.d.ts +101 -0
  324. package/dist/src/core/i18n/language-manager.d.ts.map +1 -0
  325. package/dist/src/core/i18n/language-manager.js +232 -0
  326. package/dist/src/core/i18n/language-manager.js.map +1 -0
  327. package/dist/src/core/i18n/language-registry.d.ts +44 -0
  328. package/dist/src/core/i18n/language-registry.d.ts.map +1 -0
  329. package/dist/src/core/i18n/language-registry.js +234 -0
  330. package/dist/src/core/i18n/language-registry.js.map +1 -0
  331. package/dist/src/core/i18n/locale-manager.d.ts +62 -0
  332. package/dist/src/core/i18n/locale-manager.d.ts.map +1 -0
  333. package/dist/src/core/i18n/locale-manager.js +137 -0
  334. package/dist/src/core/i18n/locale-manager.js.map +1 -0
  335. package/dist/src/core/i18n/system-prompt-injector.d.ts +33 -0
  336. package/dist/src/core/i18n/system-prompt-injector.d.ts.map +1 -0
  337. package/dist/src/core/i18n/system-prompt-injector.js +131 -0
  338. package/dist/src/core/i18n/system-prompt-injector.js.map +1 -0
  339. package/dist/src/core/i18n/types.d.ts +151 -0
  340. package/dist/src/core/i18n/types.d.ts.map +1 -0
  341. package/dist/src/core/i18n/types.js +11 -0
  342. package/dist/src/core/i18n/types.js.map +1 -0
  343. package/dist/src/core/increment/limits.d.ts +68 -0
  344. package/dist/src/core/increment/limits.d.ts.map +1 -0
  345. package/dist/src/core/increment/limits.js +224 -0
  346. package/dist/src/core/increment/limits.js.map +1 -0
  347. package/dist/src/core/increment/metadata-manager.d.ts +114 -0
  348. package/dist/src/core/increment/metadata-manager.d.ts.map +1 -0
  349. package/dist/src/core/increment/metadata-manager.js +320 -0
  350. package/dist/src/core/increment/metadata-manager.js.map +1 -0
  351. package/dist/src/core/increment/status-commands.d.ts +43 -0
  352. package/dist/src/core/increment/status-commands.d.ts.map +1 -0
  353. package/dist/src/core/increment/status-commands.js +277 -0
  354. package/dist/src/core/increment/status-commands.js.map +1 -0
  355. package/dist/src/core/increment-status.d.ts +72 -0
  356. package/dist/src/core/increment-status.d.ts.map +1 -0
  357. package/dist/src/core/increment-status.js +227 -0
  358. package/dist/src/core/increment-status.js.map +1 -0
  359. package/dist/src/core/model-selector.d.ts +57 -0
  360. package/dist/src/core/model-selector.d.ts.map +1 -0
  361. package/dist/src/core/model-selector.js +115 -0
  362. package/dist/src/core/model-selector.js.map +1 -0
  363. package/dist/src/core/phase-detector.d.ts +62 -0
  364. package/dist/src/core/phase-detector.d.ts.map +1 -0
  365. package/dist/src/core/phase-detector.js +229 -0
  366. package/dist/src/core/phase-detector.js.map +1 -0
  367. package/dist/src/core/plugin-loader.d.ts +131 -0
  368. package/dist/src/core/plugin-loader.d.ts.map +1 -0
  369. package/dist/src/core/plugin-loader.js +421 -0
  370. package/dist/src/core/plugin-loader.js.map +1 -0
  371. package/dist/src/core/project-manager.d.ts +127 -0
  372. package/dist/src/core/project-manager.d.ts.map +1 -0
  373. package/dist/src/core/project-manager.js +524 -0
  374. package/dist/src/core/project-manager.js.map +1 -0
  375. package/dist/src/core/project-structure-detector.d.ts +92 -0
  376. package/dist/src/core/project-structure-detector.d.ts.map +1 -0
  377. package/dist/src/core/project-structure-detector.js +289 -0
  378. package/dist/src/core/project-structure-detector.js.map +1 -0
  379. package/dist/src/core/qa/qa-runner.d.ts +16 -0
  380. package/dist/src/core/qa/qa-runner.d.ts.map +1 -0
  381. package/dist/src/core/qa/qa-runner.js +404 -0
  382. package/dist/src/core/qa/qa-runner.js.map +1 -0
  383. package/dist/src/core/qa/quality-gate-decider.d.ts +53 -0
  384. package/dist/src/core/qa/quality-gate-decider.d.ts.map +1 -0
  385. package/dist/src/core/qa/quality-gate-decider.js +268 -0
  386. package/dist/src/core/qa/quality-gate-decider.js.map +1 -0
  387. package/dist/src/core/qa/risk-calculator.d.ts +126 -0
  388. package/dist/src/core/qa/risk-calculator.d.ts.map +1 -0
  389. package/dist/src/core/qa/risk-calculator.js +247 -0
  390. package/dist/src/core/qa/risk-calculator.js.map +1 -0
  391. package/dist/src/core/qa/types.d.ts +315 -0
  392. package/dist/src/core/qa/types.d.ts.map +1 -0
  393. package/dist/src/core/qa/types.js +8 -0
  394. package/dist/src/core/qa/types.js.map +1 -0
  395. package/dist/src/core/rfc-generator-v2.d.ts +149 -0
  396. package/dist/src/core/rfc-generator-v2.d.ts.map +1 -0
  397. package/dist/src/core/rfc-generator-v2.js +399 -0
  398. package/dist/src/core/rfc-generator-v2.js.map +1 -0
  399. package/dist/src/core/sync/bidirectional-engine.d.ts +110 -0
  400. package/dist/src/core/sync/bidirectional-engine.d.ts.map +1 -0
  401. package/dist/src/core/sync/bidirectional-engine.js +356 -0
  402. package/dist/src/core/sync/bidirectional-engine.js.map +1 -0
  403. package/dist/src/core/sync/folder-mapper.d.ts +71 -0
  404. package/dist/src/core/sync/folder-mapper.d.ts.map +1 -0
  405. package/dist/src/core/sync/folder-mapper.js +168 -0
  406. package/dist/src/core/sync/folder-mapper.js.map +1 -0
  407. package/dist/src/core/sync/profile-manager.d.ts +72 -0
  408. package/dist/src/core/sync/profile-manager.d.ts.map +1 -0
  409. package/dist/src/core/sync/profile-manager.js +338 -0
  410. package/dist/src/core/sync/profile-manager.js.map +1 -0
  411. package/dist/src/core/sync/profile-selector.d.ts +52 -0
  412. package/dist/src/core/sync/profile-selector.d.ts.map +1 -0
  413. package/dist/src/core/sync/profile-selector.js +179 -0
  414. package/dist/src/core/sync/profile-selector.js.map +1 -0
  415. package/dist/src/core/sync/profile-validator.d.ts +52 -0
  416. package/dist/src/core/sync/profile-validator.d.ts.map +1 -0
  417. package/dist/src/core/sync/profile-validator.js +225 -0
  418. package/dist/src/core/sync/profile-validator.js.map +1 -0
  419. package/dist/src/core/sync/project-context.d.ts +81 -0
  420. package/dist/src/core/sync/project-context.d.ts.map +1 -0
  421. package/dist/src/core/sync/project-context.js +354 -0
  422. package/dist/src/core/sync/project-context.js.map +1 -0
  423. package/dist/src/core/sync/rate-limiter.d.ts +116 -0
  424. package/dist/src/core/sync/rate-limiter.d.ts.map +1 -0
  425. package/dist/src/core/sync/rate-limiter.js +308 -0
  426. package/dist/src/core/sync/rate-limiter.js.map +1 -0
  427. package/dist/src/core/sync/time-range-selector.d.ts +48 -0
  428. package/dist/src/core/sync/time-range-selector.d.ts.map +1 -0
  429. package/dist/src/core/sync/time-range-selector.js +224 -0
  430. package/dist/src/core/sync/time-range-selector.js.map +1 -0
  431. package/dist/src/core/types/config.d.ts +90 -0
  432. package/dist/src/core/types/config.d.ts.map +1 -0
  433. package/dist/src/core/types/config.js +37 -0
  434. package/dist/src/core/types/config.js.map +1 -0
  435. package/dist/src/core/types/increment-metadata.d.ts +120 -0
  436. package/dist/src/core/types/increment-metadata.d.ts.map +1 -0
  437. package/dist/src/core/types/increment-metadata.js +138 -0
  438. package/dist/src/core/types/increment-metadata.js.map +1 -0
  439. package/dist/src/core/types/plugin.d.ts +283 -0
  440. package/dist/src/core/types/plugin.d.ts.map +1 -0
  441. package/dist/src/core/types/plugin.js +49 -0
  442. package/dist/src/core/types/plugin.js.map +1 -0
  443. package/dist/src/core/types/sync-profile.d.ts +403 -0
  444. package/dist/src/core/types/sync-profile.d.ts.map +1 -0
  445. package/dist/src/core/types/sync-profile.js +55 -0
  446. package/dist/src/core/types/sync-profile.js.map +1 -0
  447. package/dist/src/hooks/lib/types/reflection-types.d.ts +125 -0
  448. package/dist/src/hooks/lib/types/reflection-types.d.ts.map +1 -0
  449. package/dist/src/hooks/lib/types/reflection-types.js +54 -0
  450. package/dist/src/hooks/lib/types/reflection-types.js.map +1 -0
  451. package/dist/src/integrations/ado/ado-client.d.ts +127 -0
  452. package/dist/src/integrations/ado/ado-client.d.ts.map +1 -0
  453. package/dist/src/integrations/ado/ado-client.js +416 -0
  454. package/dist/src/integrations/ado/ado-client.js.map +1 -0
  455. package/dist/src/integrations/jira/jira-client.d.ts +139 -0
  456. package/dist/src/integrations/jira/jira-client.d.ts.map +1 -0
  457. package/dist/src/integrations/jira/jira-client.js +386 -0
  458. package/dist/src/integrations/jira/jira-client.js.map +1 -0
  459. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +75 -0
  460. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -0
  461. package/dist/src/integrations/jira/jira-incremental-mapper.js +474 -0
  462. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -0
  463. package/dist/src/integrations/jira/jira-mapper.d.ts +105 -0
  464. package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -0
  465. package/dist/src/integrations/jira/jira-mapper.js +494 -0
  466. package/dist/src/integrations/jira/jira-mapper.js.map +1 -0
  467. package/dist/src/metrics/calculators/change-failure-rate.d.ts +22 -0
  468. package/dist/src/metrics/calculators/change-failure-rate.d.ts.map +1 -0
  469. package/dist/src/metrics/calculators/change-failure-rate.js +70 -0
  470. package/dist/src/metrics/calculators/change-failure-rate.js.map +1 -0
  471. package/dist/src/metrics/calculators/deployment-frequency.d.ts +20 -0
  472. package/dist/src/metrics/calculators/deployment-frequency.d.ts.map +1 -0
  473. package/dist/src/metrics/calculators/deployment-frequency.js +61 -0
  474. package/dist/src/metrics/calculators/deployment-frequency.js.map +1 -0
  475. package/dist/src/metrics/calculators/lead-time.d.ts +22 -0
  476. package/dist/src/metrics/calculators/lead-time.d.ts.map +1 -0
  477. package/dist/src/metrics/calculators/lead-time.js +82 -0
  478. package/dist/src/metrics/calculators/lead-time.js.map +1 -0
  479. package/dist/src/metrics/calculators/mttr.d.ts +21 -0
  480. package/dist/src/metrics/calculators/mttr.d.ts.map +1 -0
  481. package/dist/src/metrics/calculators/mttr.js +60 -0
  482. package/dist/src/metrics/calculators/mttr.js.map +1 -0
  483. package/dist/src/metrics/dora-calculator.d.ts +28 -0
  484. package/dist/src/metrics/dora-calculator.d.ts.map +1 -0
  485. package/dist/src/metrics/dora-calculator.js +117 -0
  486. package/dist/src/metrics/dora-calculator.js.map +1 -0
  487. package/dist/src/metrics/github-client.d.ts +51 -0
  488. package/dist/src/metrics/github-client.d.ts.map +1 -0
  489. package/dist/src/metrics/github-client.js +133 -0
  490. package/dist/src/metrics/github-client.js.map +1 -0
  491. package/dist/src/metrics/report-generator.d.ts +17 -0
  492. package/dist/src/metrics/report-generator.d.ts.map +1 -0
  493. package/dist/src/metrics/report-generator.js +403 -0
  494. package/dist/src/metrics/report-generator.js.map +1 -0
  495. package/dist/src/metrics/types.d.ts +112 -0
  496. package/dist/src/metrics/types.d.ts.map +1 -0
  497. package/dist/src/metrics/types.js +10 -0
  498. package/dist/src/metrics/types.js.map +1 -0
  499. package/dist/src/metrics/utils/percentile.d.ts +25 -0
  500. package/dist/src/metrics/utils/percentile.d.ts.map +1 -0
  501. package/dist/src/metrics/utils/percentile.js +46 -0
  502. package/dist/src/metrics/utils/percentile.js.map +1 -0
  503. package/dist/src/metrics/utils/tier-classifier.d.ts +61 -0
  504. package/dist/src/metrics/utils/tier-classifier.d.ts.map +1 -0
  505. package/dist/src/metrics/utils/tier-classifier.js +100 -0
  506. package/dist/src/metrics/utils/tier-classifier.js.map +1 -0
  507. package/dist/src/testing/test-generator.d.ts +117 -0
  508. package/dist/src/testing/test-generator.d.ts.map +1 -0
  509. package/dist/src/testing/test-generator.js +370 -0
  510. package/dist/src/testing/test-generator.js.map +1 -0
  511. package/dist/src/types/cost-tracking.d.ts +43 -0
  512. package/dist/src/types/cost-tracking.d.ts.map +1 -0
  513. package/dist/src/types/cost-tracking.js +8 -0
  514. package/dist/src/types/cost-tracking.js.map +1 -0
  515. package/dist/src/types/model-selection.d.ts +53 -0
  516. package/dist/src/types/model-selection.d.ts.map +1 -0
  517. package/dist/src/types/model-selection.js +12 -0
  518. package/dist/src/types/model-selection.js.map +1 -0
  519. package/dist/src/utils/agents-md-compiler.d.ts +68 -0
  520. package/dist/src/utils/agents-md-compiler.d.ts.map +1 -0
  521. package/dist/src/utils/agents-md-compiler.js +420 -0
  522. package/dist/src/utils/agents-md-compiler.js.map +1 -0
  523. package/dist/src/utils/auth-helpers.d.ts +58 -0
  524. package/dist/src/utils/auth-helpers.d.ts.map +1 -0
  525. package/dist/src/utils/auth-helpers.js +108 -0
  526. package/dist/src/utils/auth-helpers.js.map +1 -0
  527. package/dist/src/utils/auto-install.d.ts +47 -0
  528. package/dist/src/utils/auto-install.d.ts.map +1 -0
  529. package/dist/src/utils/auto-install.js +211 -0
  530. package/dist/src/utils/auto-install.js.map +1 -0
  531. package/dist/src/utils/claude-cli-detector.d.ts +75 -0
  532. package/dist/src/utils/claude-cli-detector.d.ts.map +1 -0
  533. package/dist/src/utils/claude-cli-detector.js +285 -0
  534. package/dist/src/utils/claude-cli-detector.js.map +1 -0
  535. package/dist/src/utils/cost-reporter.d.ts +58 -0
  536. package/dist/src/utils/cost-reporter.d.ts.map +1 -0
  537. package/dist/src/utils/cost-reporter.js +224 -0
  538. package/dist/src/utils/cost-reporter.js.map +1 -0
  539. package/dist/src/utils/docs-preview/config-generator.d.ts +46 -0
  540. package/dist/src/utils/docs-preview/config-generator.d.ts.map +1 -0
  541. package/dist/src/utils/docs-preview/config-generator.js +377 -0
  542. package/dist/src/utils/docs-preview/config-generator.js.map +1 -0
  543. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +38 -0
  544. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +1 -0
  545. package/dist/src/utils/docs-preview/docusaurus-setup.js +177 -0
  546. package/dist/src/utils/docs-preview/docusaurus-setup.js.map +1 -0
  547. package/dist/src/utils/docs-preview/index.d.ts +7 -0
  548. package/dist/src/utils/docs-preview/index.d.ts.map +1 -0
  549. package/dist/src/utils/docs-preview/index.js +7 -0
  550. package/dist/src/utils/docs-preview/index.js.map +1 -0
  551. package/dist/src/utils/docs-preview/package-installer.d.ts +42 -0
  552. package/dist/src/utils/docs-preview/package-installer.d.ts.map +1 -0
  553. package/dist/src/utils/docs-preview/package-installer.js +182 -0
  554. package/dist/src/utils/docs-preview/package-installer.js.map +1 -0
  555. package/dist/src/utils/docs-preview/server-manager.d.ts +30 -0
  556. package/dist/src/utils/docs-preview/server-manager.d.ts.map +1 -0
  557. package/dist/src/utils/docs-preview/server-manager.js +212 -0
  558. package/dist/src/utils/docs-preview/server-manager.js.map +1 -0
  559. package/dist/src/utils/docs-preview/sidebar-builder.d.ts +32 -0
  560. package/dist/src/utils/docs-preview/sidebar-builder.d.ts.map +1 -0
  561. package/dist/src/utils/docs-preview/sidebar-builder.js +202 -0
  562. package/dist/src/utils/docs-preview/sidebar-builder.js.map +1 -0
  563. package/dist/src/utils/docs-preview/types.d.ts +57 -0
  564. package/dist/src/utils/docs-preview/types.d.ts.map +1 -0
  565. package/dist/src/utils/docs-preview/types.js +2 -0
  566. package/dist/src/utils/docs-preview/types.js.map +1 -0
  567. package/dist/src/utils/env-file.d.ts +88 -0
  568. package/dist/src/utils/env-file.d.ts.map +1 -0
  569. package/dist/src/utils/env-file.js +180 -0
  570. package/dist/src/utils/env-file.js.map +1 -0
  571. package/dist/src/utils/env-multi-project-parser.d.ts +220 -0
  572. package/dist/src/utils/env-multi-project-parser.d.ts.map +1 -0
  573. package/dist/src/utils/env-multi-project-parser.js +403 -0
  574. package/dist/src/utils/env-multi-project-parser.js.map +1 -0
  575. package/dist/src/utils/esm-helpers.d.ts +50 -0
  576. package/dist/src/utils/esm-helpers.d.ts.map +1 -0
  577. package/dist/src/utils/esm-helpers.js +57 -0
  578. package/dist/src/utils/esm-helpers.js.map +1 -0
  579. package/dist/src/utils/execFileNoThrow.d.ts +99 -0
  580. package/dist/src/utils/execFileNoThrow.d.ts.map +1 -0
  581. package/dist/src/utils/execFileNoThrow.js +137 -0
  582. package/dist/src/utils/execFileNoThrow.js.map +1 -0
  583. package/dist/src/utils/external-resource-validator.d.ts +102 -0
  584. package/dist/src/utils/external-resource-validator.d.ts.map +1 -0
  585. package/dist/src/utils/external-resource-validator.js +400 -0
  586. package/dist/src/utils/external-resource-validator.js.map +1 -0
  587. package/dist/src/utils/generate-skills-index.d.ts +24 -0
  588. package/dist/src/utils/generate-skills-index.d.ts.map +1 -0
  589. package/dist/src/utils/generate-skills-index.js +410 -0
  590. package/dist/src/utils/generate-skills-index.js.map +1 -0
  591. package/dist/src/utils/model-selection.d.ts +75 -0
  592. package/dist/src/utils/model-selection.d.ts.map +1 -0
  593. package/dist/src/utils/model-selection.js +204 -0
  594. package/dist/src/utils/model-selection.js.map +1 -0
  595. package/dist/src/utils/plugin-validator.d.ts +161 -0
  596. package/dist/src/utils/plugin-validator.d.ts.map +1 -0
  597. package/dist/src/utils/plugin-validator.js +558 -0
  598. package/dist/src/utils/plugin-validator.js.map +1 -0
  599. package/dist/src/utils/pricing-constants.d.ts +70 -0
  600. package/dist/src/utils/pricing-constants.d.ts.map +1 -0
  601. package/dist/src/utils/pricing-constants.js +71 -0
  602. package/dist/src/utils/pricing-constants.js.map +1 -0
  603. package/dist/src/utils/project-detection.d.ts +141 -0
  604. package/dist/src/utils/project-detection.d.ts.map +1 -0
  605. package/dist/src/utils/project-detection.js +321 -0
  606. package/dist/src/utils/project-detection.js.map +1 -0
  607. package/dist/src/utils/string-utils.d.ts +40 -0
  608. package/dist/src/utils/string-utils.d.ts.map +1 -0
  609. package/dist/src/utils/string-utils.js +58 -0
  610. package/dist/src/utils/string-utils.js.map +1 -0
  611. package/dist/src/utils/translation.d.ts +187 -0
  612. package/dist/src/utils/translation.d.ts.map +1 -0
  613. package/dist/src/utils/translation.js +414 -0
  614. package/dist/src/utils/translation.js.map +1 -0
  615. package/dist/utils/plugin-validator.d.ts.map +1 -1
  616. package/dist/utils/plugin-validator.js +0 -7
  617. package/dist/utils/plugin-validator.js.map +1 -1
  618. package/package.json +3 -2
  619. package/plugins/specweave/agents/reflective-reviewer/AGENT.md +535 -0
  620. package/plugins/specweave/hooks/post-first-increment.sh +10 -28
  621. package/plugins/specweave/hooks/post-increment-planning.sh +261 -1
  622. package/plugins/specweave/hooks/post-task-completion.sh +26 -0
  623. package/plugins/specweave/lib/hooks/git-diff-analyzer.ts +269 -0
  624. package/plugins/specweave/lib/hooks/invoke-translator-skill.ts +264 -0
  625. package/plugins/specweave/lib/hooks/prepare-reflection-context.ts +178 -0
  626. package/plugins/specweave/lib/hooks/reflection-config-loader.ts +156 -0
  627. package/plugins/specweave/lib/hooks/reflection-parser.ts +484 -0
  628. package/plugins/specweave/lib/hooks/reflection-prompt-builder.ts +306 -0
  629. package/plugins/specweave/lib/hooks/reflection-storage.ts +369 -0
  630. package/plugins/specweave/lib/hooks/run-self-reflection.ts +258 -0
  631. package/plugins/specweave/lib/hooks/sync-living-docs.ts +147 -0
  632. package/plugins/specweave/lib/hooks/translate-file.ts +428 -0
  633. package/plugins/specweave/lib/hooks/translate-living-docs.ts +224 -0
  634. package/plugins/specweave/lib/hooks/types/reflection-types.ts +193 -0
  635. package/plugins/specweave/lib/hooks/update-tasks-md.ts +256 -0
  636. package/plugins/specweave/skills/SKILLS-INDEX.md +2 -2
  637. package/plugins/specweave/skills/increment-planner/SKILL.md +21 -92
  638. package/plugins/specweave/skills/plugin-expert/SKILL.md +0 -4
  639. package/plugins/specweave/skills/plugin-installer/SKILL.md +41 -28
  640. package/plugins/specweave/skills/plugin-validator/SKILL.md +0 -1
  641. package/plugins/specweave/skills/project-kickstarter/SKILL.md +3 -3
  642. package/plugins/specweave/skills/spec-generator/SKILL.md +3 -3
  643. package/plugins/specweave-ado/agents/ado-manager/AGENT.md +2 -0
  644. package/plugins/specweave-ado/commands/specweave-ado-sync.md +102 -9
  645. package/plugins/specweave-ado/skills/ado-sync/SKILL.md +7 -3
  646. package/plugins/specweave-docs-preview/.claude-plugin/plugin.json +21 -0
  647. package/plugins/specweave-docs-preview/commands/build.md +489 -0
  648. package/plugins/specweave-docs-preview/commands/preview.md +330 -0
  649. package/plugins/specweave-docs-preview/skills/docs-preview/SKILL.md +386 -0
  650. package/plugins/specweave-github/agents/github-manager/AGENT.md +14 -4
  651. package/plugins/specweave-github/commands/specweave-github-sync.md +60 -11
  652. package/plugins/specweave-github/skills/github-sync/SKILL.md +3 -1
  653. package/plugins/specweave-jira/agents/jira-manager/AGENT.md +18 -8
  654. package/plugins/specweave-jira/commands/specweave-jira-sync.md +62 -19
  655. package/plugins/specweave-jira/skills/jira-sync/SKILL.md +5 -3
  656. package/plugins/specweave/skills/translator/SKILL.md.bak +0 -172
@@ -0,0 +1,403 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-generator.js","sourceRoot":"","sources":["../../../src/metrics/report-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,10 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/metrics/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,25 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,46 @@
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
@@ -0,0 +1 @@
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"}