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,165 +1,142 @@
1
- /**
2
- * GitHub Spec Sync
3
- *
4
- * CORRECT ARCHITECTURE:
5
- * - Syncs .specweave/docs/internal/specs/spec-*.md ↔ GitHub Projects
6
- * - NOT increments ↔ GitHub Issues (that was wrong!)
7
- *
8
- * Mapping:
9
- * - Spec GitHub Project
10
- * - User Story → GitHub Project Card/Issue
11
- * - Acceptance Criteria → Checklist in Issue
12
- *
13
- * @module github-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 { execFileNoThrow } from '../../../src/utils/execFileNoThrow.js';
18
- export class GitHubSpecSync {
19
- constructor(projectRoot = process.cwd()) {
20
- this.specManager = new SpecMetadataManager(projectRoot);
21
- }
22
- /**
23
- * Sync spec to GitHub Project (CREATE or UPDATE)
24
- */
25
- async syncSpecToGitHub(specId) {
26
- console.log(`\n🔄 Syncing spec ${specId} to GitHub Project...`);
27
- try {
28
- // 1. Load spec
29
- const spec = await this.specManager.loadSpec(specId);
30
- if (!spec) {
31
- return {
32
- success: false,
33
- specId,
34
- provider: 'github',
35
- error: `Spec ${specId} not found`
36
- };
37
- }
38
- // 2. Detect repository
39
- const repoInfo = await this.detectRepo();
40
- if (!repoInfo) {
41
- return {
42
- success: false,
43
- specId,
44
- provider: 'github',
45
- error: 'Could not detect GitHub repository'
46
- };
47
- }
48
- const { owner, repo } = repoInfo;
49
- // 3. Check if spec already linked to GitHub Project
50
- const existingLink = spec.metadata.externalLinks?.github;
51
- let project;
52
- if (existingLink?.projectId) {
53
- // UPDATE existing project
54
- console.log(` Found existing GitHub Project #${existingLink.projectId}`);
55
- project = await this.updateGitHubProject(owner, repo, existingLink.projectId, spec);
56
- }
57
- else {
58
- // CREATE new project
59
- console.log(' Creating new GitHub Project...');
60
- project = await this.createGitHubProject(owner, repo, spec);
61
- // Link spec to project
62
- await this.specManager.linkToExternal(specId, 'github', {
63
- id: project.id,
64
- url: project.url,
65
- owner,
66
- repo
67
- });
68
- }
69
- // 4. Sync user stories as issues/cards
70
- const changes = await this.syncUserStories(owner, repo, project.number, spec);
71
- console.log('✅ Sync complete!');
72
- return {
73
- success: true,
74
- specId,
75
- provider: 'github',
76
- externalId: project.id.toString(),
77
- url: project.url,
78
- changes
79
- };
80
- }
81
- catch (error) {
82
- console.error('❌ Error syncing to GitHub:', error);
83
- return {
84
- success: false,
85
- specId,
86
- provider: 'github',
87
- error: error instanceof Error ? error.message : 'Unknown error'
88
- };
89
- }
1
+ import { SpecMetadataManager } from "../../../src/core/specs/spec-metadata-manager.js";
2
+ import { SpecParser } from "../../../src/core/specs/spec-parser.js";
3
+ import { execFileNoThrow } from "../../../src/utils/execFileNoThrow.js";
4
+ class GitHubSpecSync {
5
+ constructor(projectRoot = process.cwd()) {
6
+ this.specManager = new SpecMetadataManager(projectRoot);
7
+ }
8
+ /**
9
+ * Sync spec to GitHub Project (CREATE or UPDATE)
10
+ */
11
+ async syncSpecToGitHub(specId) {
12
+ console.log(`
13
+ \u{1F504} Syncing spec ${specId} to GitHub Project...`);
14
+ try {
15
+ const spec = await this.specManager.loadSpec(specId);
16
+ if (!spec) {
17
+ return {
18
+ success: false,
19
+ specId,
20
+ provider: "github",
21
+ error: `Spec ${specId} not found`
22
+ };
23
+ }
24
+ const repoInfo = await this.detectRepo();
25
+ if (!repoInfo) {
26
+ return {
27
+ success: false,
28
+ specId,
29
+ provider: "github",
30
+ error: "Could not detect GitHub repository"
31
+ };
32
+ }
33
+ const { owner, repo } = repoInfo;
34
+ const existingLink = spec.metadata.externalLinks?.github;
35
+ let project;
36
+ if (existingLink?.projectId) {
37
+ console.log(` Found existing GitHub Project #${existingLink.projectId}`);
38
+ project = await this.updateGitHubProject(
39
+ owner,
40
+ repo,
41
+ existingLink.projectId,
42
+ spec
43
+ );
44
+ } else {
45
+ console.log(" Creating new GitHub Project...");
46
+ project = await this.createGitHubProject(owner, repo, spec);
47
+ await this.specManager.linkToExternal(specId, "github", {
48
+ id: project.id,
49
+ url: project.url,
50
+ owner,
51
+ repo
52
+ });
53
+ }
54
+ const changes = await this.syncUserStories(owner, repo, project.number, spec);
55
+ console.log("\u2705 Sync complete!");
56
+ return {
57
+ success: true,
58
+ specId,
59
+ provider: "github",
60
+ externalId: project.id.toString(),
61
+ url: project.url,
62
+ changes
63
+ };
64
+ } catch (error) {
65
+ console.error("\u274C Error syncing to GitHub:", error);
66
+ return {
67
+ success: false,
68
+ specId,
69
+ provider: "github",
70
+ error: error instanceof Error ? error.message : "Unknown error"
71
+ };
90
72
  }
91
- /**
92
- * Sync FROM GitHub Project to spec (bidirectional)
93
- */
94
- async syncFromGitHub(specId) {
95
- console.log(`\n🔄 Syncing FROM GitHub to spec ${specId}...`);
96
- try {
97
- // 1. Load spec
98
- const spec = await this.specManager.loadSpec(specId);
99
- if (!spec) {
100
- return {
101
- success: false,
102
- specId,
103
- provider: 'github',
104
- error: `Spec ${specId} not found`
105
- };
106
- }
107
- // 2. Get GitHub Project link
108
- const githubLink = spec.metadata.externalLinks?.github;
109
- if (!githubLink?.projectId) {
110
- return {
111
- success: false,
112
- specId,
113
- provider: 'github',
114
- error: 'Spec not linked to GitHub Project'
115
- };
116
- }
117
- const { owner, repo } = await this.detectRepo() || { owner: '', repo: '' };
118
- // 3. Fetch GitHub Project state
119
- const project = await this.fetchGitHubProject(owner, repo, githubLink.projectId);
120
- // 4. Detect conflicts
121
- const conflicts = await this.detectConflicts(spec, project);
122
- if (conflicts.length === 0) {
123
- console.log('✅ No conflicts - spec and GitHub in sync');
124
- return {
125
- success: true,
126
- specId,
127
- provider: 'github',
128
- externalId: project.id.toString(),
129
- url: project.url
130
- };
131
- }
132
- console.log(`⚠️ Detected ${conflicts.length} conflict(s)`);
133
- // 5. Resolve conflicts (GitHub wins by default for now)
134
- await this.resolveConflicts(spec, conflicts);
135
- console.log('✅ Sync FROM GitHub complete!');
136
- return {
137
- success: true,
138
- specId,
139
- provider: 'github',
140
- externalId: project.id.toString(),
141
- url: project.url,
142
- conflicts
143
- };
144
- }
145
- catch (error) {
146
- console.error('❌ Error syncing FROM GitHub:', error);
147
- return {
148
- success: false,
149
- specId,
150
- provider: 'github',
151
- error: error instanceof Error ? error.message : 'Unknown error'
152
- };
153
- }
73
+ }
74
+ /**
75
+ * Sync FROM GitHub Project to spec (bidirectional)
76
+ */
77
+ async syncFromGitHub(specId) {
78
+ console.log(`
79
+ \u{1F504} Syncing FROM GitHub to spec ${specId}...`);
80
+ try {
81
+ const spec = await this.specManager.loadSpec(specId);
82
+ if (!spec) {
83
+ return {
84
+ success: false,
85
+ specId,
86
+ provider: "github",
87
+ error: `Spec ${specId} not found`
88
+ };
89
+ }
90
+ const githubLink = spec.metadata.externalLinks?.github;
91
+ if (!githubLink?.projectId) {
92
+ return {
93
+ success: false,
94
+ specId,
95
+ provider: "github",
96
+ error: "Spec not linked to GitHub Project"
97
+ };
98
+ }
99
+ const { owner, repo } = await this.detectRepo() || { owner: "", repo: "" };
100
+ const project = await this.fetchGitHubProject(owner, repo, githubLink.projectId);
101
+ const conflicts = await this.detectConflicts(spec, project);
102
+ if (conflicts.length === 0) {
103
+ console.log("\u2705 No conflicts - spec and GitHub in sync");
104
+ return {
105
+ success: true,
106
+ specId,
107
+ provider: "github",
108
+ externalId: project.id.toString(),
109
+ url: project.url
110
+ };
111
+ }
112
+ console.log(`\u26A0\uFE0F Detected ${conflicts.length} conflict(s)`);
113
+ await this.resolveConflicts(spec, conflicts);
114
+ console.log("\u2705 Sync FROM GitHub complete!");
115
+ return {
116
+ success: true,
117
+ specId,
118
+ provider: "github",
119
+ externalId: project.id.toString(),
120
+ url: project.url,
121
+ conflicts
122
+ };
123
+ } catch (error) {
124
+ console.error("\u274C Error syncing FROM GitHub:", error);
125
+ return {
126
+ success: false,
127
+ specId,
128
+ provider: "github",
129
+ error: error instanceof Error ? error.message : "Unknown error"
130
+ };
154
131
  }
155
- /**
156
- * Create new GitHub Project for spec
157
- */
158
- async createGitHubProject(owner, repo, spec) {
159
- const projectTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
160
- const projectBody = this.generateProjectDescription(spec);
161
- // Use GraphQL to create project
162
- const query = `
132
+ }
133
+ /**
134
+ * Create new GitHub Project for spec
135
+ */
136
+ async createGitHubProject(owner, repo, spec) {
137
+ const projectTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
138
+ const projectBody = this.generateProjectDescription(spec);
139
+ const query = `
163
140
  mutation CreateProject($ownerId: ID!, $title: String!, $body: String!) {
164
141
  createProjectV2(input: {
165
142
  ownerId: $ownerId,
@@ -175,33 +152,31 @@ export class GitHubSpecSync {
175
152
  }
176
153
  }
177
154
  `;
178
- // Get owner ID first
179
- const ownerId = await this.getOwnerId(owner);
180
- const result = await this.executeGraphQL(query, {
181
- ownerId,
182
- title: projectTitle,
183
- body: projectBody
184
- });
185
- const project = result.data.createProjectV2.projectV2;
186
- console.log(` ✅ Created GitHub Project #${project.number}: ${project.url}`);
187
- return {
188
- id: parseInt(project.id, 10),
189
- title: project.title,
190
- number: project.number,
191
- url: project.url,
192
- state: 'open',
193
- owner,
194
- repo
195
- };
196
- }
197
- /**
198
- * Update existing GitHub Project
199
- */
200
- async updateGitHubProject(owner, repo, projectId, spec) {
201
- const projectTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
202
- const projectBody = this.generateProjectDescription(spec);
203
- // Use GraphQL to update project
204
- const query = `
155
+ const ownerId = await this.getOwnerId(owner);
156
+ const result = await this.executeGraphQL(query, {
157
+ ownerId,
158
+ title: projectTitle,
159
+ body: projectBody
160
+ });
161
+ const project = result.data.createProjectV2.projectV2;
162
+ console.log(` \u2705 Created GitHub Project #${project.number}: ${project.url}`);
163
+ return {
164
+ id: parseInt(project.id, 10),
165
+ title: project.title,
166
+ number: project.number,
167
+ url: project.url,
168
+ state: "open",
169
+ owner,
170
+ repo
171
+ };
172
+ }
173
+ /**
174
+ * Update existing GitHub Project
175
+ */
176
+ async updateGitHubProject(owner, repo, projectId, spec) {
177
+ const projectTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
178
+ const projectBody = this.generateProjectDescription(spec);
179
+ const query = `
205
180
  mutation UpdateProject($projectId: ID!, $title: String, $body: String) {
206
181
  updateProjectV2(input: {
207
182
  projectId: $projectId,
@@ -217,73 +192,66 @@ export class GitHubSpecSync {
217
192
  }
218
193
  }
219
194
  `;
220
- const result = await this.executeGraphQL(query, {
221
- projectId: projectId.toString(),
222
- title: projectTitle,
223
- body: projectBody
224
- });
225
- const project = result.data.updateProjectV2.projectV2;
226
- console.log(` Updated GitHub Project #${project.number}`);
227
- return {
228
- id: projectId,
229
- title: project.title,
230
- number: project.number,
231
- url: project.url,
232
- state: 'open',
233
- owner,
234
- repo
235
- };
195
+ const result = await this.executeGraphQL(query, {
196
+ projectId: projectId.toString(),
197
+ title: projectTitle,
198
+ body: projectBody
199
+ });
200
+ const project = result.data.updateProjectV2.projectV2;
201
+ console.log(` \u2705 Updated GitHub Project #${project.number}`);
202
+ return {
203
+ id: projectId,
204
+ title: project.title,
205
+ number: project.number,
206
+ url: project.url,
207
+ state: "open",
208
+ owner,
209
+ repo
210
+ };
211
+ }
212
+ /**
213
+ * Sync user stories as GitHub Issues
214
+ */
215
+ async syncUserStories(owner, repo, projectNumber, spec) {
216
+ const created = [];
217
+ const updated = [];
218
+ const deleted = [];
219
+ if (!spec.metadata.userStories || spec.metadata.userStories.length === 0) {
220
+ console.log(" \u2139\uFE0F No user stories to sync");
221
+ return { created, updated, deleted };
236
222
  }
237
- /**
238
- * Sync user stories as GitHub Issues
239
- */
240
- async syncUserStories(owner, repo, projectNumber, spec) {
241
- const created = [];
242
- const updated = [];
243
- const deleted = [];
244
- if (!spec.metadata.userStories || spec.metadata.userStories.length === 0) {
245
- console.log(' ℹ️ No user stories to sync');
246
- return { created, updated, deleted };
247
- }
248
- console.log(` Syncing ${spec.metadata.userStories.length} user stories...`);
249
- for (const us of spec.metadata.userStories) {
250
- // Create or update issue for each user story
251
- const issueTitle = `[${us.id}] ${us.title}`;
252
- const issueBody = this.generateIssueBody(us);
253
- // Check if issue already exists (by title pattern)
254
- const existingIssue = await this.findIssueByTitle(owner, repo, us.id);
255
- if (existingIssue) {
256
- // UPDATE existing issue
257
- await this.updateIssue(owner, repo, existingIssue.number, {
258
- title: issueTitle,
259
- body: issueBody,
260
- state: us.status === 'done' ? 'closed' : 'open'
261
- });
262
- updated.push(us.id);
263
- console.log(` ✅ Updated ${us.id}`);
264
- }
265
- else {
266
- // CREATE new issue
267
- const newIssue = await this.createIssue(owner, repo, {
268
- title: issueTitle,
269
- body: issueBody,
270
- labels: ['user-story', `spec:${spec.metadata.id}`, `priority:${us.priority}`]
271
- });
272
- created.push(us.id);
273
- console.log(` ✅ Created ${us.id} → Issue #${newIssue.number}`);
274
- }
275
- }
276
- return { created, updated, deleted };
223
+ console.log(` Syncing ${spec.metadata.userStories.length} user stories...`);
224
+ for (const us of spec.metadata.userStories) {
225
+ const issueTitle = `[${us.id}] ${us.title}`;
226
+ const issueBody = this.generateIssueBody(us);
227
+ const existingIssue = await this.findIssueByTitle(owner, repo, us.id);
228
+ if (existingIssue) {
229
+ await this.updateIssue(owner, repo, existingIssue.number, {
230
+ title: issueTitle,
231
+ body: issueBody,
232
+ state: us.status === "done" ? "closed" : "open"
233
+ });
234
+ updated.push(us.id);
235
+ console.log(` \u2705 Updated ${us.id}`);
236
+ } else {
237
+ const newIssue = await this.createIssue(owner, repo, {
238
+ title: issueTitle,
239
+ body: issueBody,
240
+ labels: ["user-story", `spec:${spec.metadata.id}`, `priority:${us.priority}`]
241
+ });
242
+ created.push(us.id);
243
+ console.log(` \u2705 Created ${us.id} \u2192 Issue #${newIssue.number}`);
244
+ }
277
245
  }
278
- /**
279
- * Generate project description from spec
280
- */
281
- generateProjectDescription(spec) {
282
- const progress = spec.metadata.progress;
283
- const progressText = progress
284
- ? `**Progress**: ${progress.percentComplete}% (${progress.completedUserStories}/${progress.totalUserStories} user stories)`
285
- : '**Progress**: N/A';
286
- return `
246
+ return { created, updated, deleted };
247
+ }
248
+ /**
249
+ * Generate project description from spec
250
+ */
251
+ generateProjectDescription(spec) {
252
+ const progress = spec.metadata.progress;
253
+ const progressText = progress ? `**Progress**: ${progress.percentComplete}% (${progress.completedUserStories}/${progress.totalUserStories} user stories)` : "**Progress**: N/A";
254
+ return `
287
255
  # ${spec.metadata.title}
288
256
 
289
257
  **Spec ID**: ${spec.metadata.id}
@@ -303,18 +271,16 @@ ${spec.metadata.userStories?.length || 0} user stories tracked in this project.
303
271
 
304
272
  ---
305
273
 
306
- 🤖 **Auto-synced from SpecWeave**
307
- Last updated: ${new Date().toISOString()}
274
+ \u{1F916} **Auto-synced from SpecWeave**
275
+ Last updated: ${(/* @__PURE__ */ new Date()).toISOString()}
308
276
  `.trim();
309
- }
310
- /**
311
- * Generate issue body from user story
312
- */
313
- generateIssueBody(us) {
314
- const acList = us.acceptanceCriteria
315
- .map(ac => `- [${ac.status === 'done' ? 'x' : ' '}] ${ac.description}`)
316
- .join('\n');
317
- return `
277
+ }
278
+ /**
279
+ * Generate issue body from user story
280
+ */
281
+ generateIssueBody(us) {
282
+ const acList = us.acceptanceCriteria.map((ac) => `- [${ac.status === "done" ? "x" : " "}] ${ac.description}`).join("\n");
283
+ return `
318
284
  ## User Story
319
285
 
320
286
  ${us.title}
@@ -328,178 +294,171 @@ ${acList}
328
294
  **Priority**: ${us.priority}
329
295
  **Status**: ${us.status}
330
296
 
331
- 🤖 **Auto-synced from SpecWeave**
297
+ \u{1F916} **Auto-synced from SpecWeave**
332
298
  `.trim();
299
+ }
300
+ /**
301
+ * Detect conflicts between spec and GitHub
302
+ */
303
+ async detectConflicts(spec, project) {
304
+ const conflicts = [];
305
+ const expectedTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
306
+ if (project.title !== expectedTitle) {
307
+ conflicts.push({
308
+ type: "metadata",
309
+ field: "title",
310
+ localValue: spec.metadata.title,
311
+ remoteValue: project.title,
312
+ resolution: "remote-wins",
313
+ description: "Project title differs from spec title"
314
+ });
333
315
  }
334
- /**
335
- * Detect conflicts between spec and GitHub
336
- */
337
- async detectConflicts(spec, project) {
338
- const conflicts = [];
339
- // Compare project title
340
- const expectedTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
341
- if (project.title !== expectedTitle) {
342
- conflicts.push({
343
- type: 'metadata',
344
- field: 'title',
345
- localValue: spec.metadata.title,
346
- remoteValue: project.title,
347
- resolution: 'remote-wins',
348
- description: 'Project title differs from spec title'
349
- });
350
- }
351
- // TODO: Compare user stories and their statuses
352
- return conflicts;
353
- }
354
- /**
355
- * Resolve conflicts
356
- */
357
- async resolveConflicts(spec, conflicts) {
358
- for (const conflict of conflicts) {
359
- if (conflict.resolution === 'remote-wins') {
360
- console.log(` 🔄 Resolving: ${conflict.description} (GitHub wins)`);
361
- // Update spec metadata from GitHub
362
- if (conflict.field === 'title') {
363
- await this.specManager.saveMetadata(spec.metadata.id, {
364
- title: conflict.remoteValue
365
- });
366
- }
367
- }
316
+ return conflicts;
317
+ }
318
+ /**
319
+ * Resolve conflicts
320
+ */
321
+ async resolveConflicts(spec, conflicts) {
322
+ for (const conflict of conflicts) {
323
+ if (conflict.resolution === "remote-wins") {
324
+ console.log(` \u{1F504} Resolving: ${conflict.description} (GitHub wins)`);
325
+ if (conflict.field === "title") {
326
+ await this.specManager.saveMetadata(spec.metadata.id, {
327
+ title: conflict.remoteValue
328
+ });
368
329
  }
330
+ }
369
331
  }
370
- /**
371
- * Execute GraphQL query against GitHub API
372
- */
373
- async executeGraphQL(query, variables) {
374
- const result = await execFileNoThrow('gh', [
375
- 'api',
376
- 'graphql',
377
- '-f',
378
- `query=${query}`,
379
- ...Object.entries(variables).flatMap(([key, value]) => ['-F', `${key}=${value}`])
380
- ]);
381
- if (result.error) {
382
- throw new Error(`GraphQL query failed: ${result.error}`);
383
- }
384
- return JSON.parse(result.stdout);
332
+ }
333
+ /**
334
+ * Execute GraphQL query against GitHub API
335
+ */
336
+ async executeGraphQL(query, variables) {
337
+ const result = await execFileNoThrow("gh", [
338
+ "api",
339
+ "graphql",
340
+ "-f",
341
+ `query=${query}`,
342
+ ...Object.entries(variables).flatMap(([key, value]) => ["-F", `${key}=${value}`])
343
+ ]);
344
+ if (result.error) {
345
+ throw new Error(`GraphQL query failed: ${result.error}`);
385
346
  }
386
- /**
387
- * Get owner ID (user or organization)
388
- */
389
- async getOwnerId(owner) {
390
- const query = `
347
+ return JSON.parse(result.stdout);
348
+ }
349
+ /**
350
+ * Get owner ID (user or organization)
351
+ */
352
+ async getOwnerId(owner) {
353
+ const query = `
391
354
  query GetOwner($login: String!) {
392
355
  repositoryOwner(login: $login) {
393
356
  id
394
357
  }
395
358
  }
396
359
  `;
397
- const result = await this.executeGraphQL(query, { login: owner });
398
- return result.data.repositoryOwner.id;
360
+ const result = await this.executeGraphQL(query, { login: owner });
361
+ return result.data.repositoryOwner.id;
362
+ }
363
+ /**
364
+ * Fetch GitHub Project details
365
+ */
366
+ async fetchGitHubProject(owner, repo, projectId) {
367
+ return {
368
+ id: projectId,
369
+ title: "Project Title",
370
+ number: 1,
371
+ url: "https://github.com/...",
372
+ state: "open",
373
+ owner,
374
+ repo
375
+ };
376
+ }
377
+ /**
378
+ * Find issue by title pattern
379
+ */
380
+ async findIssueByTitle(owner, repo, usId) {
381
+ const result = await execFileNoThrow("gh", [
382
+ "issue",
383
+ "list",
384
+ "--repo",
385
+ `${owner}/${repo}`,
386
+ "--search",
387
+ `"[${usId}]" in:title`,
388
+ "--json",
389
+ "number,title,body,state,labels",
390
+ "--limit",
391
+ "1"
392
+ ]);
393
+ if (result.error || !result.stdout) {
394
+ return null;
399
395
  }
400
- /**
401
- * Fetch GitHub Project details
402
- */
403
- async fetchGitHubProject(owner, repo, projectId) {
404
- // Placeholder - would use GraphQL to fetch project
405
- return {
406
- id: projectId,
407
- title: 'Project Title',
408
- number: 1,
409
- url: 'https://github.com/...',
410
- state: 'open',
411
- owner,
412
- repo
413
- };
396
+ const issues = JSON.parse(result.stdout);
397
+ return issues.length > 0 ? issues[0] : null;
398
+ }
399
+ /**
400
+ * Create GitHub issue
401
+ */
402
+ async createIssue(owner, repo, issue) {
403
+ const result = await execFileNoThrow("gh", [
404
+ "issue",
405
+ "create",
406
+ "--repo",
407
+ `${owner}/${repo}`,
408
+ "--title",
409
+ issue.title,
410
+ "--body",
411
+ issue.body,
412
+ "--label",
413
+ issue.labels.join(","),
414
+ "--json",
415
+ "number,title,body,state"
416
+ ]);
417
+ if (result.error) {
418
+ throw new Error(`Failed to create issue: ${result.error}`);
414
419
  }
415
- /**
416
- * Find issue by title pattern
417
- */
418
- async findIssueByTitle(owner, repo, usId) {
419
- const result = await execFileNoThrow('gh', [
420
- 'issue',
421
- 'list',
422
- '--repo',
423
- `${owner}/${repo}`,
424
- '--search',
425
- `"[${usId}]" in:title`,
426
- '--json',
427
- 'number,title,body,state,labels',
428
- '--limit',
429
- '1'
430
- ]);
431
- if (result.error || !result.stdout) {
432
- return null;
433
- }
434
- const issues = JSON.parse(result.stdout);
435
- return issues.length > 0 ? issues[0] : null;
420
+ return JSON.parse(result.stdout);
421
+ }
422
+ /**
423
+ * Update GitHub issue
424
+ */
425
+ async updateIssue(owner, repo, issueNumber, updates) {
426
+ const args = ["issue", "edit", issueNumber.toString(), "--repo", `${owner}/${repo}`];
427
+ if (updates.title) {
428
+ args.push("--title", updates.title);
436
429
  }
437
- /**
438
- * Create GitHub issue
439
- */
440
- async createIssue(owner, repo, issue) {
441
- const result = await execFileNoThrow('gh', [
442
- 'issue',
443
- 'create',
444
- '--repo',
445
- `${owner}/${repo}`,
446
- '--title',
447
- issue.title,
448
- '--body',
449
- issue.body,
450
- '--label',
451
- issue.labels.join(','),
452
- '--json',
453
- 'number,title,body,state'
454
- ]);
455
- if (result.error) {
456
- throw new Error(`Failed to create issue: ${result.error}`);
457
- }
458
- return JSON.parse(result.stdout);
430
+ if (updates.body) {
431
+ args.push("--body", updates.body);
459
432
  }
460
- /**
461
- * Update GitHub issue
462
- */
463
- async updateIssue(owner, repo, issueNumber, updates) {
464
- const args = ['issue', 'edit', issueNumber.toString(), '--repo', `${owner}/${repo}`];
465
- if (updates.title) {
466
- args.push('--title', updates.title);
467
- }
468
- if (updates.body) {
469
- args.push('--body', updates.body);
470
- }
471
- if (updates.state === 'closed') {
472
- args.push('--state', 'closed');
473
- }
474
- else if (updates.state === 'open') {
475
- args.push('--state', 'open');
476
- }
477
- const result = await execFileNoThrow('gh', args);
478
- if (result.error) {
479
- throw new Error(`Failed to update issue #${issueNumber}: ${result.error}`);
480
- }
433
+ if (updates.state === "closed") {
434
+ args.push("--state", "closed");
435
+ } else if (updates.state === "open") {
436
+ args.push("--state", "open");
481
437
  }
482
- /**
483
- * Detect GitHub repository from git remote
484
- */
485
- async detectRepo() {
486
- const result = await execFileNoThrow('git', ['remote', 'get-url', 'origin']);
487
- if (result.error || !result.stdout) {
488
- return null;
489
- }
490
- const remoteUrl = result.stdout.trim();
491
- // Parse GitHub URL
492
- // Examples:
493
- // - https://github.com/owner/repo.git
494
- // - git@github.com:owner/repo.git
495
- const httpsMatch = remoteUrl.match(/github\.com[/:]([\w-]+)\/([\w-]+?)(\.git)?$/);
496
- if (httpsMatch) {
497
- return {
498
- owner: httpsMatch[1],
499
- repo: httpsMatch[2]
500
- };
501
- }
502
- return null;
438
+ const result = await execFileNoThrow("gh", args);
439
+ if (result.error) {
440
+ throw new Error(`Failed to update issue #${issueNumber}: ${result.error}`);
441
+ }
442
+ }
443
+ /**
444
+ * Detect GitHub repository from git remote
445
+ */
446
+ async detectRepo() {
447
+ const result = await execFileNoThrow("git", ["remote", "get-url", "origin"]);
448
+ if (result.error || !result.stdout) {
449
+ return null;
450
+ }
451
+ const remoteUrl = result.stdout.trim();
452
+ const httpsMatch = remoteUrl.match(/github\.com[/:]([\w-]+)\/([\w-]+?)(\.git)?$/);
453
+ if (httpsMatch) {
454
+ return {
455
+ owner: httpsMatch[1],
456
+ repo: httpsMatch[2]
457
+ };
503
458
  }
459
+ return null;
460
+ }
504
461
  }
505
- //# sourceMappingURL=github-spec-sync.js.map
462
+ export {
463
+ GitHubSpecSync
464
+ };