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,268 +1,233 @@
1
- /**
2
- * Jira Spec Sync
3
- *
4
- * CORRECT ARCHITECTURE:
5
- * - Syncs .specweave/docs/internal/specs/spec-*.md ↔ Jira Epics
6
- * - NOT increments ↔ Jira Issues (that was wrong!)
7
- *
8
- * Mapping:
9
- * - Spec → Jira Epic
10
- * - User Story → Jira Story (subtask of epic)
11
- * - Acceptance Criteria → Checklist in Story description
12
- *
13
- * @module jira-spec-sync
14
- */
15
- import { SpecMetadataManager } from '../../../src/core/specs/spec-metadata-manager.js';
16
- import { SpecParser } from '../../../src/core/specs/spec-parser.js';
17
- import axios from 'axios';
18
- export class JiraSpecSync {
19
- constructor(config, projectRoot = process.cwd()) {
20
- this.specManager = new SpecMetadataManager(projectRoot);
21
- this.config = config;
22
- // Create Jira API client
23
- this.client = axios.create({
24
- baseURL: `https://${config.domain}/rest/api/3`,
25
- auth: {
26
- username: config.email,
27
- password: config.apiToken
28
- },
29
- headers: {
30
- 'Accept': 'application/json',
31
- 'Content-Type': 'application/json'
32
- }
1
+ import { SpecMetadataManager } from "../../../src/core/specs/spec-metadata-manager.js";
2
+ import { SpecParser } from "../../../src/core/specs/spec-parser.js";
3
+ import axios from "axios";
4
+ class JiraSpecSync {
5
+ constructor(config, projectRoot = process.cwd()) {
6
+ this.specManager = new SpecMetadataManager(projectRoot);
7
+ this.config = config;
8
+ this.client = axios.create({
9
+ baseURL: `https://${config.domain}/rest/api/3`,
10
+ auth: {
11
+ username: config.email,
12
+ password: config.apiToken
13
+ },
14
+ headers: {
15
+ "Accept": "application/json",
16
+ "Content-Type": "application/json"
17
+ }
18
+ });
19
+ }
20
+ /**
21
+ * Sync spec to Jira Epic (CREATE or UPDATE)
22
+ */
23
+ async syncSpecToJira(specId) {
24
+ console.log(`
25
+ \u{1F504} Syncing spec ${specId} to Jira Epic...`);
26
+ try {
27
+ const spec = await this.specManager.loadSpec(specId);
28
+ if (!spec) {
29
+ return {
30
+ success: false,
31
+ specId,
32
+ provider: "jira",
33
+ error: `Spec ${specId} not found`
34
+ };
35
+ }
36
+ const existingLink = spec.metadata.externalLinks?.jira;
37
+ let epic;
38
+ if (existingLink?.epicKey) {
39
+ console.log(` Found existing Jira Epic ${existingLink.epicKey}`);
40
+ epic = await this.updateJiraEpic(existingLink.epicKey, spec);
41
+ } else {
42
+ console.log(" Creating new Jira Epic...");
43
+ epic = await this.createJiraEpic(spec);
44
+ await this.specManager.linkToExternal(specId, "jira", {
45
+ id: epic.key,
46
+ url: epic.url,
47
+ projectKey: this.config.projectKey,
48
+ domain: this.config.domain
33
49
  });
50
+ }
51
+ const changes = await this.syncUserStories(epic.key, spec);
52
+ console.log("\u2705 Sync complete!");
53
+ return {
54
+ success: true,
55
+ specId,
56
+ provider: "jira",
57
+ externalId: epic.key,
58
+ url: epic.url,
59
+ changes
60
+ };
61
+ } catch (error) {
62
+ console.error("\u274C Error syncing to Jira:", error);
63
+ return {
64
+ success: false,
65
+ specId,
66
+ provider: "jira",
67
+ error: error instanceof Error ? error.message : "Unknown error"
68
+ };
34
69
  }
35
- /**
36
- * Sync spec to Jira Epic (CREATE or UPDATE)
37
- */
38
- async syncSpecToJira(specId) {
39
- console.log(`\n🔄 Syncing spec ${specId} to Jira Epic...`);
40
- try {
41
- // 1. Load spec
42
- const spec = await this.specManager.loadSpec(specId);
43
- if (!spec) {
44
- return {
45
- success: false,
46
- specId,
47
- provider: 'jira',
48
- error: `Spec ${specId} not found`
49
- };
50
- }
51
- // 2. Check if spec already linked to Jira Epic
52
- const existingLink = spec.metadata.externalLinks?.jira;
53
- let epic;
54
- if (existingLink?.epicKey) {
55
- // UPDATE existing epic
56
- console.log(` Found existing Jira Epic ${existingLink.epicKey}`);
57
- epic = await this.updateJiraEpic(existingLink.epicKey, spec);
58
- }
59
- else {
60
- // CREATE new epic
61
- console.log(' Creating new Jira Epic...');
62
- epic = await this.createJiraEpic(spec);
63
- // Link spec to epic
64
- await this.specManager.linkToExternal(specId, 'jira', {
65
- id: epic.key,
66
- url: epic.url,
67
- projectKey: this.config.projectKey,
68
- domain: this.config.domain
69
- });
70
- }
71
- // 3. Sync user stories as Jira Stories
72
- const changes = await this.syncUserStories(epic.key, spec);
73
- console.log('✅ Sync complete!');
74
- return {
75
- success: true,
76
- specId,
77
- provider: 'jira',
78
- externalId: epic.key,
79
- url: epic.url,
80
- changes
81
- };
82
- }
83
- catch (error) {
84
- console.error('❌ Error syncing to Jira:', error);
85
- return {
86
- success: false,
87
- specId,
88
- provider: 'jira',
89
- error: error instanceof Error ? error.message : 'Unknown error'
90
- };
91
- }
92
- }
93
- /**
94
- * Sync FROM Jira Epic to spec (bidirectional)
95
- */
96
- async syncFromJira(specId) {
97
- console.log(`\n🔄 Syncing FROM Jira to spec ${specId}...`);
98
- try {
99
- // 1. Load spec
100
- const spec = await this.specManager.loadSpec(specId);
101
- if (!spec) {
102
- return {
103
- success: false,
104
- specId,
105
- provider: 'jira',
106
- error: `Spec ${specId} not found`
107
- };
108
- }
109
- // 2. Get Jira Epic link
110
- const jiraLink = spec.metadata.externalLinks?.jira;
111
- if (!jiraLink?.epicKey) {
112
- return {
113
- success: false,
114
- specId,
115
- provider: 'jira',
116
- error: 'Spec not linked to Jira Epic'
117
- };
118
- }
119
- // 3. Fetch Jira Epic state
120
- const epic = await this.fetchJiraEpic(jiraLink.epicKey);
121
- // 4. Detect conflicts
122
- const conflicts = await this.detectConflicts(spec, epic);
123
- if (conflicts.length === 0) {
124
- console.log('✅ No conflicts - spec and Jira in sync');
125
- return {
126
- success: true,
127
- specId,
128
- provider: 'jira',
129
- externalId: epic.key,
130
- url: epic.url
131
- };
132
- }
133
- console.log(`⚠️ Detected ${conflicts.length} conflict(s)`);
134
- // 5. Resolve conflicts (Jira wins by default for now)
135
- await this.resolveConflicts(spec, conflicts);
136
- console.log('✅ Sync FROM Jira complete!');
137
- return {
138
- success: true,
139
- specId,
140
- provider: 'jira',
141
- externalId: epic.key,
142
- url: epic.url,
143
- conflicts
144
- };
145
- }
146
- catch (error) {
147
- console.error('❌ Error syncing FROM Jira:', error);
148
- return {
149
- success: false,
150
- specId,
151
- provider: 'jira',
152
- error: error instanceof Error ? error.message : 'Unknown error'
153
- };
154
- }
155
- }
156
- /**
157
- * Create new Jira Epic for spec
158
- */
159
- async createJiraEpic(spec) {
160
- const epicSummary = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
161
- const epicDescription = this.generateEpicDescription(spec);
162
- const payload = {
163
- fields: {
164
- project: {
165
- key: this.config.projectKey
166
- },
167
- summary: epicSummary,
168
- description: epicDescription,
169
- issuetype: {
170
- name: 'Epic'
171
- },
172
- labels: [`spec:${spec.metadata.id}`, `priority:${spec.metadata.priority}`]
173
- }
174
- };
175
- const response = await this.client.post('/issue', payload);
176
- const epicData = response.data;
177
- const epicKey = epicData.key;
178
- const epicUrl = `https://${this.config.domain}/browse/${epicKey}`;
179
- console.log(` ✅ Created Jira Epic ${epicKey}: ${epicUrl}`);
70
+ }
71
+ /**
72
+ * Sync FROM Jira Epic to spec (bidirectional)
73
+ */
74
+ async syncFromJira(specId) {
75
+ console.log(`
76
+ \u{1F504} Syncing FROM Jira to spec ${specId}...`);
77
+ try {
78
+ const spec = await this.specManager.loadSpec(specId);
79
+ if (!spec) {
180
80
  return {
181
- id: epicData.id,
182
- key: epicKey,
183
- summary: epicSummary,
184
- description: epicDescription,
185
- status: { name: 'To Do' },
186
- url: epicUrl
81
+ success: false,
82
+ specId,
83
+ provider: "jira",
84
+ error: `Spec ${specId} not found`
187
85
  };
188
- }
189
- /**
190
- * Update existing Jira Epic
191
- */
192
- async updateJiraEpic(epicKey, spec) {
193
- const epicSummary = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
194
- const epicDescription = this.generateEpicDescription(spec);
195
- const payload = {
196
- fields: {
197
- summary: epicSummary,
198
- description: epicDescription
199
- }
86
+ }
87
+ const jiraLink = spec.metadata.externalLinks?.jira;
88
+ if (!jiraLink?.epicKey) {
89
+ return {
90
+ success: false,
91
+ specId,
92
+ provider: "jira",
93
+ error: "Spec not linked to Jira Epic"
200
94
  };
201
- await this.client.put(`/issue/${epicKey}`, payload);
202
- // Fetch updated epic
203
- const response = await this.client.get(`/issue/${epicKey}`);
204
- const epicData = response.data;
205
- console.log(` ✅ Updated Jira Epic ${epicKey}`);
95
+ }
96
+ const epic = await this.fetchJiraEpic(jiraLink.epicKey);
97
+ const conflicts = await this.detectConflicts(spec, epic);
98
+ if (conflicts.length === 0) {
99
+ console.log("\u2705 No conflicts - spec and Jira in sync");
206
100
  return {
207
- id: epicData.id,
208
- key: epicKey,
209
- summary: epicData.fields.summary,
210
- description: epicData.fields.description,
211
- status: epicData.fields.status,
212
- url: `https://${this.config.domain}/browse/${epicKey}`
101
+ success: true,
102
+ specId,
103
+ provider: "jira",
104
+ externalId: epic.key,
105
+ url: epic.url
213
106
  };
107
+ }
108
+ console.log(`\u26A0\uFE0F Detected ${conflicts.length} conflict(s)`);
109
+ await this.resolveConflicts(spec, conflicts);
110
+ console.log("\u2705 Sync FROM Jira complete!");
111
+ return {
112
+ success: true,
113
+ specId,
114
+ provider: "jira",
115
+ externalId: epic.key,
116
+ url: epic.url,
117
+ conflicts
118
+ };
119
+ } catch (error) {
120
+ console.error("\u274C Error syncing FROM Jira:", error);
121
+ return {
122
+ success: false,
123
+ specId,
124
+ provider: "jira",
125
+ error: error instanceof Error ? error.message : "Unknown error"
126
+ };
214
127
  }
215
- /**
216
- * Sync user stories as Jira Stories
217
- */
218
- async syncUserStories(epicKey, spec) {
219
- const created = [];
220
- const updated = [];
221
- const deleted = [];
222
- if (!spec.metadata.userStories || spec.metadata.userStories.length === 0) {
223
- console.log(' ℹ️ No user stories to sync');
224
- return { created, updated, deleted };
225
- }
226
- console.log(` Syncing ${spec.metadata.userStories.length} user stories...`);
227
- for (const us of spec.metadata.userStories) {
228
- // Create or update Jira Story for each user story
229
- const storySummary = `[${us.id}] ${us.title}`;
230
- const storyDescription = this.generateStoryDescription(us);
231
- // Check if story already exists (by searching for US-ID in summary)
232
- const existingStory = await this.findStoryByTitle(us.id);
233
- if (existingStory) {
234
- // UPDATE existing story
235
- await this.updateStory(existingStory.key, {
236
- summary: storySummary,
237
- description: storyDescription,
238
- status: us.status === 'done' ? 'Done' : us.status === 'in-progress' ? 'In Progress' : 'To Do'
239
- });
240
- updated.push(us.id);
241
- console.log(` ✅ Updated ${us.id}`);
242
- }
243
- else {
244
- // CREATE new story
245
- const newStory = await this.createStory({
246
- summary: storySummary,
247
- description: storyDescription,
248
- epicLink: epicKey,
249
- labels: [`user-story`, `spec:${spec.metadata.id}`, `priority:${us.priority}`]
250
- });
251
- created.push(us.id);
252
- console.log(` ✅ Created ${us.id} → Story ${newStory.key}`);
253
- }
254
- }
255
- return { created, updated, deleted };
128
+ }
129
+ /**
130
+ * Create new Jira Epic for spec
131
+ */
132
+ async createJiraEpic(spec) {
133
+ const epicSummary = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
134
+ const epicDescription = this.generateEpicDescription(spec);
135
+ const payload = {
136
+ fields: {
137
+ project: {
138
+ key: this.config.projectKey
139
+ },
140
+ summary: epicSummary,
141
+ description: epicDescription,
142
+ issuetype: {
143
+ name: "Epic"
144
+ },
145
+ labels: [`spec:${spec.metadata.id}`, `priority:${spec.metadata.priority}`]
146
+ }
147
+ };
148
+ const response = await this.client.post("/issue", payload);
149
+ const epicData = response.data;
150
+ const epicKey = epicData.key;
151
+ const epicUrl = `https://${this.config.domain}/browse/${epicKey}`;
152
+ console.log(` \u2705 Created Jira Epic ${epicKey}: ${epicUrl}`);
153
+ return {
154
+ id: epicData.id,
155
+ key: epicKey,
156
+ summary: epicSummary,
157
+ description: epicDescription,
158
+ status: { name: "To Do" },
159
+ url: epicUrl
160
+ };
161
+ }
162
+ /**
163
+ * Update existing Jira Epic
164
+ */
165
+ async updateJiraEpic(epicKey, spec) {
166
+ const epicSummary = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
167
+ const epicDescription = this.generateEpicDescription(spec);
168
+ const payload = {
169
+ fields: {
170
+ summary: epicSummary,
171
+ description: epicDescription
172
+ }
173
+ };
174
+ await this.client.put(`/issue/${epicKey}`, payload);
175
+ const response = await this.client.get(`/issue/${epicKey}`);
176
+ const epicData = response.data;
177
+ console.log(` \u2705 Updated Jira Epic ${epicKey}`);
178
+ return {
179
+ id: epicData.id,
180
+ key: epicKey,
181
+ summary: epicData.fields.summary,
182
+ description: epicData.fields.description,
183
+ status: epicData.fields.status,
184
+ url: `https://${this.config.domain}/browse/${epicKey}`
185
+ };
186
+ }
187
+ /**
188
+ * Sync user stories as Jira Stories
189
+ */
190
+ async syncUserStories(epicKey, spec) {
191
+ const created = [];
192
+ const updated = [];
193
+ const deleted = [];
194
+ if (!spec.metadata.userStories || spec.metadata.userStories.length === 0) {
195
+ console.log(" \u2139\uFE0F No user stories to sync");
196
+ return { created, updated, deleted };
197
+ }
198
+ console.log(` Syncing ${spec.metadata.userStories.length} user stories...`);
199
+ for (const us of spec.metadata.userStories) {
200
+ const storySummary = `[${us.id}] ${us.title}`;
201
+ const storyDescription = this.generateStoryDescription(us);
202
+ const existingStory = await this.findStoryByTitle(us.id);
203
+ if (existingStory) {
204
+ await this.updateStory(existingStory.key, {
205
+ summary: storySummary,
206
+ description: storyDescription,
207
+ status: us.status === "done" ? "Done" : us.status === "in-progress" ? "In Progress" : "To Do"
208
+ });
209
+ updated.push(us.id);
210
+ console.log(` \u2705 Updated ${us.id}`);
211
+ } else {
212
+ const newStory = await this.createStory({
213
+ summary: storySummary,
214
+ description: storyDescription,
215
+ epicLink: epicKey,
216
+ labels: [`user-story`, `spec:${spec.metadata.id}`, `priority:${us.priority}`]
217
+ });
218
+ created.push(us.id);
219
+ console.log(` \u2705 Created ${us.id} \u2192 Story ${newStory.key}`);
220
+ }
256
221
  }
257
- /**
258
- * Generate epic description from spec
259
- */
260
- generateEpicDescription(spec) {
261
- const progress = spec.metadata.progress;
262
- const progressText = progress
263
- ? `*Progress*: ${progress.percentComplete}% (${progress.completedUserStories}/${progress.totalUserStories} user stories)`
264
- : '*Progress*: N/A';
265
- return `
222
+ return { created, updated, deleted };
223
+ }
224
+ /**
225
+ * Generate epic description from spec
226
+ */
227
+ generateEpicDescription(spec) {
228
+ const progress = spec.metadata.progress;
229
+ const progressText = progress ? `*Progress*: ${progress.percentComplete}% (${progress.completedUserStories}/${progress.totalUserStories} user stories)` : "*Progress*: N/A";
230
+ return `
266
231
  h1. ${spec.metadata.title}
267
232
 
268
233
  *Spec ID*: ${spec.metadata.id}
@@ -282,18 +247,16 @@ ${spec.metadata.userStories?.length || 0} user stories tracked in this epic.
282
247
 
283
248
  ----
284
249
 
285
- 🤖 *Auto-synced from SpecWeave*
286
- Last updated: ${new Date().toISOString()}
250
+ \u{1F916} *Auto-synced from SpecWeave*
251
+ Last updated: ${(/* @__PURE__ */ new Date()).toISOString()}
287
252
  `.trim();
288
- }
289
- /**
290
- * Generate story description from user story
291
- */
292
- generateStoryDescription(us) {
293
- const acList = us.acceptanceCriteria
294
- .map(ac => `* ${ac.status === 'done' ? '(/)' : '(x)'} ${ac.description}`)
295
- .join('\n');
296
- return `
253
+ }
254
+ /**
255
+ * Generate story description from user story
256
+ */
257
+ generateStoryDescription(us) {
258
+ const acList = us.acceptanceCriteria.map((ac) => `* ${ac.status === "done" ? "(/)" : "(x)"} ${ac.description}`).join("\n");
259
+ return `
297
260
  h2. User Story
298
261
 
299
262
  ${us.title}
@@ -307,150 +270,148 @@ ${acList}
307
270
  *Priority*: ${us.priority}
308
271
  *Status*: ${us.status}
309
272
 
310
- 🤖 *Auto-synced from SpecWeave*
273
+ \u{1F916} *Auto-synced from SpecWeave*
311
274
  `.trim();
275
+ }
276
+ /**
277
+ * Detect conflicts between spec and Jira
278
+ */
279
+ async detectConflicts(spec, epic) {
280
+ const conflicts = [];
281
+ const expectedSummary = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
282
+ if (epic.summary !== expectedSummary) {
283
+ conflicts.push({
284
+ type: "metadata",
285
+ field: "title",
286
+ localValue: spec.metadata.title,
287
+ remoteValue: epic.summary,
288
+ resolution: "remote-wins",
289
+ description: "Epic summary differs from spec title"
290
+ });
312
291
  }
313
- /**
314
- * Detect conflicts between spec and Jira
315
- */
316
- async detectConflicts(spec, epic) {
317
- const conflicts = [];
318
- // Compare epic summary
319
- const expectedSummary = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
320
- if (epic.summary !== expectedSummary) {
321
- conflicts.push({
322
- type: 'metadata',
323
- field: 'title',
324
- localValue: spec.metadata.title,
325
- remoteValue: epic.summary,
326
- resolution: 'remote-wins',
327
- description: 'Epic summary differs from spec title'
328
- });
329
- }
330
- // TODO: Compare user stories and their statuses
331
- return conflicts;
332
- }
333
- /**
334
- * Resolve conflicts
335
- */
336
- async resolveConflicts(spec, conflicts) {
337
- for (const conflict of conflicts) {
338
- if (conflict.resolution === 'remote-wins') {
339
- console.log(` 🔄 Resolving: ${conflict.description} (Jira wins)`);
340
- // Update spec metadata from Jira
341
- if (conflict.field === 'title') {
342
- await this.specManager.saveMetadata(spec.metadata.id, {
343
- title: conflict.remoteValue
344
- });
345
- }
346
- }
292
+ return conflicts;
293
+ }
294
+ /**
295
+ * Resolve conflicts
296
+ */
297
+ async resolveConflicts(spec, conflicts) {
298
+ for (const conflict of conflicts) {
299
+ if (conflict.resolution === "remote-wins") {
300
+ console.log(` \u{1F504} Resolving: ${conflict.description} (Jira wins)`);
301
+ if (conflict.field === "title") {
302
+ await this.specManager.saveMetadata(spec.metadata.id, {
303
+ title: conflict.remoteValue
304
+ });
347
305
  }
306
+ }
348
307
  }
349
- /**
350
- * Fetch Jira Epic details
351
- */
352
- async fetchJiraEpic(epicKey) {
353
- const response = await this.client.get(`/issue/${epicKey}`);
354
- const epicData = response.data;
355
- return {
356
- id: epicData.id,
357
- key: epicKey,
358
- summary: epicData.fields.summary,
359
- description: epicData.fields.description,
360
- status: epicData.fields.status,
361
- url: `https://${this.config.domain}/browse/${epicKey}`
362
- };
363
- }
364
- /**
365
- * Find story by title pattern
366
- */
367
- async findStoryByTitle(usId) {
368
- const jql = `project = ${this.config.projectKey} AND summary ~ "[${usId}]" AND issuetype = Story`;
369
- const response = await this.client.get('/search', {
370
- params: {
371
- jql,
372
- maxResults: 1,
373
- fields: 'summary,description,status,labels'
374
- }
375
- });
376
- const issues = response.data.issues;
377
- return issues.length > 0 ? {
378
- id: issues[0].id,
379
- key: issues[0].key,
380
- summary: issues[0].fields.summary,
381
- description: issues[0].fields.description,
382
- status: issues[0].fields.status,
383
- labels: issues[0].fields.labels || []
384
- } : null;
308
+ }
309
+ /**
310
+ * Fetch Jira Epic details
311
+ */
312
+ async fetchJiraEpic(epicKey) {
313
+ const response = await this.client.get(`/issue/${epicKey}`);
314
+ const epicData = response.data;
315
+ return {
316
+ id: epicData.id,
317
+ key: epicKey,
318
+ summary: epicData.fields.summary,
319
+ description: epicData.fields.description,
320
+ status: epicData.fields.status,
321
+ url: `https://${this.config.domain}/browse/${epicKey}`
322
+ };
323
+ }
324
+ /**
325
+ * Find story by title pattern
326
+ */
327
+ async findStoryByTitle(usId) {
328
+ const jql = `project = ${this.config.projectKey} AND summary ~ "[${usId}]" AND issuetype = Story`;
329
+ const response = await this.client.get("/search", {
330
+ params: {
331
+ jql,
332
+ maxResults: 1,
333
+ fields: "summary,description,status,labels"
334
+ }
335
+ });
336
+ const issues = response.data.issues;
337
+ return issues.length > 0 ? {
338
+ id: issues[0].id,
339
+ key: issues[0].key,
340
+ summary: issues[0].fields.summary,
341
+ description: issues[0].fields.description,
342
+ status: issues[0].fields.status,
343
+ labels: issues[0].fields.labels || []
344
+ } : null;
345
+ }
346
+ /**
347
+ * Create Jira Story
348
+ */
349
+ async createStory(story) {
350
+ const payload = {
351
+ fields: {
352
+ project: {
353
+ key: this.config.projectKey
354
+ },
355
+ summary: story.summary,
356
+ description: story.description,
357
+ issuetype: {
358
+ name: "Story"
359
+ },
360
+ labels: story.labels,
361
+ // Link to epic (field name may vary by Jira configuration)
362
+ customfield_10014: story.epicLink
363
+ // Epic Link field (adjust if needed)
364
+ }
365
+ };
366
+ const response = await this.client.post("/issue", payload);
367
+ const storyData = response.data;
368
+ return {
369
+ id: storyData.id,
370
+ key: storyData.key,
371
+ summary: story.summary,
372
+ description: story.description,
373
+ status: { name: "To Do" },
374
+ labels: story.labels
375
+ };
376
+ }
377
+ /**
378
+ * Update Jira Story
379
+ */
380
+ async updateStory(storyKey, updates) {
381
+ const payload = {
382
+ fields: {}
383
+ };
384
+ if (updates.summary) {
385
+ payload.fields.summary = updates.summary;
385
386
  }
386
- /**
387
- * Create Jira Story
388
- */
389
- async createStory(story) {
390
- const payload = {
391
- fields: {
392
- project: {
393
- key: this.config.projectKey
394
- },
395
- summary: story.summary,
396
- description: story.description,
397
- issuetype: {
398
- name: 'Story'
399
- },
400
- labels: story.labels,
401
- // Link to epic (field name may vary by Jira configuration)
402
- customfield_10014: story.epicLink // Epic Link field (adjust if needed)
403
- }
404
- };
405
- const response = await this.client.post('/issue', payload);
406
- const storyData = response.data;
407
- return {
408
- id: storyData.id,
409
- key: storyData.key,
410
- summary: story.summary,
411
- description: story.description,
412
- status: { name: 'To Do' },
413
- labels: story.labels
414
- };
387
+ if (updates.description) {
388
+ payload.fields.description = updates.description;
415
389
  }
416
- /**
417
- * Update Jira Story
418
- */
419
- async updateStory(storyKey, updates) {
420
- const payload = {
421
- fields: {}
422
- };
423
- if (updates.summary) {
424
- payload.fields.summary = updates.summary;
425
- }
426
- if (updates.description) {
427
- payload.fields.description = updates.description;
428
- }
429
- await this.client.put(`/issue/${storyKey}`, payload);
430
- // Handle status transition if needed
431
- if (updates.status) {
432
- await this.transitionIssue(storyKey, updates.status);
433
- }
390
+ await this.client.put(`/issue/${storyKey}`, payload);
391
+ if (updates.status) {
392
+ await this.transitionIssue(storyKey, updates.status);
434
393
  }
435
- /**
436
- * Transition issue to new status
437
- */
438
- async transitionIssue(issueKey, targetStatus) {
439
- // Get available transitions
440
- const transitionsResponse = await this.client.get(`/issue/${issueKey}/transitions`);
441
- const transitions = transitionsResponse.data.transitions;
442
- // Find transition matching target status
443
- const transition = transitions.find((t) => t.to.name.toLowerCase() === targetStatus.toLowerCase());
444
- if (!transition) {
445
- console.warn(` ⚠️ Cannot transition ${issueKey} to ${targetStatus} (no valid transition)`);
446
- return;
447
- }
448
- // Execute transition
449
- await this.client.post(`/issue/${issueKey}/transitions`, {
450
- transition: {
451
- id: transition.id
452
- }
453
- });
394
+ }
395
+ /**
396
+ * Transition issue to new status
397
+ */
398
+ async transitionIssue(issueKey, targetStatus) {
399
+ const transitionsResponse = await this.client.get(`/issue/${issueKey}/transitions`);
400
+ const transitions = transitionsResponse.data.transitions;
401
+ const transition = transitions.find(
402
+ (t) => t.to.name.toLowerCase() === targetStatus.toLowerCase()
403
+ );
404
+ if (!transition) {
405
+ console.warn(` \u26A0\uFE0F Cannot transition ${issueKey} to ${targetStatus} (no valid transition)`);
406
+ return;
454
407
  }
408
+ await this.client.post(`/issue/${issueKey}/transitions`, {
409
+ transition: {
410
+ id: transition.id
411
+ }
412
+ });
413
+ }
455
414
  }
456
- //# sourceMappingURL=jira-spec-sync.js.map
415
+ export {
416
+ JiraSpecSync
417
+ };