specweave 1.0.506 → 1.0.508

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 (1038) hide show
  1. package/.claude-plugin/README.md +25 -32
  2. package/.claude-plugin/marketplace.json +1 -78
  3. package/dist/plugins/specweave/lib/features/release/dashboard-generator.d.ts.map +1 -0
  4. package/dist/plugins/specweave/lib/features/release/dashboard-generator.js.map +1 -0
  5. package/dist/plugins/specweave/lib/features/release/dora-tracker.d.ts.map +1 -0
  6. package/dist/plugins/specweave/lib/features/release/dora-tracker.js.map +1 -0
  7. package/dist/plugins/specweave/lib/integrations/ado/ado-ac-checkbox-sync.d.ts +44 -0
  8. package/dist/plugins/specweave/lib/integrations/ado/ado-ac-checkbox-sync.d.ts.map +1 -0
  9. package/dist/plugins/specweave/lib/integrations/ado/ado-ac-checkbox-sync.js +236 -0
  10. package/dist/plugins/specweave/lib/integrations/ado/ado-ac-checkbox-sync.js.map +1 -0
  11. package/dist/plugins/specweave/lib/integrations/ado/ado-board-resolver.d.ts.map +1 -0
  12. package/dist/plugins/specweave/lib/integrations/ado/ado-board-resolver.js.map +1 -0
  13. package/dist/plugins/specweave/lib/integrations/ado/ado-client-v2.d.ts +139 -0
  14. package/dist/plugins/specweave/lib/integrations/ado/ado-client-v2.d.ts.map +1 -0
  15. package/dist/plugins/specweave/lib/integrations/ado/ado-client-v2.js.map +1 -0
  16. package/dist/plugins/specweave/lib/integrations/ado/ado-client.d.ts.map +1 -0
  17. package/dist/plugins/specweave/lib/integrations/ado/ado-client.js.map +1 -0
  18. package/dist/plugins/specweave/lib/integrations/ado/ado-duplicate-detector.d.ts +100 -0
  19. package/dist/plugins/specweave/lib/integrations/ado/ado-duplicate-detector.d.ts.map +1 -0
  20. package/dist/plugins/specweave/lib/integrations/ado/ado-duplicate-detector.js +292 -0
  21. package/dist/plugins/specweave/lib/integrations/ado/ado-duplicate-detector.js.map +1 -0
  22. package/dist/plugins/specweave/lib/integrations/ado/ado-permission-gate.d.ts.map +1 -0
  23. package/dist/plugins/specweave/lib/integrations/ado/ado-permission-gate.js.map +1 -0
  24. package/dist/plugins/specweave/lib/integrations/ado/ado-profile-resolver.d.ts.map +1 -0
  25. package/dist/plugins/specweave/lib/integrations/ado/ado-profile-resolver.js.map +1 -0
  26. package/dist/plugins/specweave/lib/integrations/ado/ado-pull-sync.d.ts.map +1 -0
  27. package/dist/plugins/specweave/lib/integrations/ado/ado-pull-sync.js.map +1 -0
  28. package/dist/plugins/specweave/lib/integrations/ado/ado-rate-limiter.d.ts.map +1 -0
  29. package/dist/plugins/specweave/lib/integrations/ado/ado-rate-limiter.js.map +1 -0
  30. package/dist/plugins/specweave/lib/integrations/ado/ado-spec-commit-sync.d.ts +38 -0
  31. package/dist/plugins/specweave/lib/integrations/ado/ado-spec-commit-sync.d.ts.map +1 -0
  32. package/dist/plugins/specweave/lib/integrations/ado/ado-spec-commit-sync.js +210 -0
  33. package/dist/plugins/specweave/lib/integrations/ado/ado-spec-commit-sync.js.map +1 -0
  34. package/dist/plugins/specweave/lib/integrations/ado/ado-spec-content-sync.d.ts +28 -0
  35. package/dist/plugins/specweave/lib/integrations/ado/ado-spec-content-sync.d.ts.map +1 -0
  36. package/dist/plugins/specweave/lib/integrations/ado/ado-spec-content-sync.js +300 -0
  37. package/dist/plugins/specweave/lib/integrations/ado/ado-spec-content-sync.js.map +1 -0
  38. package/dist/plugins/specweave/lib/integrations/ado/ado-spec-sync.d.ts +147 -0
  39. package/dist/plugins/specweave/lib/integrations/ado/ado-spec-sync.d.ts.map +1 -0
  40. package/dist/plugins/specweave/lib/integrations/ado/ado-spec-sync.js +749 -0
  41. package/dist/plugins/specweave/lib/integrations/ado/ado-spec-sync.js.map +1 -0
  42. package/dist/plugins/specweave/lib/integrations/ado/ado-status-sync.d.ts +79 -0
  43. package/dist/plugins/specweave/lib/integrations/ado/ado-status-sync.d.ts.map +1 -0
  44. package/dist/plugins/specweave/lib/integrations/ado/ado-status-sync.js +162 -0
  45. package/dist/plugins/specweave/lib/integrations/ado/ado-status-sync.js.map +1 -0
  46. package/dist/plugins/specweave/lib/integrations/ado/conflict-resolver.d.ts.map +1 -0
  47. package/dist/plugins/specweave/lib/integrations/ado/conflict-resolver.js +439 -0
  48. package/dist/plugins/specweave/lib/integrations/ado/conflict-resolver.js.map +1 -0
  49. package/dist/plugins/specweave/lib/integrations/ado/per-us-sync.d.ts +131 -0
  50. package/dist/plugins/specweave/lib/integrations/ado/per-us-sync.d.ts.map +1 -0
  51. package/dist/plugins/specweave/lib/integrations/ado/per-us-sync.js +322 -0
  52. package/dist/plugins/specweave/lib/integrations/ado/per-us-sync.js.map +1 -0
  53. package/dist/plugins/specweave/lib/integrations/github/CodeValidator.d.ts.map +1 -0
  54. package/dist/plugins/specweave/lib/integrations/github/CodeValidator.js +219 -0
  55. package/dist/plugins/specweave/lib/integrations/github/CodeValidator.js.map +1 -0
  56. package/dist/plugins/specweave/lib/integrations/github/IssueStateManager.d.ts.map +1 -0
  57. package/dist/plugins/specweave/lib/integrations/github/IssueStateManager.js.map +1 -0
  58. package/dist/plugins/specweave/lib/integrations/github/completion-calculator.d.ts.map +1 -0
  59. package/dist/plugins/specweave/lib/integrations/github/completion-calculator.js.map +1 -0
  60. package/dist/plugins/specweave/lib/integrations/github/duplicate-detector.d.ts.map +1 -0
  61. package/dist/plugins/specweave/lib/integrations/github/duplicate-detector.js +423 -0
  62. package/dist/plugins/specweave/lib/integrations/github/duplicate-detector.js.map +1 -0
  63. package/dist/plugins/specweave/lib/integrations/github/github-ac-checkbox-sync.d.ts +54 -0
  64. package/dist/plugins/specweave/lib/integrations/github/github-ac-checkbox-sync.d.ts.map +1 -0
  65. package/dist/plugins/specweave/lib/integrations/github/github-ac-checkbox-sync.js +305 -0
  66. package/dist/plugins/specweave/lib/integrations/github/github-ac-checkbox-sync.js.map +1 -0
  67. package/dist/plugins/specweave/lib/integrations/github/github-ac-comment-poster.d.ts.map +1 -0
  68. package/dist/plugins/specweave/lib/integrations/github/github-ac-comment-poster.js +232 -0
  69. package/dist/plugins/specweave/lib/integrations/github/github-ac-comment-poster.js.map +1 -0
  70. package/dist/plugins/specweave/lib/integrations/github/github-batch-sync.d.ts.map +1 -0
  71. package/dist/plugins/specweave/lib/integrations/github/github-batch-sync.js.map +1 -0
  72. package/dist/plugins/specweave/lib/integrations/github/github-board-resolver-v2.d.ts.map +1 -0
  73. package/dist/plugins/specweave/lib/integrations/github/github-board-resolver-v2.js.map +1 -0
  74. package/dist/plugins/specweave/lib/integrations/github/github-client-v2.d.ts +214 -0
  75. package/dist/plugins/specweave/lib/integrations/github/github-client-v2.d.ts.map +1 -0
  76. package/dist/plugins/specweave/lib/integrations/github/github-client-v2.js +812 -0
  77. package/dist/plugins/specweave/lib/integrations/github/github-client-v2.js.map +1 -0
  78. package/dist/plugins/specweave/lib/integrations/github/github-client.d.ts.map +1 -0
  79. package/dist/plugins/specweave/lib/integrations/github/github-client.js.map +1 -0
  80. package/dist/plugins/specweave/lib/integrations/github/github-conflict-resolver.d.ts.map +1 -0
  81. package/dist/plugins/specweave/lib/integrations/github/github-conflict-resolver.js.map +1 -0
  82. package/dist/plugins/specweave/lib/integrations/github/github-cross-repo-sync.d.ts.map +1 -0
  83. package/dist/plugins/specweave/lib/integrations/github/github-cross-repo-sync.js +172 -0
  84. package/dist/plugins/specweave/lib/integrations/github/github-cross-repo-sync.js.map +1 -0
  85. package/dist/plugins/specweave/lib/integrations/github/github-feature-sync-cli.d.ts.map +1 -0
  86. package/dist/plugins/specweave/lib/integrations/github/github-feature-sync-cli.js.map +1 -0
  87. package/dist/plugins/specweave/lib/integrations/github/github-feature-sync.d.ts.map +1 -0
  88. package/dist/plugins/specweave/lib/integrations/github/github-feature-sync.js +1112 -0
  89. package/dist/plugins/specweave/lib/integrations/github/github-feature-sync.js.map +1 -0
  90. package/dist/plugins/specweave/lib/integrations/github/github-field-sync.d.ts.map +1 -0
  91. package/dist/plugins/specweave/lib/integrations/github/github-field-sync.js.map +1 -0
  92. package/dist/plugins/specweave/lib/integrations/github/github-graphql-client.d.ts.map +1 -0
  93. package/dist/plugins/specweave/lib/integrations/github/github-graphql-client.js.map +1 -0
  94. package/dist/plugins/specweave/lib/integrations/github/github-issue-body-generator.d.ts.map +1 -0
  95. package/dist/plugins/specweave/lib/integrations/github/github-issue-body-generator.js.map +1 -0
  96. package/dist/plugins/specweave/lib/integrations/github/github-issue-body-parser.d.ts.map +1 -0
  97. package/dist/plugins/specweave/lib/integrations/github/github-issue-body-parser.js.map +1 -0
  98. package/dist/plugins/specweave/lib/integrations/github/github-issue-updater.d.ts.map +1 -0
  99. package/dist/plugins/specweave/lib/integrations/github/github-issue-updater.js +339 -0
  100. package/dist/plugins/specweave/lib/integrations/github/github-issue-updater.js.map +1 -0
  101. package/dist/plugins/specweave/lib/integrations/github/github-pull-sync.d.ts +94 -0
  102. package/dist/plugins/specweave/lib/integrations/github/github-pull-sync.d.ts.map +1 -0
  103. package/dist/plugins/specweave/lib/integrations/github/github-pull-sync.js +232 -0
  104. package/dist/plugins/specweave/lib/integrations/github/github-pull-sync.js.map +1 -0
  105. package/dist/plugins/specweave/lib/integrations/github/github-push-sync.d.ts.map +1 -0
  106. package/dist/plugins/specweave/lib/integrations/github/github-push-sync.js +127 -0
  107. package/dist/plugins/specweave/lib/integrations/github/github-push-sync.js.map +1 -0
  108. package/dist/plugins/specweave/lib/integrations/github/github-rate-limiter.d.ts.map +1 -0
  109. package/dist/plugins/specweave/lib/integrations/github/github-rate-limiter.js +109 -0
  110. package/dist/plugins/specweave/lib/integrations/github/github-rate-limiter.js.map +1 -0
  111. package/dist/plugins/specweave/lib/integrations/github/github-spec-commit-sync.d.ts +37 -0
  112. package/dist/plugins/specweave/lib/integrations/github/github-spec-commit-sync.d.ts.map +1 -0
  113. package/dist/plugins/specweave/lib/integrations/github/github-spec-commit-sync.js +209 -0
  114. package/dist/plugins/specweave/lib/integrations/github/github-spec-commit-sync.js.map +1 -0
  115. package/dist/plugins/specweave/lib/integrations/github/github-spec-content-sync.d.ts +28 -0
  116. package/dist/plugins/specweave/lib/integrations/github/github-spec-content-sync.d.ts.map +1 -0
  117. package/dist/plugins/specweave/lib/integrations/github/github-spec-content-sync.js +365 -0
  118. package/dist/plugins/specweave/lib/integrations/github/github-spec-content-sync.js.map +1 -0
  119. package/dist/plugins/specweave/lib/integrations/github/github-spec-frontmatter-updater.d.ts +21 -0
  120. package/dist/plugins/specweave/lib/integrations/github/github-spec-frontmatter-updater.d.ts.map +1 -0
  121. package/dist/plugins/specweave/lib/integrations/github/github-spec-frontmatter-updater.js.map +1 -0
  122. package/dist/plugins/specweave/lib/integrations/github/github-spec-sync.d.ts +225 -0
  123. package/dist/plugins/specweave/lib/integrations/github/github-spec-sync.d.ts.map +1 -0
  124. package/dist/plugins/specweave/lib/integrations/github/github-spec-sync.js +974 -0
  125. package/dist/plugins/specweave/lib/integrations/github/github-spec-sync.js.map +1 -0
  126. package/dist/plugins/specweave/lib/integrations/github/github-sync-orchestrator.d.ts +47 -0
  127. package/dist/plugins/specweave/lib/integrations/github/github-sync-orchestrator.d.ts.map +1 -0
  128. package/dist/plugins/specweave/lib/integrations/github/github-sync-orchestrator.js.map +1 -0
  129. package/dist/plugins/specweave/lib/integrations/github/github-us-auto-closer.d.ts.map +1 -0
  130. package/dist/plugins/specweave/lib/integrations/github/github-us-auto-closer.js +219 -0
  131. package/dist/plugins/specweave/lib/integrations/github/github-us-auto-closer.js.map +1 -0
  132. package/dist/plugins/specweave/lib/integrations/github/index.d.ts.map +1 -0
  133. package/dist/plugins/specweave/lib/integrations/github/index.js.map +1 -0
  134. package/dist/plugins/specweave/lib/integrations/github/per-us-sync.d.ts +126 -0
  135. package/dist/plugins/specweave/lib/integrations/github/per-us-sync.d.ts.map +1 -0
  136. package/dist/plugins/specweave/lib/integrations/github/per-us-sync.js +394 -0
  137. package/dist/plugins/specweave/lib/integrations/github/per-us-sync.js.map +1 -0
  138. package/dist/plugins/specweave/lib/integrations/github/progress-comment-builder.d.ts.map +1 -0
  139. package/dist/plugins/specweave/lib/integrations/github/progress-comment-builder.js.map +1 -0
  140. package/dist/plugins/specweave/lib/integrations/github/types.d.ts.map +1 -0
  141. package/dist/plugins/specweave/lib/integrations/github/types.js.map +1 -0
  142. package/dist/plugins/specweave/lib/integrations/github/user-story-content-builder.d.ts.map +1 -0
  143. package/dist/plugins/specweave/lib/integrations/github/user-story-content-builder.js +310 -0
  144. package/dist/plugins/specweave/lib/integrations/github/user-story-content-builder.js.map +1 -0
  145. package/dist/plugins/specweave/lib/integrations/github/user-story-issue-builder.d.ts.map +1 -0
  146. package/dist/plugins/specweave/lib/integrations/github/user-story-issue-builder.js.map +1 -0
  147. package/dist/plugins/specweave/lib/integrations/jira/content-format-adapter.d.ts.map +1 -0
  148. package/dist/plugins/specweave/lib/integrations/jira/content-format-adapter.js.map +1 -0
  149. package/dist/plugins/specweave/lib/integrations/jira/jira-ac-checkbox-sync.d.ts +47 -0
  150. package/dist/plugins/specweave/lib/integrations/jira/jira-ac-checkbox-sync.d.ts.map +1 -0
  151. package/dist/plugins/specweave/lib/integrations/jira/jira-ac-checkbox-sync.js +307 -0
  152. package/dist/plugins/specweave/lib/integrations/jira/jira-ac-checkbox-sync.js.map +1 -0
  153. package/dist/plugins/specweave/lib/integrations/jira/jira-board-resolver.d.ts +50 -0
  154. package/dist/plugins/specweave/lib/integrations/jira/jira-board-resolver.d.ts.map +1 -0
  155. package/dist/plugins/specweave/lib/integrations/jira/jira-board-resolver.js.map +1 -0
  156. package/dist/plugins/specweave/lib/integrations/jira/jira-deployment-detector.d.ts.map +1 -0
  157. package/dist/plugins/specweave/lib/integrations/jira/jira-deployment-detector.js.map +1 -0
  158. package/dist/plugins/specweave/lib/integrations/jira/jira-duplicate-detector.d.ts +103 -0
  159. package/dist/plugins/specweave/lib/integrations/jira/jira-duplicate-detector.d.ts.map +1 -0
  160. package/dist/plugins/specweave/lib/integrations/jira/jira-duplicate-detector.js +295 -0
  161. package/dist/plugins/specweave/lib/integrations/jira/jira-duplicate-detector.js.map +1 -0
  162. package/dist/plugins/specweave/lib/integrations/jira/jira-epic-sync.d.ts +67 -0
  163. package/dist/plugins/specweave/lib/integrations/jira/jira-epic-sync.d.ts.map +1 -0
  164. package/dist/plugins/specweave/lib/integrations/jira/jira-epic-sync.js +286 -0
  165. package/dist/plugins/specweave/lib/integrations/jira/jira-epic-sync.js.map +1 -0
  166. package/dist/plugins/specweave/lib/integrations/jira/jira-field-discovery.d.ts.map +1 -0
  167. package/dist/plugins/specweave/lib/integrations/jira/jira-field-discovery.js.map +1 -0
  168. package/dist/plugins/specweave/lib/integrations/jira/jira-paginated-search.d.ts.map +1 -0
  169. package/dist/plugins/specweave/lib/integrations/jira/jira-paginated-search.js.map +1 -0
  170. package/dist/plugins/specweave/lib/integrations/jira/jira-permission-gate.d.ts.map +1 -0
  171. package/dist/plugins/specweave/lib/integrations/jira/jira-permission-gate.js.map +1 -0
  172. package/dist/plugins/specweave/lib/integrations/jira/jira-spec-commit-sync.d.ts +43 -0
  173. package/dist/plugins/specweave/lib/integrations/jira/jira-spec-commit-sync.d.ts.map +1 -0
  174. package/dist/plugins/specweave/lib/integrations/jira/jira-spec-commit-sync.js +284 -0
  175. package/dist/plugins/specweave/lib/integrations/jira/jira-spec-commit-sync.js.map +1 -0
  176. package/dist/plugins/specweave/lib/integrations/jira/jira-spec-content-sync.d.ts +33 -0
  177. package/dist/plugins/specweave/lib/integrations/jira/jira-spec-content-sync.d.ts.map +1 -0
  178. package/dist/plugins/specweave/lib/integrations/jira/jira-spec-content-sync.js +294 -0
  179. package/dist/plugins/specweave/lib/integrations/jira/jira-spec-content-sync.js.map +1 -0
  180. package/dist/plugins/specweave/lib/integrations/jira/jira-spec-sync.d.ts +180 -0
  181. package/dist/plugins/specweave/lib/integrations/jira/jira-spec-sync.d.ts.map +1 -0
  182. package/dist/plugins/specweave/lib/integrations/jira/jira-spec-sync.js +757 -0
  183. package/dist/plugins/specweave/lib/integrations/jira/jira-spec-sync.js.map +1 -0
  184. package/dist/plugins/specweave/lib/integrations/jira/jira-status-sync.d.ts +116 -0
  185. package/dist/plugins/specweave/lib/integrations/jira/jira-status-sync.d.ts.map +1 -0
  186. package/dist/plugins/specweave/lib/integrations/jira/jira-status-sync.js +302 -0
  187. package/dist/plugins/specweave/lib/integrations/jira/jira-status-sync.js.map +1 -0
  188. package/dist/plugins/specweave/lib/integrations/jira/metadata-paths.d.ts.map +1 -0
  189. package/dist/plugins/specweave/lib/integrations/jira/metadata-paths.js.map +1 -0
  190. package/dist/plugins/specweave/lib/integrations/jira/per-us-sync.d.ts +117 -0
  191. package/dist/plugins/specweave/lib/integrations/jira/per-us-sync.d.ts.map +1 -0
  192. package/dist/plugins/specweave/lib/integrations/jira/per-us-sync.js +274 -0
  193. package/dist/plugins/specweave/lib/integrations/jira/per-us-sync.js.map +1 -0
  194. package/dist/plugins/specweave/lib/integrations/jira/reorganization-detector.d.ts +80 -0
  195. package/dist/plugins/specweave/lib/integrations/jira/reorganization-detector.d.ts.map +1 -0
  196. package/dist/plugins/specweave/lib/integrations/jira/reorganization-detector.js.map +1 -0
  197. package/dist/plugins/specweave/lib/integrations/jira/setup-wizard.d.ts +29 -0
  198. package/dist/plugins/specweave/lib/integrations/jira/setup-wizard.d.ts.map +1 -0
  199. package/dist/plugins/specweave/lib/integrations/jira/setup-wizard.js +198 -0
  200. package/dist/plugins/specweave/lib/integrations/jira/setup-wizard.js.map +1 -0
  201. package/dist/plugins/specweave/lib/vendor/sync/github-reconciler.d.ts +1 -1
  202. package/dist/plugins/specweave/lib/vendor/sync/github-reconciler.js +2 -2
  203. package/dist/plugins/specweave/lib/vendor/sync/github-reconciler.js.map +1 -1
  204. package/dist/src/cli/commands/refresh-plugins.d.ts.map +1 -1
  205. package/dist/src/cli/commands/refresh-plugins.js +9 -1
  206. package/dist/src/cli/commands/refresh-plugins.js.map +1 -1
  207. package/dist/src/cli/commands/sync-progress.js +1 -1
  208. package/dist/src/cli/commands/sync-progress.js.map +1 -1
  209. package/dist/src/cli/helpers/async-project-loader.js +1 -1
  210. package/dist/src/cli/helpers/async-project-loader.js.map +1 -1
  211. package/dist/src/cli/helpers/cancelation-handler.d.ts +1 -1
  212. package/dist/src/cli/helpers/cancelation-handler.js +1 -1
  213. package/dist/src/cli/helpers/init/ado-repo-cloning.js +1 -1
  214. package/dist/src/cli/helpers/init/ado-repo-cloning.js.map +1 -1
  215. package/dist/src/cli/helpers/init/github-repo-cloning.js +1 -1
  216. package/dist/src/cli/helpers/init/github-repo-cloning.js.map +1 -1
  217. package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts +2 -2
  218. package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts.map +1 -1
  219. package/dist/src/cli/helpers/init/jira-ado-auto-detect.js +2 -2
  220. package/dist/src/cli/helpers/init/jira-ado-auto-detect.js.map +1 -1
  221. package/dist/src/cli/helpers/init/plugin-installer.d.ts.map +1 -1
  222. package/dist/src/cli/helpers/init/plugin-installer.js +11 -3
  223. package/dist/src/cli/helpers/init/plugin-installer.js.map +1 -1
  224. package/dist/src/cli/helpers/issue-tracker/ado-area-selection.js +1 -1
  225. package/dist/src/cli/helpers/issue-tracker/ado-area-selection.js.map +1 -1
  226. package/dist/src/cli/helpers/issue-tracker/ado.js +3 -3
  227. package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -1
  228. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js +1 -1
  229. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js.map +1 -1
  230. package/dist/src/cli/helpers/issue-tracker/github.js +4 -4
  231. package/dist/src/cli/helpers/issue-tracker/github.js.map +1 -1
  232. package/dist/src/cli/helpers/issue-tracker/index.js +1 -1
  233. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  234. package/dist/src/cli/helpers/issue-tracker/jira-board-selection.js +1 -1
  235. package/dist/src/cli/helpers/issue-tracker/jira-board-selection.js.map +1 -1
  236. package/dist/src/core/ac-progress-sync.js +5 -5
  237. package/dist/src/core/ac-progress-sync.js.map +1 -1
  238. package/dist/src/core/analytics/types.d.ts +1 -1
  239. package/dist/src/core/analytics/types.d.ts.map +1 -1
  240. package/dist/src/core/config/types.d.ts +1 -1
  241. package/dist/src/core/hooks/github-project-sync.js +4 -4
  242. package/dist/src/core/hooks/github-project-sync.js.map +1 -1
  243. package/dist/src/core/living-docs/living-docs-sync.js +5 -5
  244. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  245. package/dist/src/core/types/plugin.d.ts +1 -1
  246. package/dist/src/core/types/plugin.d.ts.map +1 -1
  247. package/dist/src/integrations/ado/ado-client-factory.d.ts +1 -1
  248. package/dist/src/integrations/ado/ado-client-factory.d.ts.map +1 -1
  249. package/dist/src/integrations/ado/ado-client-factory.js +1 -1
  250. package/dist/src/integrations/ado/ado-client-factory.js.map +1 -1
  251. package/dist/src/integrations/ado/ado-dependency-loader.js +1 -1
  252. package/dist/src/integrations/ado/ado-dependency-loader.js.map +1 -1
  253. package/dist/src/living-docs/smart-doc-organizer.js +1 -1
  254. package/dist/src/living-docs/smart-doc-organizer.js.map +1 -1
  255. package/dist/src/sync/ado-reconciler.d.ts +1 -1
  256. package/dist/src/sync/ado-reconciler.js +1 -1
  257. package/dist/src/sync/external-change-puller.js +1 -1
  258. package/dist/src/sync/external-change-puller.js.map +1 -1
  259. package/dist/src/sync/external-issue-auto-creator.js +1 -1
  260. package/dist/src/sync/external-issue-auto-creator.js.map +1 -1
  261. package/dist/src/sync/external-item-sync-service.js +2 -2
  262. package/dist/src/sync/external-item-sync-service.js.map +1 -1
  263. package/dist/src/sync/format-preservation-sync.d.ts +1 -1
  264. package/dist/src/sync/format-preservation-sync.d.ts.map +1 -1
  265. package/dist/src/sync/format-preservation-sync.js +1 -1
  266. package/dist/src/sync/format-preservation-sync.js.map +1 -1
  267. package/dist/src/sync/github-reconciler.d.ts +1 -1
  268. package/dist/src/sync/github-reconciler.js +2 -2
  269. package/dist/src/sync/github-reconciler.js.map +1 -1
  270. package/dist/src/sync/github-sync-wrapper.d.ts +2 -2
  271. package/dist/src/sync/github-sync-wrapper.d.ts.map +1 -1
  272. package/dist/src/sync/github-sync-wrapper.js +1 -1
  273. package/dist/src/sync/github-sync-wrapper.js.map +1 -1
  274. package/dist/src/sync/jira-reconciler.d.ts +1 -1
  275. package/dist/src/sync/jira-reconciler.js +1 -1
  276. package/dist/src/sync/living-docs-updater.d.ts +1 -1
  277. package/dist/src/sync/living-docs-updater.d.ts.map +1 -1
  278. package/dist/src/sync/living-docs-updater.js +1 -1
  279. package/dist/src/sync/living-docs-updater.js.map +1 -1
  280. package/dist/src/sync/pr-linker.js +1 -1
  281. package/dist/src/sync/pr-linker.js.map +1 -1
  282. package/dist/src/sync/providers/github.d.ts +1 -1
  283. package/dist/src/sync/providers/github.js +1 -1
  284. package/dist/src/sync/sync-coordinator.js +4 -4
  285. package/dist/src/sync/sync-coordinator.js.map +1 -1
  286. package/dist/src/utils/cleanup-stale-plugins.d.ts.map +1 -1
  287. package/dist/src/utils/cleanup-stale-plugins.js +7 -0
  288. package/dist/src/utils/cleanup-stale-plugins.js.map +1 -1
  289. package/dist/src/utils/docs-validator.js +1 -1
  290. package/dist/src/utils/docs-validator.js.map +1 -1
  291. package/dist/src/utils/plugin-copier.d.ts +16 -0
  292. package/dist/src/utils/plugin-copier.d.ts.map +1 -1
  293. package/dist/src/utils/plugin-copier.js +79 -0
  294. package/dist/src/utils/plugin-copier.js.map +1 -1
  295. package/package.json +1 -1
  296. package/plugins/PLUGINS-INDEX.md +23 -42
  297. package/plugins/specweave/.claude-plugin/plugin.json +9 -2
  298. package/plugins/specweave/lib/integrations/ado/ado-ac-checkbox-sync.js +241 -0
  299. package/plugins/specweave/lib/integrations/ado/ado-ac-checkbox-sync.ts +311 -0
  300. package/plugins/specweave/lib/integrations/ado/ado-client-v2.d.ts +134 -0
  301. package/plugins/specweave/lib/integrations/ado/ado-client-v2.ts +742 -0
  302. package/plugins/specweave/lib/integrations/ado/ado-duplicate-detector.js +279 -0
  303. package/plugins/specweave/lib/integrations/ado/ado-duplicate-detector.ts +408 -0
  304. package/plugins/specweave/lib/integrations/ado/ado-hierarchical-sync.d.ts +40 -0
  305. package/plugins/specweave/lib/integrations/ado/ado-hierarchical-sync.js +300 -0
  306. package/plugins/specweave/lib/integrations/ado/ado-hierarchical-sync.ts +554 -0
  307. package/plugins/specweave/lib/integrations/ado/ado-multi-project-sync.js +486 -0
  308. package/plugins/specweave/lib/integrations/ado/ado-multi-project-sync.ts +675 -0
  309. package/plugins/specweave/lib/integrations/ado/ado-project-detector.js +502 -0
  310. package/plugins/specweave/lib/integrations/ado/ado-project-detector.ts +560 -0
  311. package/plugins/specweave/lib/integrations/ado/ado-spec-commit-sync.d.ts +38 -0
  312. package/plugins/specweave/lib/integrations/ado/ado-spec-commit-sync.js +189 -0
  313. package/plugins/specweave/lib/integrations/ado/ado-spec-commit-sync.ts +288 -0
  314. package/plugins/specweave/lib/integrations/ado/ado-spec-content-sync.js +249 -0
  315. package/plugins/specweave/lib/integrations/ado/ado-spec-content-sync.ts +379 -0
  316. package/plugins/specweave/lib/integrations/ado/ado-spec-sync.d.ts +100 -0
  317. package/plugins/specweave/lib/integrations/ado/ado-spec-sync.js +681 -0
  318. package/plugins/specweave/lib/integrations/ado/ado-spec-sync.ts +893 -0
  319. package/plugins/specweave/lib/integrations/ado/ado-status-sync.js +150 -0
  320. package/plugins/specweave/lib/integrations/ado/ado-status-sync.ts +213 -0
  321. package/plugins/specweave/lib/integrations/ado/conflict-resolver.js +400 -0
  322. package/plugins/specweave/lib/integrations/ado/conflict-resolver.ts +583 -0
  323. package/plugins/specweave/lib/integrations/ado/per-us-sync.js +272 -0
  324. package/plugins/specweave/lib/integrations/ado/per-us-sync.ts +457 -0
  325. package/plugins/specweave/lib/integrations/ado/project-selector.d.ts +42 -0
  326. package/plugins/specweave/lib/integrations/ado/project-selector.ts +304 -0
  327. package/plugins/specweave/lib/integrations/github/CodeValidator.js +195 -0
  328. package/plugins/specweave/lib/integrations/github/CodeValidator.ts +284 -0
  329. package/plugins/specweave/lib/integrations/github/duplicate-detector.js +397 -0
  330. package/plugins/specweave/lib/integrations/github/duplicate-detector.ts +561 -0
  331. package/plugins/specweave/lib/integrations/github/github-ac-checkbox-sync.js +287 -0
  332. package/plugins/specweave/lib/integrations/github/github-ac-checkbox-sync.ts +391 -0
  333. package/plugins/specweave/lib/integrations/github/github-ac-comment-poster.js +191 -0
  334. package/plugins/specweave/lib/integrations/github/github-ac-comment-poster.ts +315 -0
  335. package/plugins/specweave/lib/integrations/github/github-board-resolver.js +81 -0
  336. package/plugins/specweave/lib/integrations/github/github-board-resolver.ts +175 -0
  337. package/plugins/specweave/lib/integrations/github/github-client-v2.js +814 -0
  338. package/plugins/specweave/lib/integrations/github/github-client-v2.ts +1035 -0
  339. package/plugins/specweave/lib/integrations/github/github-cross-repo-sync.js +182 -0
  340. package/plugins/specweave/lib/integrations/github/github-cross-repo-sync.ts +265 -0
  341. package/plugins/specweave/lib/integrations/github/github-feature-sync.js +1007 -0
  342. package/plugins/specweave/lib/integrations/github/github-feature-sync.ts +1403 -0
  343. package/plugins/specweave/lib/integrations/github/github-hierarchical-sync.d.ts +29 -0
  344. package/plugins/specweave/lib/integrations/github/github-hierarchical-sync.js +190 -0
  345. package/plugins/specweave/lib/integrations/github/github-hierarchical-sync.ts +355 -0
  346. package/plugins/specweave/lib/integrations/github/github-issue-updater.js +275 -0
  347. package/plugins/specweave/lib/integrations/github/github-issue-updater.ts +462 -0
  348. package/plugins/specweave/lib/integrations/github/github-multi-project-sync.js +409 -0
  349. package/plugins/specweave/lib/integrations/github/github-multi-project-sync.ts +555 -0
  350. package/plugins/specweave/lib/integrations/github/github-pull-sync.js +185 -0
  351. package/plugins/specweave/lib/integrations/github/github-pull-sync.ts +343 -0
  352. package/plugins/specweave/lib/integrations/github/github-push-sync.js +129 -0
  353. package/plugins/specweave/lib/integrations/github/github-push-sync.ts +188 -0
  354. package/plugins/specweave/lib/integrations/github/github-rate-limiter.js +96 -0
  355. package/plugins/specweave/lib/integrations/github/github-rate-limiter.ts +143 -0
  356. package/plugins/specweave/lib/integrations/github/github-spec-commit-sync.d.ts +37 -0
  357. package/plugins/specweave/lib/integrations/github/github-spec-commit-sync.js +186 -0
  358. package/plugins/specweave/lib/integrations/github/github-spec-commit-sync.ts +285 -0
  359. package/plugins/specweave/lib/integrations/github/github-spec-content-sync.js +298 -0
  360. package/plugins/specweave/lib/integrations/github/github-spec-content-sync.ts +465 -0
  361. package/plugins/specweave/lib/integrations/github/github-spec-frontmatter-updater.ts +306 -0
  362. package/plugins/specweave/lib/integrations/github/github-spec-sync.d.ts +108 -0
  363. package/plugins/specweave/lib/integrations/github/github-spec-sync.js +900 -0
  364. package/plugins/specweave/lib/integrations/github/github-spec-sync.ts +1281 -0
  365. package/plugins/specweave/lib/integrations/github/github-sync-orchestrator.ts +158 -0
  366. package/plugins/specweave/lib/integrations/github/github-us-auto-closer.js +190 -0
  367. package/plugins/specweave/lib/integrations/github/github-us-auto-closer.ts +313 -0
  368. package/plugins/specweave/lib/integrations/github/per-us-sync.js +330 -0
  369. package/plugins/specweave/lib/integrations/github/per-us-sync.ts +515 -0
  370. package/plugins/specweave/lib/integrations/github/user-story-content-builder.js +306 -0
  371. package/plugins/specweave/lib/integrations/github/user-story-content-builder.ts +424 -0
  372. package/plugins/specweave/lib/integrations/jira/jira-ac-checkbox-sync.js +300 -0
  373. package/plugins/specweave/lib/integrations/jira/jira-ac-checkbox-sync.ts +380 -0
  374. package/plugins/specweave/lib/integrations/jira/jira-board-resolver.d.ts +50 -0
  375. package/plugins/specweave/lib/integrations/jira/jira-board-resolver.ts +127 -0
  376. package/plugins/specweave/lib/integrations/jira/jira-duplicate-detector.js +279 -0
  377. package/plugins/specweave/lib/integrations/jira/jira-duplicate-detector.ts +420 -0
  378. package/plugins/specweave/lib/integrations/jira/jira-epic-sync.js +314 -0
  379. package/plugins/specweave/lib/integrations/jira/jira-epic-sync.ts +474 -0
  380. package/plugins/specweave/lib/integrations/jira/jira-hierarchical-sync.d.ts +33 -0
  381. package/plugins/specweave/lib/integrations/jira/jira-hierarchical-sync.js +144 -0
  382. package/plugins/specweave/lib/integrations/jira/jira-hierarchical-sync.ts +294 -0
  383. package/plugins/specweave/lib/integrations/jira/jira-multi-project-sync.js +279 -0
  384. package/plugins/specweave/lib/integrations/jira/jira-multi-project-sync.ts +398 -0
  385. package/plugins/specweave/lib/integrations/jira/jira-spec-commit-sync.d.ts +43 -0
  386. package/plugins/specweave/lib/integrations/jira/jira-spec-commit-sync.js +262 -0
  387. package/plugins/specweave/lib/integrations/jira/jira-spec-commit-sync.ts +370 -0
  388. package/plugins/specweave/lib/integrations/jira/jira-spec-content-sync.js +260 -0
  389. package/plugins/specweave/lib/integrations/jira/jira-spec-content-sync.ts +367 -0
  390. package/plugins/specweave/lib/integrations/jira/jira-spec-sync.d.ts +105 -0
  391. package/plugins/specweave/lib/integrations/jira/jira-spec-sync.js +689 -0
  392. package/plugins/specweave/lib/integrations/jira/jira-spec-sync.ts +947 -0
  393. package/plugins/specweave/lib/integrations/jira/jira-status-sync.js +215 -0
  394. package/plugins/specweave/lib/integrations/jira/jira-status-sync.ts +375 -0
  395. package/plugins/specweave/lib/integrations/jira/per-us-sync.js +235 -0
  396. package/plugins/specweave/lib/integrations/jira/per-us-sync.ts +384 -0
  397. package/plugins/specweave/lib/integrations/jira/project-selector.d.ts +42 -0
  398. package/plugins/specweave/lib/integrations/jira/project-selector.ts +310 -0
  399. package/plugins/specweave/lib/integrations/jira/reorganization-detector.d.ts +67 -0
  400. package/plugins/specweave/lib/integrations/jira/reorganization-detector.ts +449 -0
  401. package/plugins/specweave/lib/integrations/jira/setup-wizard.d.js +4 -0
  402. package/plugins/specweave/lib/integrations/jira/setup-wizard.d.ts +29 -0
  403. package/plugins/specweave/lib/integrations/jira/setup-wizard.js +156 -0
  404. package/plugins/specweave/lib/integrations/jira/setup-wizard.ts +238 -0
  405. package/plugins/specweave/lib/vendor/sync/github-reconciler.d.ts +1 -1
  406. package/plugins/specweave/lib/vendor/sync/github-reconciler.js +2 -2
  407. package/plugins/specweave/lib/vendor/sync/github-reconciler.js.map +1 -1
  408. package/plugins/specweave/skills/team-lead/SKILL.md +10 -5
  409. package/plugins/specweave/skills/team-lead/agents/brainstorm-advocate.md +12 -6
  410. package/plugins/specweave/skills/team-lead/agents/brainstorm-critic.md +12 -6
  411. package/plugins/specweave/skills/team-lead/agents/brainstorm-pragmatist.md +12 -6
  412. package/dist/plugins/specweave-ado/lib/ado-ac-checkbox-sync.d.ts +0 -44
  413. package/dist/plugins/specweave-ado/lib/ado-ac-checkbox-sync.d.ts.map +0 -1
  414. package/dist/plugins/specweave-ado/lib/ado-ac-checkbox-sync.js +0 -236
  415. package/dist/plugins/specweave-ado/lib/ado-ac-checkbox-sync.js.map +0 -1
  416. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +0 -1
  417. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +0 -1
  418. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts +0 -139
  419. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts.map +0 -1
  420. package/dist/plugins/specweave-ado/lib/ado-client-v2.js.map +0 -1
  421. package/dist/plugins/specweave-ado/lib/ado-client.d.ts.map +0 -1
  422. package/dist/plugins/specweave-ado/lib/ado-client.js.map +0 -1
  423. package/dist/plugins/specweave-ado/lib/ado-duplicate-detector.d.ts +0 -100
  424. package/dist/plugins/specweave-ado/lib/ado-duplicate-detector.d.ts.map +0 -1
  425. package/dist/plugins/specweave-ado/lib/ado-duplicate-detector.js +0 -292
  426. package/dist/plugins/specweave-ado/lib/ado-duplicate-detector.js.map +0 -1
  427. package/dist/plugins/specweave-ado/lib/ado-permission-gate.d.ts.map +0 -1
  428. package/dist/plugins/specweave-ado/lib/ado-permission-gate.js.map +0 -1
  429. package/dist/plugins/specweave-ado/lib/ado-profile-resolver.d.ts.map +0 -1
  430. package/dist/plugins/specweave-ado/lib/ado-profile-resolver.js.map +0 -1
  431. package/dist/plugins/specweave-ado/lib/ado-pull-sync.d.ts.map +0 -1
  432. package/dist/plugins/specweave-ado/lib/ado-pull-sync.js.map +0 -1
  433. package/dist/plugins/specweave-ado/lib/ado-rate-limiter.d.ts.map +0 -1
  434. package/dist/plugins/specweave-ado/lib/ado-rate-limiter.js.map +0 -1
  435. package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.d.ts +0 -38
  436. package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.d.ts.map +0 -1
  437. package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.js +0 -210
  438. package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.js.map +0 -1
  439. package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.d.ts +0 -28
  440. package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.d.ts.map +0 -1
  441. package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js +0 -300
  442. package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js.map +0 -1
  443. package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts +0 -147
  444. package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts.map +0 -1
  445. package/dist/plugins/specweave-ado/lib/ado-spec-sync.js +0 -749
  446. package/dist/plugins/specweave-ado/lib/ado-spec-sync.js.map +0 -1
  447. package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts +0 -79
  448. package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts.map +0 -1
  449. package/dist/plugins/specweave-ado/lib/ado-status-sync.js +0 -162
  450. package/dist/plugins/specweave-ado/lib/ado-status-sync.js.map +0 -1
  451. package/dist/plugins/specweave-ado/lib/conflict-resolver.d.ts.map +0 -1
  452. package/dist/plugins/specweave-ado/lib/conflict-resolver.js +0 -439
  453. package/dist/plugins/specweave-ado/lib/conflict-resolver.js.map +0 -1
  454. package/dist/plugins/specweave-ado/lib/per-us-sync.d.ts +0 -131
  455. package/dist/plugins/specweave-ado/lib/per-us-sync.d.ts.map +0 -1
  456. package/dist/plugins/specweave-ado/lib/per-us-sync.js +0 -322
  457. package/dist/plugins/specweave-ado/lib/per-us-sync.js.map +0 -1
  458. package/dist/plugins/specweave-github/lib/CodeValidator.d.ts.map +0 -1
  459. package/dist/plugins/specweave-github/lib/CodeValidator.js +0 -219
  460. package/dist/plugins/specweave-github/lib/CodeValidator.js.map +0 -1
  461. package/dist/plugins/specweave-github/lib/IssueStateManager.d.ts.map +0 -1
  462. package/dist/plugins/specweave-github/lib/IssueStateManager.js.map +0 -1
  463. package/dist/plugins/specweave-github/lib/completion-calculator.d.ts.map +0 -1
  464. package/dist/plugins/specweave-github/lib/completion-calculator.js.map +0 -1
  465. package/dist/plugins/specweave-github/lib/duplicate-detector.d.ts.map +0 -1
  466. package/dist/plugins/specweave-github/lib/duplicate-detector.js +0 -423
  467. package/dist/plugins/specweave-github/lib/duplicate-detector.js.map +0 -1
  468. package/dist/plugins/specweave-github/lib/github-ac-checkbox-sync.d.ts +0 -54
  469. package/dist/plugins/specweave-github/lib/github-ac-checkbox-sync.d.ts.map +0 -1
  470. package/dist/plugins/specweave-github/lib/github-ac-checkbox-sync.js +0 -305
  471. package/dist/plugins/specweave-github/lib/github-ac-checkbox-sync.js.map +0 -1
  472. package/dist/plugins/specweave-github/lib/github-ac-comment-poster.d.ts.map +0 -1
  473. package/dist/plugins/specweave-github/lib/github-ac-comment-poster.js +0 -232
  474. package/dist/plugins/specweave-github/lib/github-ac-comment-poster.js.map +0 -1
  475. package/dist/plugins/specweave-github/lib/github-batch-sync.d.ts.map +0 -1
  476. package/dist/plugins/specweave-github/lib/github-batch-sync.js.map +0 -1
  477. package/dist/plugins/specweave-github/lib/github-board-resolver-v2.d.ts.map +0 -1
  478. package/dist/plugins/specweave-github/lib/github-board-resolver-v2.js.map +0 -1
  479. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +0 -214
  480. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +0 -1
  481. package/dist/plugins/specweave-github/lib/github-client-v2.js +0 -812
  482. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +0 -1
  483. package/dist/plugins/specweave-github/lib/github-client.d.ts.map +0 -1
  484. package/dist/plugins/specweave-github/lib/github-client.js.map +0 -1
  485. package/dist/plugins/specweave-github/lib/github-conflict-resolver.d.ts.map +0 -1
  486. package/dist/plugins/specweave-github/lib/github-conflict-resolver.js.map +0 -1
  487. package/dist/plugins/specweave-github/lib/github-cross-repo-sync.d.ts.map +0 -1
  488. package/dist/plugins/specweave-github/lib/github-cross-repo-sync.js +0 -172
  489. package/dist/plugins/specweave-github/lib/github-cross-repo-sync.js.map +0 -1
  490. package/dist/plugins/specweave-github/lib/github-feature-sync-cli.d.ts.map +0 -1
  491. package/dist/plugins/specweave-github/lib/github-feature-sync-cli.js.map +0 -1
  492. package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +0 -1
  493. package/dist/plugins/specweave-github/lib/github-feature-sync.js +0 -1112
  494. package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +0 -1
  495. package/dist/plugins/specweave-github/lib/github-field-sync.d.ts.map +0 -1
  496. package/dist/plugins/specweave-github/lib/github-field-sync.js.map +0 -1
  497. package/dist/plugins/specweave-github/lib/github-graphql-client.d.ts.map +0 -1
  498. package/dist/plugins/specweave-github/lib/github-graphql-client.js.map +0 -1
  499. package/dist/plugins/specweave-github/lib/github-issue-body-generator.d.ts.map +0 -1
  500. package/dist/plugins/specweave-github/lib/github-issue-body-generator.js.map +0 -1
  501. package/dist/plugins/specweave-github/lib/github-issue-body-parser.d.ts.map +0 -1
  502. package/dist/plugins/specweave-github/lib/github-issue-body-parser.js.map +0 -1
  503. package/dist/plugins/specweave-github/lib/github-issue-updater.d.ts.map +0 -1
  504. package/dist/plugins/specweave-github/lib/github-issue-updater.js +0 -339
  505. package/dist/plugins/specweave-github/lib/github-issue-updater.js.map +0 -1
  506. package/dist/plugins/specweave-github/lib/github-pull-sync.d.ts +0 -94
  507. package/dist/plugins/specweave-github/lib/github-pull-sync.d.ts.map +0 -1
  508. package/dist/plugins/specweave-github/lib/github-pull-sync.js +0 -232
  509. package/dist/plugins/specweave-github/lib/github-pull-sync.js.map +0 -1
  510. package/dist/plugins/specweave-github/lib/github-push-sync.d.ts.map +0 -1
  511. package/dist/plugins/specweave-github/lib/github-push-sync.js +0 -127
  512. package/dist/plugins/specweave-github/lib/github-push-sync.js.map +0 -1
  513. package/dist/plugins/specweave-github/lib/github-rate-limiter.d.ts.map +0 -1
  514. package/dist/plugins/specweave-github/lib/github-rate-limiter.js +0 -109
  515. package/dist/plugins/specweave-github/lib/github-rate-limiter.js.map +0 -1
  516. package/dist/plugins/specweave-github/lib/github-spec-commit-sync.d.ts +0 -37
  517. package/dist/plugins/specweave-github/lib/github-spec-commit-sync.d.ts.map +0 -1
  518. package/dist/plugins/specweave-github/lib/github-spec-commit-sync.js +0 -209
  519. package/dist/plugins/specweave-github/lib/github-spec-commit-sync.js.map +0 -1
  520. package/dist/plugins/specweave-github/lib/github-spec-content-sync.d.ts +0 -28
  521. package/dist/plugins/specweave-github/lib/github-spec-content-sync.d.ts.map +0 -1
  522. package/dist/plugins/specweave-github/lib/github-spec-content-sync.js +0 -365
  523. package/dist/plugins/specweave-github/lib/github-spec-content-sync.js.map +0 -1
  524. package/dist/plugins/specweave-github/lib/github-spec-frontmatter-updater.d.ts +0 -21
  525. package/dist/plugins/specweave-github/lib/github-spec-frontmatter-updater.d.ts.map +0 -1
  526. package/dist/plugins/specweave-github/lib/github-spec-frontmatter-updater.js.map +0 -1
  527. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts +0 -225
  528. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts.map +0 -1
  529. package/dist/plugins/specweave-github/lib/github-spec-sync.js +0 -974
  530. package/dist/plugins/specweave-github/lib/github-spec-sync.js.map +0 -1
  531. package/dist/plugins/specweave-github/lib/github-sync-orchestrator.d.ts +0 -47
  532. package/dist/plugins/specweave-github/lib/github-sync-orchestrator.d.ts.map +0 -1
  533. package/dist/plugins/specweave-github/lib/github-sync-orchestrator.js.map +0 -1
  534. package/dist/plugins/specweave-github/lib/github-us-auto-closer.d.ts.map +0 -1
  535. package/dist/plugins/specweave-github/lib/github-us-auto-closer.js +0 -219
  536. package/dist/plugins/specweave-github/lib/github-us-auto-closer.js.map +0 -1
  537. package/dist/plugins/specweave-github/lib/index.d.ts.map +0 -1
  538. package/dist/plugins/specweave-github/lib/index.js.map +0 -1
  539. package/dist/plugins/specweave-github/lib/per-us-sync.d.ts +0 -126
  540. package/dist/plugins/specweave-github/lib/per-us-sync.d.ts.map +0 -1
  541. package/dist/plugins/specweave-github/lib/per-us-sync.js +0 -394
  542. package/dist/plugins/specweave-github/lib/per-us-sync.js.map +0 -1
  543. package/dist/plugins/specweave-github/lib/progress-comment-builder.d.ts.map +0 -1
  544. package/dist/plugins/specweave-github/lib/progress-comment-builder.js.map +0 -1
  545. package/dist/plugins/specweave-github/lib/types.d.ts.map +0 -1
  546. package/dist/plugins/specweave-github/lib/types.js.map +0 -1
  547. package/dist/plugins/specweave-github/lib/user-story-content-builder.d.ts.map +0 -1
  548. package/dist/plugins/specweave-github/lib/user-story-content-builder.js +0 -310
  549. package/dist/plugins/specweave-github/lib/user-story-content-builder.js.map +0 -1
  550. package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts.map +0 -1
  551. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js.map +0 -1
  552. package/dist/plugins/specweave-jira/lib/content-format-adapter.d.ts.map +0 -1
  553. package/dist/plugins/specweave-jira/lib/content-format-adapter.js.map +0 -1
  554. package/dist/plugins/specweave-jira/lib/jira-ac-checkbox-sync.d.ts +0 -47
  555. package/dist/plugins/specweave-jira/lib/jira-ac-checkbox-sync.d.ts.map +0 -1
  556. package/dist/plugins/specweave-jira/lib/jira-ac-checkbox-sync.js +0 -307
  557. package/dist/plugins/specweave-jira/lib/jira-ac-checkbox-sync.js.map +0 -1
  558. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +0 -50
  559. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +0 -1
  560. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +0 -1
  561. package/dist/plugins/specweave-jira/lib/jira-deployment-detector.d.ts.map +0 -1
  562. package/dist/plugins/specweave-jira/lib/jira-deployment-detector.js.map +0 -1
  563. package/dist/plugins/specweave-jira/lib/jira-duplicate-detector.d.ts +0 -103
  564. package/dist/plugins/specweave-jira/lib/jira-duplicate-detector.d.ts.map +0 -1
  565. package/dist/plugins/specweave-jira/lib/jira-duplicate-detector.js +0 -295
  566. package/dist/plugins/specweave-jira/lib/jira-duplicate-detector.js.map +0 -1
  567. package/dist/plugins/specweave-jira/lib/jira-epic-sync.d.ts +0 -67
  568. package/dist/plugins/specweave-jira/lib/jira-epic-sync.d.ts.map +0 -1
  569. package/dist/plugins/specweave-jira/lib/jira-epic-sync.js +0 -286
  570. package/dist/plugins/specweave-jira/lib/jira-epic-sync.js.map +0 -1
  571. package/dist/plugins/specweave-jira/lib/jira-field-discovery.d.ts.map +0 -1
  572. package/dist/plugins/specweave-jira/lib/jira-field-discovery.js.map +0 -1
  573. package/dist/plugins/specweave-jira/lib/jira-paginated-search.d.ts.map +0 -1
  574. package/dist/plugins/specweave-jira/lib/jira-paginated-search.js.map +0 -1
  575. package/dist/plugins/specweave-jira/lib/jira-permission-gate.d.ts.map +0 -1
  576. package/dist/plugins/specweave-jira/lib/jira-permission-gate.js.map +0 -1
  577. package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.d.ts +0 -43
  578. package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.d.ts.map +0 -1
  579. package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.js +0 -284
  580. package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.js.map +0 -1
  581. package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.d.ts +0 -33
  582. package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.d.ts.map +0 -1
  583. package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.js +0 -294
  584. package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.js.map +0 -1
  585. package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts +0 -180
  586. package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts.map +0 -1
  587. package/dist/plugins/specweave-jira/lib/jira-spec-sync.js +0 -757
  588. package/dist/plugins/specweave-jira/lib/jira-spec-sync.js.map +0 -1
  589. package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts +0 -116
  590. package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts.map +0 -1
  591. package/dist/plugins/specweave-jira/lib/jira-status-sync.js +0 -302
  592. package/dist/plugins/specweave-jira/lib/jira-status-sync.js.map +0 -1
  593. package/dist/plugins/specweave-jira/lib/metadata-paths.d.ts.map +0 -1
  594. package/dist/plugins/specweave-jira/lib/metadata-paths.js.map +0 -1
  595. package/dist/plugins/specweave-jira/lib/per-us-sync.d.ts +0 -117
  596. package/dist/plugins/specweave-jira/lib/per-us-sync.d.ts.map +0 -1
  597. package/dist/plugins/specweave-jira/lib/per-us-sync.js +0 -274
  598. package/dist/plugins/specweave-jira/lib/per-us-sync.js.map +0 -1
  599. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts +0 -80
  600. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts.map +0 -1
  601. package/dist/plugins/specweave-jira/lib/reorganization-detector.js.map +0 -1
  602. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts +0 -29
  603. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts.map +0 -1
  604. package/dist/plugins/specweave-jira/lib/setup-wizard.js +0 -198
  605. package/dist/plugins/specweave-jira/lib/setup-wizard.js.map +0 -1
  606. package/dist/plugins/specweave-release/lib/dashboard-generator.d.ts.map +0 -1
  607. package/dist/plugins/specweave-release/lib/dashboard-generator.js.map +0 -1
  608. package/dist/plugins/specweave-release/lib/dora-tracker.d.ts.map +0 -1
  609. package/dist/plugins/specweave-release/lib/dora-tracker.js.map +0 -1
  610. package/plugins/specweave-ado/.claude-plugin/plugin.json +0 -20
  611. package/plugins/specweave-ado/PLUGIN.md +0 -39
  612. package/plugins/specweave-ado/hooks/README.md +0 -201
  613. package/plugins/specweave-ado/lib/ado-ac-checkbox-sync.js +0 -241
  614. package/plugins/specweave-ado/lib/ado-ac-checkbox-sync.ts +0 -311
  615. package/plugins/specweave-ado/lib/ado-client-v2.d.ts +0 -134
  616. package/plugins/specweave-ado/lib/ado-client-v2.ts +0 -742
  617. package/plugins/specweave-ado/lib/ado-duplicate-detector.js +0 -279
  618. package/plugins/specweave-ado/lib/ado-duplicate-detector.ts +0 -408
  619. package/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts +0 -40
  620. package/plugins/specweave-ado/lib/ado-hierarchical-sync.js +0 -300
  621. package/plugins/specweave-ado/lib/ado-hierarchical-sync.ts +0 -554
  622. package/plugins/specweave-ado/lib/ado-multi-project-sync.js +0 -486
  623. package/plugins/specweave-ado/lib/ado-multi-project-sync.ts +0 -675
  624. package/plugins/specweave-ado/lib/ado-project-detector.js +0 -502
  625. package/plugins/specweave-ado/lib/ado-project-detector.ts +0 -560
  626. package/plugins/specweave-ado/lib/ado-spec-commit-sync.d.ts +0 -38
  627. package/plugins/specweave-ado/lib/ado-spec-commit-sync.js +0 -189
  628. package/plugins/specweave-ado/lib/ado-spec-commit-sync.ts +0 -288
  629. package/plugins/specweave-ado/lib/ado-spec-content-sync.js +0 -249
  630. package/plugins/specweave-ado/lib/ado-spec-content-sync.ts +0 -379
  631. package/plugins/specweave-ado/lib/ado-spec-sync.d.ts +0 -100
  632. package/plugins/specweave-ado/lib/ado-spec-sync.js +0 -681
  633. package/plugins/specweave-ado/lib/ado-spec-sync.ts +0 -893
  634. package/plugins/specweave-ado/lib/ado-status-sync.js +0 -150
  635. package/plugins/specweave-ado/lib/ado-status-sync.ts +0 -213
  636. package/plugins/specweave-ado/lib/conflict-resolver.js +0 -400
  637. package/plugins/specweave-ado/lib/conflict-resolver.ts +0 -583
  638. package/plugins/specweave-ado/lib/per-us-sync.js +0 -272
  639. package/plugins/specweave-ado/lib/per-us-sync.ts +0 -457
  640. package/plugins/specweave-ado/lib/project-selector.d.ts +0 -42
  641. package/plugins/specweave-ado/lib/project-selector.ts +0 -304
  642. package/plugins/specweave-diagrams/.claude-plugin/plugin.json +0 -20
  643. package/plugins/specweave-diagrams/PLUGIN.md +0 -32
  644. package/plugins/specweave-docs/.claude-plugin/plugin.json +0 -10
  645. package/plugins/specweave-docs/PLUGIN.md +0 -27
  646. package/plugins/specweave-github/.claude-plugin/plugin.json +0 -19
  647. package/plugins/specweave-github/MULTI-PROJECT-SYNC-ARCHITECTURE.md +0 -744
  648. package/plugins/specweave-github/PLUGIN.md +0 -29
  649. package/plugins/specweave-github/SYNC-ARCHITECTURE-FIX-SUMMARY.md +0 -302
  650. package/plugins/specweave-github/hooks/README.md +0 -289
  651. package/plugins/specweave-github/lib/CodeValidator.js +0 -195
  652. package/plugins/specweave-github/lib/CodeValidator.ts +0 -284
  653. package/plugins/specweave-github/lib/duplicate-detector.js +0 -397
  654. package/plugins/specweave-github/lib/duplicate-detector.ts +0 -561
  655. package/plugins/specweave-github/lib/github-ac-checkbox-sync.js +0 -287
  656. package/plugins/specweave-github/lib/github-ac-checkbox-sync.ts +0 -391
  657. package/plugins/specweave-github/lib/github-ac-comment-poster.js +0 -191
  658. package/plugins/specweave-github/lib/github-ac-comment-poster.ts +0 -315
  659. package/plugins/specweave-github/lib/github-board-resolver.js +0 -81
  660. package/plugins/specweave-github/lib/github-board-resolver.ts +0 -175
  661. package/plugins/specweave-github/lib/github-client-v2.js +0 -814
  662. package/plugins/specweave-github/lib/github-client-v2.ts +0 -1035
  663. package/plugins/specweave-github/lib/github-cross-repo-sync.js +0 -182
  664. package/plugins/specweave-github/lib/github-cross-repo-sync.ts +0 -265
  665. package/plugins/specweave-github/lib/github-feature-sync.js +0 -1007
  666. package/plugins/specweave-github/lib/github-feature-sync.ts +0 -1403
  667. package/plugins/specweave-github/lib/github-hierarchical-sync.d.ts +0 -29
  668. package/plugins/specweave-github/lib/github-hierarchical-sync.js +0 -190
  669. package/plugins/specweave-github/lib/github-hierarchical-sync.ts +0 -355
  670. package/plugins/specweave-github/lib/github-issue-updater.js +0 -275
  671. package/plugins/specweave-github/lib/github-issue-updater.ts +0 -462
  672. package/plugins/specweave-github/lib/github-multi-project-sync.js +0 -409
  673. package/plugins/specweave-github/lib/github-multi-project-sync.ts +0 -555
  674. package/plugins/specweave-github/lib/github-pull-sync.js +0 -185
  675. package/plugins/specweave-github/lib/github-pull-sync.ts +0 -343
  676. package/plugins/specweave-github/lib/github-push-sync.js +0 -129
  677. package/plugins/specweave-github/lib/github-push-sync.ts +0 -188
  678. package/plugins/specweave-github/lib/github-rate-limiter.js +0 -96
  679. package/plugins/specweave-github/lib/github-rate-limiter.ts +0 -143
  680. package/plugins/specweave-github/lib/github-spec-commit-sync.d.ts +0 -37
  681. package/plugins/specweave-github/lib/github-spec-commit-sync.js +0 -186
  682. package/plugins/specweave-github/lib/github-spec-commit-sync.ts +0 -285
  683. package/plugins/specweave-github/lib/github-spec-content-sync.js +0 -298
  684. package/plugins/specweave-github/lib/github-spec-content-sync.ts +0 -465
  685. package/plugins/specweave-github/lib/github-spec-frontmatter-updater.ts +0 -306
  686. package/plugins/specweave-github/lib/github-spec-sync.d.ts +0 -108
  687. package/plugins/specweave-github/lib/github-spec-sync.js +0 -900
  688. package/plugins/specweave-github/lib/github-spec-sync.ts +0 -1281
  689. package/plugins/specweave-github/lib/github-sync-orchestrator.ts +0 -158
  690. package/plugins/specweave-github/lib/github-us-auto-closer.js +0 -190
  691. package/plugins/specweave-github/lib/github-us-auto-closer.ts +0 -313
  692. package/plugins/specweave-github/lib/per-us-sync.js +0 -330
  693. package/plugins/specweave-github/lib/per-us-sync.ts +0 -515
  694. package/plugins/specweave-github/lib/user-story-content-builder.js +0 -306
  695. package/plugins/specweave-github/lib/user-story-content-builder.ts +0 -424
  696. package/plugins/specweave-jira/.claude-plugin/plugin.json +0 -20
  697. package/plugins/specweave-jira/PLUGIN.md +0 -28
  698. package/plugins/specweave-jira/hooks/README.md +0 -201
  699. package/plugins/specweave-jira/lib/jira-ac-checkbox-sync.js +0 -300
  700. package/plugins/specweave-jira/lib/jira-ac-checkbox-sync.ts +0 -380
  701. package/plugins/specweave-jira/lib/jira-board-resolver.d.ts +0 -50
  702. package/plugins/specweave-jira/lib/jira-board-resolver.ts +0 -127
  703. package/plugins/specweave-jira/lib/jira-duplicate-detector.js +0 -279
  704. package/plugins/specweave-jira/lib/jira-duplicate-detector.ts +0 -420
  705. package/plugins/specweave-jira/lib/jira-epic-sync.js +0 -314
  706. package/plugins/specweave-jira/lib/jira-epic-sync.ts +0 -474
  707. package/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts +0 -33
  708. package/plugins/specweave-jira/lib/jira-hierarchical-sync.js +0 -144
  709. package/plugins/specweave-jira/lib/jira-hierarchical-sync.ts +0 -294
  710. package/plugins/specweave-jira/lib/jira-multi-project-sync.js +0 -279
  711. package/plugins/specweave-jira/lib/jira-multi-project-sync.ts +0 -398
  712. package/plugins/specweave-jira/lib/jira-spec-commit-sync.d.ts +0 -43
  713. package/plugins/specweave-jira/lib/jira-spec-commit-sync.js +0 -262
  714. package/plugins/specweave-jira/lib/jira-spec-commit-sync.ts +0 -370
  715. package/plugins/specweave-jira/lib/jira-spec-content-sync.js +0 -260
  716. package/plugins/specweave-jira/lib/jira-spec-content-sync.ts +0 -367
  717. package/plugins/specweave-jira/lib/jira-spec-sync.d.ts +0 -105
  718. package/plugins/specweave-jira/lib/jira-spec-sync.js +0 -689
  719. package/plugins/specweave-jira/lib/jira-spec-sync.ts +0 -947
  720. package/plugins/specweave-jira/lib/jira-status-sync.js +0 -215
  721. package/plugins/specweave-jira/lib/jira-status-sync.ts +0 -375
  722. package/plugins/specweave-jira/lib/per-us-sync.js +0 -235
  723. package/plugins/specweave-jira/lib/per-us-sync.ts +0 -384
  724. package/plugins/specweave-jira/lib/project-selector.d.ts +0 -42
  725. package/plugins/specweave-jira/lib/project-selector.ts +0 -310
  726. package/plugins/specweave-jira/lib/reorganization-detector.d.ts +0 -67
  727. package/plugins/specweave-jira/lib/reorganization-detector.ts +0 -449
  728. package/plugins/specweave-jira/lib/setup-wizard.d.js +0 -4
  729. package/plugins/specweave-jira/lib/setup-wizard.d.ts +0 -29
  730. package/plugins/specweave-jira/lib/setup-wizard.js +0 -156
  731. package/plugins/specweave-jira/lib/setup-wizard.ts +0 -238
  732. package/plugins/specweave-media/.claude-plugin/plugin.json +0 -24
  733. package/plugins/specweave-media/PLUGIN.md +0 -37
  734. package/plugins/specweave-media/test-providers.sh +0 -308
  735. package/plugins/specweave-release/.claude-plugin/plugin.json +0 -29
  736. package/plugins/specweave-release/IMPLEMENTATION.md +0 -446
  737. package/plugins/specweave-release/PLUGIN.md +0 -38
  738. package/plugins/specweave-release/README.md +0 -508
  739. package/plugins/specweave-release/hooks/post-task-completion.sh +0 -113
  740. /package/dist/plugins/{specweave-release/lib → specweave/lib/features/release}/dashboard-generator.d.ts +0 -0
  741. /package/dist/plugins/{specweave-release/lib → specweave/lib/features/release}/dashboard-generator.js +0 -0
  742. /package/dist/plugins/{specweave-release/lib → specweave/lib/features/release}/dora-tracker.d.ts +0 -0
  743. /package/dist/plugins/{specweave-release/lib → specweave/lib/features/release}/dora-tracker.js +0 -0
  744. /package/dist/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-board-resolver.d.ts +0 -0
  745. /package/dist/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-board-resolver.js +0 -0
  746. /package/dist/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-client-v2.js +0 -0
  747. /package/dist/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-client.d.ts +0 -0
  748. /package/dist/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-client.js +0 -0
  749. /package/dist/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-permission-gate.d.ts +0 -0
  750. /package/dist/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-permission-gate.js +0 -0
  751. /package/dist/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-profile-resolver.d.ts +0 -0
  752. /package/dist/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-profile-resolver.js +0 -0
  753. /package/dist/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-pull-sync.d.ts +0 -0
  754. /package/dist/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-pull-sync.js +0 -0
  755. /package/dist/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-rate-limiter.d.ts +0 -0
  756. /package/dist/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-rate-limiter.js +0 -0
  757. /package/dist/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/conflict-resolver.d.ts +0 -0
  758. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/CodeValidator.d.ts +0 -0
  759. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/IssueStateManager.d.ts +0 -0
  760. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/IssueStateManager.js +0 -0
  761. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/completion-calculator.d.ts +0 -0
  762. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/completion-calculator.js +0 -0
  763. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/duplicate-detector.d.ts +0 -0
  764. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-ac-comment-poster.d.ts +0 -0
  765. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-batch-sync.d.ts +0 -0
  766. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-batch-sync.js +0 -0
  767. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-board-resolver-v2.d.ts +0 -0
  768. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-board-resolver-v2.js +0 -0
  769. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-client.d.ts +0 -0
  770. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-client.js +0 -0
  771. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-conflict-resolver.d.ts +0 -0
  772. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-conflict-resolver.js +0 -0
  773. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-cross-repo-sync.d.ts +0 -0
  774. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-feature-sync-cli.d.ts +0 -0
  775. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-feature-sync-cli.js +0 -0
  776. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-feature-sync.d.ts +0 -0
  777. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-field-sync.d.ts +0 -0
  778. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-field-sync.js +0 -0
  779. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-graphql-client.d.ts +0 -0
  780. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-graphql-client.js +0 -0
  781. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-issue-body-generator.d.ts +0 -0
  782. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-issue-body-generator.js +0 -0
  783. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-issue-body-parser.d.ts +0 -0
  784. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-issue-body-parser.js +0 -0
  785. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-issue-updater.d.ts +0 -0
  786. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-push-sync.d.ts +0 -0
  787. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-rate-limiter.d.ts +0 -0
  788. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-spec-frontmatter-updater.js +0 -0
  789. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-sync-orchestrator.js +0 -0
  790. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-us-auto-closer.d.ts +0 -0
  791. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/index.d.ts +0 -0
  792. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/index.js +0 -0
  793. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/progress-comment-builder.d.ts +0 -0
  794. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/progress-comment-builder.js +0 -0
  795. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/types.d.ts +0 -0
  796. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/types.js +0 -0
  797. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/user-story-content-builder.d.ts +0 -0
  798. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/user-story-issue-builder.d.ts +0 -0
  799. /package/dist/plugins/{specweave-github/lib → specweave/lib/integrations/github}/user-story-issue-builder.js +0 -0
  800. /package/dist/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/content-format-adapter.d.ts +0 -0
  801. /package/dist/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/content-format-adapter.js +0 -0
  802. /package/dist/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-board-resolver.js +0 -0
  803. /package/dist/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-deployment-detector.d.ts +0 -0
  804. /package/dist/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-deployment-detector.js +0 -0
  805. /package/dist/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-field-discovery.d.ts +0 -0
  806. /package/dist/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-field-discovery.js +0 -0
  807. /package/dist/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-paginated-search.d.ts +0 -0
  808. /package/dist/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-paginated-search.js +0 -0
  809. /package/dist/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-permission-gate.d.ts +0 -0
  810. /package/dist/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-permission-gate.js +0 -0
  811. /package/dist/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/metadata-paths.d.ts +0 -0
  812. /package/dist/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/metadata-paths.js +0 -0
  813. /package/dist/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/reorganization-detector.js +0 -0
  814. /package/plugins/{specweave-ado/commands/cleanup-duplicates.md → specweave/commands/ado-cleanup-duplicates.md} +0 -0
  815. /package/plugins/{specweave-ado/commands/clone.md → specweave/commands/ado-clone.md} +0 -0
  816. /package/plugins/{specweave-ado/commands/close.md → specweave/commands/ado-close.md} +0 -0
  817. /package/plugins/{specweave-ado/commands/create.md → specweave/commands/ado-create.md} +0 -0
  818. /package/plugins/{specweave-ado/commands/import-areas.md → specweave/commands/ado-import-areas.md} +0 -0
  819. /package/plugins/{specweave-ado/commands/import-projects.md → specweave/commands/ado-import-projects.md} +0 -0
  820. /package/plugins/{specweave-ado/commands/pull.md → specweave/commands/ado-pull.md} +0 -0
  821. /package/plugins/{specweave-ado/commands/push.md → specweave/commands/ado-push.md} +0 -0
  822. /package/plugins/{specweave-ado/commands/reconcile.md → specweave/commands/ado-reconcile.md} +0 -0
  823. /package/plugins/{specweave-ado/commands/status.md → specweave/commands/ado-status.md} +0 -0
  824. /package/plugins/{specweave-ado/commands/sync.md → specweave/commands/ado-sync.md} +0 -0
  825. /package/plugins/{specweave-diagrams → specweave}/commands/diagrams-generate.md +0 -0
  826. /package/plugins/{specweave-docs/commands/build.md → specweave/commands/docs-build.md} +0 -0
  827. /package/plugins/{specweave-docs/commands/generate.md → specweave/commands/docs-generate.md} +0 -0
  828. /package/plugins/{specweave-docs/commands/health.md → specweave/commands/docs-health.md} +0 -0
  829. /package/plugins/{specweave-docs/commands/init.md → specweave/commands/docs-init.md} +0 -0
  830. /package/plugins/{specweave-docs/commands/organize.md → specweave/commands/docs-organize.md} +0 -0
  831. /package/plugins/{specweave-docs/commands/validate.md → specweave/commands/docs-validate.md} +0 -0
  832. /package/plugins/{specweave-docs/commands/view.md → specweave/commands/docs-view.md} +0 -0
  833. /package/plugins/{specweave-github/commands/cleanup-duplicates.md → specweave/commands/github-cleanup-duplicates.md} +0 -0
  834. /package/plugins/{specweave-github/commands/clone.md → specweave/commands/github-clone.md} +0 -0
  835. /package/plugins/{specweave-github/commands/close.md → specweave/commands/github-close.md} +0 -0
  836. /package/plugins/{specweave-github/commands/create.md → specweave/commands/github-create.md} +0 -0
  837. /package/plugins/{specweave-github/commands/pull.md → specweave/commands/github-pull.md} +0 -0
  838. /package/plugins/{specweave-github/commands/push.md → specweave/commands/github-push.md} +0 -0
  839. /package/plugins/{specweave-github/commands/reconcile.md → specweave/commands/github-reconcile.md} +0 -0
  840. /package/plugins/{specweave-github/commands/status.md → specweave/commands/github-status.md} +0 -0
  841. /package/plugins/{specweave-github/commands/sync.md → specweave/commands/github-sync.md} +0 -0
  842. /package/plugins/{specweave-github/commands/update-user-story.md → specweave/commands/github-update-user-story.md} +0 -0
  843. /package/plugins/{specweave-jira/commands/cleanup-duplicates.md → specweave/commands/jira-cleanup-duplicates.md} +0 -0
  844. /package/plugins/{specweave-jira/commands/close.md → specweave/commands/jira-close.md} +0 -0
  845. /package/plugins/{specweave-jira/commands/create.md → specweave/commands/jira-create.md} +0 -0
  846. /package/plugins/{specweave-jira/commands/import-boards.md → specweave/commands/jira-import-boards.md} +0 -0
  847. /package/plugins/{specweave-jira/commands/import-projects-full.md → specweave/commands/jira-import-projects-full.md} +0 -0
  848. /package/plugins/{specweave-jira/commands/import-projects.md → specweave/commands/jira-import-projects.md} +0 -0
  849. /package/plugins/{specweave-jira/commands/pull.md → specweave/commands/jira-pull.md} +0 -0
  850. /package/plugins/{specweave-jira/commands/push.md → specweave/commands/jira-push.md} +0 -0
  851. /package/plugins/{specweave-jira/commands/reconcile.md → specweave/commands/jira-reconcile.md} +0 -0
  852. /package/plugins/{specweave-jira/commands/status.md → specweave/commands/jira-status.md} +0 -0
  853. /package/plugins/{specweave-jira/commands/sync.md → specweave/commands/jira-sync.md} +0 -0
  854. /package/plugins/{specweave-release/commands/align.md → specweave/commands/release-align.md} +0 -0
  855. /package/plugins/{specweave-release/commands/init.md → specweave/commands/release-init.md} +0 -0
  856. /package/plugins/{specweave-release/commands/npm.md → specweave/commands/release-npm.md} +0 -0
  857. /package/plugins/{specweave-release/commands/platform.md → specweave/commands/release-platform.md} +0 -0
  858. /package/plugins/{specweave-release/commands/rc.md → specweave/commands/release-rc.md} +0 -0
  859. /package/plugins/{specweave-ado/hooks/post-living-docs-update.sh → specweave/hooks/v2/integrations/ado-post-living-docs-update.sh} +0 -0
  860. /package/plugins/{specweave-ado/hooks/post-task-completion.sh → specweave/hooks/v2/integrations/ado-post-task.sh} +0 -0
  861. /package/plugins/{specweave-github/hooks → specweave/hooks/v2/integrations}/github-auto-create-handler.sh +0 -0
  862. /package/plugins/{specweave-github/hooks/post-task-completion.sh → specweave/hooks/v2/integrations/github-post-task.sh} +0 -0
  863. /package/plugins/{specweave-jira/hooks/post-task-completion.sh → specweave/hooks/v2/integrations/jira-post-task.sh} +0 -0
  864. /package/plugins/{specweave-release/lib → specweave/lib/features/release}/dashboard-generator.js +0 -0
  865. /package/plugins/{specweave-release/lib → specweave/lib/features/release}/dashboard-generator.ts +0 -0
  866. /package/plugins/{specweave-release/lib → specweave/lib/features/release}/dora-tracker.js +0 -0
  867. /package/plugins/{specweave-release/lib → specweave/lib/features/release}/dora-tracker.ts +0 -0
  868. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-board-resolver.d.js +0 -0
  869. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-board-resolver.d.ts +0 -0
  870. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-board-resolver.d.ts.map +0 -0
  871. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-board-resolver.js +0 -0
  872. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-board-resolver.js.map +0 -0
  873. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-board-resolver.ts +0 -0
  874. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-client-v2.d.js +0 -0
  875. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-client-v2.d.ts.map +0 -0
  876. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-client-v2.js +0 -0
  877. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-client-v2.js.map +0 -0
  878. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-client.d.js +0 -0
  879. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-client.d.ts +0 -0
  880. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-client.d.ts.map +0 -0
  881. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-client.js +0 -0
  882. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-client.js.map +0 -0
  883. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-client.ts +0 -0
  884. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-hierarchical-sync.d.js +0 -0
  885. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-hierarchical-sync.d.ts.map +0 -0
  886. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-hierarchical-sync.js.map +0 -0
  887. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-permission-gate.js +0 -0
  888. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-permission-gate.ts +0 -0
  889. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-profile-resolver.js +0 -0
  890. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-profile-resolver.ts +0 -0
  891. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-pull-sync.js +0 -0
  892. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-pull-sync.ts +0 -0
  893. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-rate-limiter.js +0 -0
  894. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-rate-limiter.ts +0 -0
  895. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-spec-commit-sync.d.js +0 -0
  896. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-spec-commit-sync.d.ts.map +0 -0
  897. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-spec-commit-sync.js.map +0 -0
  898. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-spec-sync.d.js +0 -0
  899. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-spec-sync.d.ts.map +0 -0
  900. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/ado-spec-sync.js.map +0 -0
  901. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/project-selector.d.js +0 -0
  902. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/project-selector.d.ts.map +0 -0
  903. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/project-selector.js +0 -0
  904. /package/plugins/{specweave-ado/lib → specweave/lib/integrations/ado}/project-selector.js.map +0 -0
  905. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/IssueStateManager.js +0 -0
  906. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/IssueStateManager.ts +0 -0
  907. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/completion-calculator.js +0 -0
  908. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/completion-calculator.ts +0 -0
  909. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-batch-sync.js +0 -0
  910. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-batch-sync.ts +0 -0
  911. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-board-resolver-v2.js +0 -0
  912. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-board-resolver-v2.ts +0 -0
  913. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-board-resolver.d.js +0 -0
  914. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-board-resolver.d.ts +0 -0
  915. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-board-resolver.d.ts.map +0 -0
  916. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-board-resolver.js.map +0 -0
  917. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-client.d.js +0 -0
  918. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-client.d.ts +0 -0
  919. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-client.d.ts.map +0 -0
  920. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-client.js +0 -0
  921. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-client.js.map +0 -0
  922. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-client.ts +0 -0
  923. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-conflict-resolver.js +0 -0
  924. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-conflict-resolver.ts +0 -0
  925. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-feature-sync-cli.js +0 -0
  926. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-feature-sync-cli.ts +0 -0
  927. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-field-sync.js +0 -0
  928. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-field-sync.ts +0 -0
  929. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-graphql-client.js +0 -0
  930. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-graphql-client.ts +0 -0
  931. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-hierarchical-sync.d.js +0 -0
  932. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-hierarchical-sync.d.ts.map +0 -0
  933. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-hierarchical-sync.js.map +0 -0
  934. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-issue-body-generator.js +0 -0
  935. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-issue-body-generator.ts +0 -0
  936. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-issue-body-parser.js +0 -0
  937. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-issue-body-parser.ts +0 -0
  938. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-issue-updater.d.js +0 -0
  939. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-issue-updater.d.ts +0 -0
  940. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-issue-updater.d.ts.map +0 -0
  941. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-issue-updater.js.map +0 -0
  942. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-spec-commit-sync.d.js +0 -0
  943. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-spec-commit-sync.d.ts.map +0 -0
  944. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-spec-commit-sync.js.map +0 -0
  945. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-spec-frontmatter-updater.js +0 -0
  946. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-spec-sync.d.js +0 -0
  947. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-spec-sync.d.ts.map +0 -0
  948. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-spec-sync.js.map +0 -0
  949. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/github-sync-orchestrator.js +0 -0
  950. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/index.d.js +0 -0
  951. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/index.d.ts +0 -0
  952. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/index.d.ts.map +0 -0
  953. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/index.js +0 -0
  954. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/index.js.map +0 -0
  955. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/index.ts +0 -0
  956. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/progress-comment-builder.js +0 -0
  957. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/progress-comment-builder.ts +0 -0
  958. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/repo-selector.d.js +0 -0
  959. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/repo-selector.d.ts +0 -0
  960. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/repo-selector.d.ts.map +0 -0
  961. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/repo-selector.js +0 -0
  962. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/repo-selector.js.map +0 -0
  963. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/repo-selector.ts +0 -0
  964. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/types.d.js +0 -0
  965. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/types.d.ts +0 -0
  966. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/types.d.ts.map +0 -0
  967. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/types.js +0 -0
  968. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/types.js.map +0 -0
  969. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/types.ts +0 -0
  970. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/user-story-issue-builder.js +0 -0
  971. /package/plugins/{specweave-github/lib → specweave/lib/integrations/github}/user-story-issue-builder.ts +0 -0
  972. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/content-format-adapter.js +0 -0
  973. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/content-format-adapter.ts +0 -0
  974. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-board-resolver.d.js +0 -0
  975. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-board-resolver.d.ts.map +0 -0
  976. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-board-resolver.js +0 -0
  977. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-board-resolver.js.map +0 -0
  978. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-deployment-detector.js +0 -0
  979. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-deployment-detector.ts +0 -0
  980. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-field-discovery.js +0 -0
  981. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-field-discovery.ts +0 -0
  982. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-hierarchical-sync.d.js +0 -0
  983. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-hierarchical-sync.d.ts.map +0 -0
  984. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-hierarchical-sync.js.map +0 -0
  985. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-paginated-search.js +0 -0
  986. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-paginated-search.ts +0 -0
  987. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-permission-gate.js +0 -0
  988. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-permission-gate.ts +0 -0
  989. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-profile-resolver.js +0 -0
  990. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-profile-resolver.ts +0 -0
  991. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-spec-commit-sync.d.js +0 -0
  992. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-spec-commit-sync.d.ts.map +0 -0
  993. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-spec-commit-sync.js.map +0 -0
  994. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-spec-sync.d.js +0 -0
  995. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-spec-sync.d.ts.map +0 -0
  996. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/jira-spec-sync.js.map +0 -0
  997. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/metadata-paths.js +0 -0
  998. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/metadata-paths.ts +0 -0
  999. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/project-selector.d.js +0 -0
  1000. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/project-selector.d.ts.map +0 -0
  1001. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/project-selector.js +0 -0
  1002. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/project-selector.js.map +0 -0
  1003. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/reorganization-detector.d.js +0 -0
  1004. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/reorganization-detector.d.ts.map +0 -0
  1005. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/reorganization-detector.js +0 -0
  1006. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/reorganization-detector.js.map +0 -0
  1007. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/setup-wizard.d.ts.map +0 -0
  1008. /package/plugins/{specweave-jira/lib → specweave/lib/integrations/jira}/setup-wizard.js.map +0 -0
  1009. /package/plugins/{specweave-ado/reference → specweave/reference/ado}/ado-specweave-mapping.md +0 -0
  1010. /package/plugins/{specweave-github/reference → specweave/reference/github}/github-specweave-mapping.md +0 -0
  1011. /package/plugins/{specweave-jira/reference → specweave/reference/jira}/confluence-page-api.md +0 -0
  1012. /package/plugins/{specweave-jira/reference → specweave/reference/jira}/jira-specweave-mapping.md +0 -0
  1013. /package/plugins/{specweave-ado/scripts → specweave/scripts/ado}/refresh-cache.js +0 -0
  1014. /package/plugins/{specweave-ado/scripts → specweave/scripts/ado}/refresh-cache.ts +0 -0
  1015. /package/plugins/{specweave-jira/scripts → specweave/scripts/jira}/import-projects.js +0 -0
  1016. /package/plugins/{specweave-jira/scripts → specweave/scripts/jira}/import-projects.ts +0 -0
  1017. /package/plugins/{specweave-jira/scripts → specweave/scripts/jira}/refresh-cache.js +0 -0
  1018. /package/plugins/{specweave-jira/scripts → specweave/scripts/jira}/refresh-cache.ts +0 -0
  1019. /package/plugins/{specweave-ado → specweave}/skills/ado-mapper/SKILL.md +0 -0
  1020. /package/plugins/{specweave-ado → specweave}/skills/ado-multi-project/SKILL.md +0 -0
  1021. /package/plugins/{specweave-ado → specweave}/skills/ado-resource-validator/SKILL.md +0 -0
  1022. /package/plugins/{specweave-ado → specweave}/skills/ado-sync/README.md +0 -0
  1023. /package/plugins/{specweave-ado → specweave}/skills/ado-sync/SKILL.md +0 -0
  1024. /package/plugins/{specweave-diagrams → specweave}/skills/diagrams/SKILL.md +0 -0
  1025. /package/plugins/{specweave-github → specweave}/skills/github-issue-standard/SKILL.md +0 -0
  1026. /package/plugins/{specweave-github → specweave}/skills/github-multi-project/SKILL.md +0 -0
  1027. /package/plugins/{specweave-github → specweave}/skills/github-sync/SKILL.md +0 -0
  1028. /package/plugins/{specweave-github → specweave}/skills/github-sync/evals/HOW-TO-RUN-EVALS.md +0 -0
  1029. /package/plugins/{specweave-github → specweave}/skills/github-sync/evals/evals.json +0 -0
  1030. /package/plugins/{specweave-media → specweave}/skills/image/SKILL.md +0 -0
  1031. /package/plugins/{specweave-jira → specweave}/skills/jira-mapper/SKILL.md +0 -0
  1032. /package/plugins/{specweave-jira → specweave}/skills/jira-resource-validator/SKILL.md +0 -0
  1033. /package/plugins/{specweave-jira → specweave}/skills/jira-sync/README.md +0 -0
  1034. /package/plugins/{specweave-jira → specweave}/skills/jira-sync/SKILL.md +0 -0
  1035. /package/plugins/{specweave-github → specweave}/skills/pr-review/SKILL.md +0 -0
  1036. /package/plugins/{specweave-release → specweave}/skills/release-expert/SKILL.md +0 -0
  1037. /package/plugins/{specweave-media → specweave}/skills/remotion/SKILL.md +0 -0
  1038. /package/plugins/{specweave-media → specweave}/skills/video/SKILL.md +0 -0
@@ -0,0 +1,757 @@
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 * as fs from 'fs/promises';
18
+ import * as path from 'path';
19
+ import { existsSync } from 'fs';
20
+ import yaml from 'yaml';
21
+ import { detectDeploymentType, getApiBaseUrl } from './jira-deployment-detector.js';
22
+ import { toDescription } from './content-format-adapter.js';
23
+ import { getEpicLinkFieldForProject } from './jira-field-discovery.js';
24
+ import { searchAllIssues } from './jira-paginated-search.js';
25
+ import axios from 'axios';
26
+ import { SyncError } from '../../../../../src/core/errors/sync-error.js';
27
+ import { LockManager } from '../../../../../src/utils/lock-manager.js';
28
+ /**
29
+ * Build a JIRA story description from a UserStory.
30
+ * ACs are rendered as [ ]/[x] which content-format-adapter converts to native ADF taskList/taskItem checkboxes.
31
+ */
32
+ export function buildStoryDescription(us) {
33
+ const acList = us.acceptanceCriteria
34
+ .map(ac => `${ac.status === 'done' ? '[x]' : '[ ]'} ${ac.id}: ${ac.description}`)
35
+ .join('\n');
36
+ return `
37
+ h2. User Story
38
+
39
+ ${us.title}
40
+
41
+ h2. Acceptance Criteria
42
+
43
+ ${acList}
44
+
45
+ ----
46
+
47
+ *Priority*: ${us.priority}
48
+
49
+ *Status*: ${us.status}
50
+ `.trim();
51
+ }
52
+ export class JiraSpecSync {
53
+ constructor(config, projectRoot = process.cwd(), projectId, options) {
54
+ this.projectRoot = projectRoot;
55
+ this.specManager = new SpecMetadataManager(projectRoot, projectId);
56
+ this.config = config;
57
+ this.circuitBreakerRegistry = options?.circuitBreakerRegistry;
58
+ this.retryQueue = options?.retryQueue;
59
+ this.incrementId = options?.incrementId ?? '';
60
+ this.featureId = options?.featureId ?? '';
61
+ if (options?.lockDir) {
62
+ this.lockManager = new LockManager(options.lockDir);
63
+ }
64
+ // Create Jira API client — baseURL set dynamically via init()
65
+ this.client = axios.create({
66
+ baseURL: getApiBaseUrl(config.domain),
67
+ auth: {
68
+ username: config.email,
69
+ password: config.apiToken
70
+ },
71
+ headers: {
72
+ 'Accept': 'application/json',
73
+ 'Content-Type': 'application/json'
74
+ }
75
+ });
76
+ }
77
+ /**
78
+ * Execute fn under file lock (if lockManager configured).
79
+ */
80
+ async withLock(fn) {
81
+ if (!this.lockManager)
82
+ return fn();
83
+ const acquired = await this.lockManager.acquire();
84
+ if (!acquired) {
85
+ throw new SyncError('jira', 0, '', 'Failed to acquire JIRA sync lock');
86
+ }
87
+ try {
88
+ return await fn();
89
+ }
90
+ finally {
91
+ await this.lockManager.release();
92
+ }
93
+ }
94
+ /**
95
+ * Check circuit breaker before making API calls.
96
+ */
97
+ checkCircuitBreaker() {
98
+ if (!this.circuitBreakerRegistry)
99
+ return;
100
+ const breaker = this.circuitBreakerRegistry.get('jira');
101
+ if (!breaker.canSync()) {
102
+ throw new SyncError('jira', 0, '', 'Circuit breaker open for jira');
103
+ }
104
+ }
105
+ /**
106
+ * Record success on circuit breaker.
107
+ */
108
+ recordApiSuccess() {
109
+ if (!this.circuitBreakerRegistry)
110
+ return;
111
+ this.circuitBreakerRegistry.get('jira').recordSuccess();
112
+ }
113
+ /**
114
+ * Record failure on circuit breaker and optionally enqueue retry.
115
+ */
116
+ async recordApiFailure(error, operation) {
117
+ const httpStatus = error?.response?.status ?? 0;
118
+ if (this.circuitBreakerRegistry) {
119
+ this.circuitBreakerRegistry.get('jira').recordFailure();
120
+ }
121
+ if (this.retryQueue && httpStatus >= 500) {
122
+ await this.retryQueue.enqueue({
123
+ incrementId: this.incrementId,
124
+ provider: 'jira',
125
+ featureId: this.featureId,
126
+ projectPath: this.projectRoot,
127
+ projectName: this.config.projectKey,
128
+ error: `${httpStatus} ${operation}: ${error?.message ?? String(error)}`,
129
+ });
130
+ }
131
+ }
132
+ /**
133
+ * Initialize: detect deployment type and update client baseURL
134
+ */
135
+ async init() {
136
+ const deployment = await detectDeploymentType(this.config.domain, {
137
+ email: this.config.email,
138
+ apiToken: this.config.apiToken,
139
+ });
140
+ this.client.defaults.baseURL = deployment.baseUrl;
141
+ }
142
+ /**
143
+ * Sync spec to Jira Epic (CREATE or UPDATE)
144
+ */
145
+ async syncSpecToJira(specId) {
146
+ console.log(`\n🔄 Syncing spec ${specId} to Jira Epic...`);
147
+ return this.withLock(async () => {
148
+ this.checkCircuitBreaker();
149
+ try {
150
+ // 1. Load spec
151
+ const spec = await this.specManager.loadSpec(specId);
152
+ if (!spec) {
153
+ return {
154
+ success: false,
155
+ specId,
156
+ provider: 'jira',
157
+ error: `Spec ${specId} not found`
158
+ };
159
+ }
160
+ // 2. Check if spec already linked to Jira Epic
161
+ const existingLink = spec.metadata.externalLinks?.jira;
162
+ let epic;
163
+ if (existingLink?.epicKey) {
164
+ // UPDATE existing epic
165
+ console.log(` Found existing Jira Epic ${existingLink.epicKey}`);
166
+ epic = await this.updateJiraEpic(existingLink.epicKey, spec);
167
+ }
168
+ else {
169
+ // CREATE new epic
170
+ console.log(' Creating new Jira Epic...');
171
+ epic = await this.createJiraEpic(spec);
172
+ // Link spec to epic
173
+ await this.specManager.linkToExternal(specId, 'jira', {
174
+ id: epic.key,
175
+ url: epic.url,
176
+ projectKey: this.config.projectKey,
177
+ domain: this.config.domain
178
+ });
179
+ }
180
+ // 3. Sync user stories as Jira Stories
181
+ const changes = await this.syncUserStories(epic.key, spec);
182
+ this.recordApiSuccess();
183
+ console.log('✅ Sync complete!');
184
+ return {
185
+ success: true,
186
+ specId,
187
+ provider: 'jira',
188
+ externalId: epic.key,
189
+ url: epic.url,
190
+ changes
191
+ };
192
+ }
193
+ catch (error) {
194
+ await this.recordApiFailure(error, 'syncSpecToJira');
195
+ const axiosData = error?.response?.data;
196
+ const detail = axiosData ? JSON.stringify(axiosData) : '';
197
+ console.error('❌ Error syncing to Jira:', error?.message || error, detail ? `\n Response: ${detail}` : '');
198
+ return {
199
+ success: false,
200
+ specId,
201
+ provider: 'jira',
202
+ error: error instanceof Error ? error.message : 'Unknown error'
203
+ };
204
+ }
205
+ });
206
+ }
207
+ /**
208
+ * Sync FROM Jira Epic to spec (bidirectional)
209
+ */
210
+ async syncFromJira(specId) {
211
+ console.log(`\n🔄 Syncing FROM Jira to spec ${specId}...`);
212
+ return this.withLock(async () => {
213
+ this.checkCircuitBreaker();
214
+ try {
215
+ // 1. Load spec
216
+ const spec = await this.specManager.loadSpec(specId);
217
+ if (!spec) {
218
+ return {
219
+ success: false,
220
+ specId,
221
+ provider: 'jira',
222
+ error: `Spec ${specId} not found`
223
+ };
224
+ }
225
+ // 2. Get Jira Epic link
226
+ const jiraLink = spec.metadata.externalLinks?.jira;
227
+ if (!jiraLink?.epicKey) {
228
+ return {
229
+ success: false,
230
+ specId,
231
+ provider: 'jira',
232
+ error: 'Spec not linked to Jira Epic'
233
+ };
234
+ }
235
+ // 3. Fetch Jira Epic state
236
+ const epic = await this.fetchJiraEpic(jiraLink.epicKey);
237
+ // 4. Detect conflicts
238
+ const conflicts = await this.detectConflicts(spec, epic);
239
+ if (conflicts.length === 0) {
240
+ console.log('✅ No conflicts - spec and Jira in sync');
241
+ return {
242
+ success: true,
243
+ specId,
244
+ provider: 'jira',
245
+ externalId: epic.key,
246
+ url: epic.url
247
+ };
248
+ }
249
+ console.log(`⚠️ Detected ${conflicts.length} conflict(s)`);
250
+ // 5. Write conflict report
251
+ await this.writeConflictReport(specId, conflicts);
252
+ // 6. Resolve conflicts using configurable strategy (default: manual)
253
+ await this.resolveConflicts(spec, conflicts);
254
+ console.log('✅ Sync FROM Jira complete!');
255
+ return {
256
+ success: true,
257
+ specId,
258
+ provider: 'jira',
259
+ externalId: epic.key,
260
+ url: epic.url,
261
+ conflicts
262
+ };
263
+ }
264
+ catch (error) {
265
+ await this.recordApiFailure(error, 'syncFromJira');
266
+ console.error('❌ Error syncing FROM Jira:', error);
267
+ return {
268
+ success: false,
269
+ specId,
270
+ provider: 'jira',
271
+ error: error instanceof Error ? error.message : 'Unknown error'
272
+ };
273
+ }
274
+ });
275
+ }
276
+ /**
277
+ * Create new Jira Epic for spec
278
+ */
279
+ async createJiraEpic(spec) {
280
+ const epicSummary = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
281
+ const epicDescription = toDescription(this.generateEpicDescription(spec), this.config.domain);
282
+ // Determine issue type based on spec type (supports Bug for bug-type specs)
283
+ const issueType = this.mapTypeToJira(spec.metadata.type, 'Epic');
284
+ const payload = {
285
+ fields: {
286
+ project: {
287
+ key: this.config.projectKey
288
+ },
289
+ summary: epicSummary,
290
+ description: epicDescription,
291
+ issuetype: {
292
+ name: issueType
293
+ },
294
+ labels: [`spec:${spec.metadata.id}`, `priority:${spec.metadata.priority}`],
295
+ // Set native JIRA priority field (P0→Highest, P1→High, P2→Medium, P3→Low)
296
+ priority: {
297
+ name: this.mapPriorityToJira(spec.metadata.priority)
298
+ }
299
+ }
300
+ };
301
+ const response = await this.client.post('/issue', payload);
302
+ const epicData = response.data;
303
+ const epicKey = epicData.key;
304
+ const epicUrl = `https://${this.config.domain}/browse/${epicKey}`;
305
+ console.log(` ✅ Created Jira Epic ${epicKey}: ${epicUrl}`);
306
+ return {
307
+ id: epicData.id,
308
+ key: epicKey,
309
+ summary: epicSummary,
310
+ description: epicDescription,
311
+ status: { name: 'To Do' },
312
+ url: epicUrl
313
+ };
314
+ }
315
+ /**
316
+ * Update existing Jira Epic
317
+ */
318
+ async updateJiraEpic(epicKey, spec) {
319
+ const epicSummary = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
320
+ const epicDescription = toDescription(this.generateEpicDescription(spec), this.config.domain);
321
+ const payload = {
322
+ fields: {
323
+ summary: epicSummary,
324
+ description: epicDescription
325
+ }
326
+ };
327
+ await this.client.put(`/issue/${epicKey}`, payload);
328
+ // Fetch updated epic
329
+ const response = await this.client.get(`/issue/${epicKey}`);
330
+ const epicData = response.data;
331
+ console.log(` ✅ Updated Jira Epic ${epicKey}`);
332
+ return {
333
+ id: epicData.id,
334
+ key: epicKey,
335
+ summary: epicData.fields.summary,
336
+ description: epicData.fields.description,
337
+ status: epicData.fields.status,
338
+ url: `https://${this.config.domain}/browse/${epicKey}`
339
+ };
340
+ }
341
+ /**
342
+ * Sync user stories as Jira Stories
343
+ */
344
+ async syncUserStories(epicKey, spec) {
345
+ const created = [];
346
+ const updated = [];
347
+ const deleted = [];
348
+ if (!spec.metadata.userStories || spec.metadata.userStories.length === 0) {
349
+ console.log(' ℹ️ No user stories to sync');
350
+ return { created, updated, deleted };
351
+ }
352
+ console.log(` Syncing ${spec.metadata.userStories.length} user stories...`);
353
+ for (const us of spec.metadata.userStories) {
354
+ // Create or update Jira Story for each user story
355
+ const storySummary = `[${us.id}] ${us.title}`;
356
+ const storyDescription = this.generateStoryDescription(us);
357
+ // Check if story already exists (scoped to this spec to avoid US-ID collisions)
358
+ const existingStory = await this.findStoryByTitle(us.id, spec.metadata.id);
359
+ let storyKey;
360
+ if (existingStory) {
361
+ // UPDATE existing story (also set epicLink to fix orphaned stories)
362
+ await this.updateStory(existingStory.key, {
363
+ summary: storySummary,
364
+ description: storyDescription,
365
+ status: us.status === 'done' ? 'Done' : us.status === 'in-progress' ? 'In Progress' : 'To Do',
366
+ epicLink: epicKey
367
+ });
368
+ storyKey = existingStory.key;
369
+ updated.push(us.id);
370
+ console.log(` ✅ Updated ${us.id}`);
371
+ }
372
+ else {
373
+ // CREATE new story
374
+ const newStory = await this.createStory({
375
+ summary: storySummary,
376
+ description: storyDescription,
377
+ epicLink: epicKey,
378
+ labels: [`user-story`, `spec:${spec.metadata.id}`, `priority:${us.priority}`],
379
+ priority: us.priority
380
+ });
381
+ storyKey = newStory.key;
382
+ created.push(us.id);
383
+ console.log(` ✅ Created ${us.id} → Story ${newStory.key}`);
384
+ }
385
+ // Write JIRA story key back to living doc US file frontmatter
386
+ await this.writeJiraKeyToUSFile(spec.metadata.id, us.id, storyKey);
387
+ }
388
+ return { created, updated, deleted };
389
+ }
390
+ /**
391
+ * Write JIRA story key back to living doc US file frontmatter.
392
+ * Searches all project subdirs for the matching US file and adds external_tools.jira.key.
393
+ */
394
+ async writeJiraKeyToUSFile(featureId, usId, storyKey) {
395
+ try {
396
+ const specsRoot = path.join(this.projectRoot, '.specweave/docs/internal/specs');
397
+ if (!existsSync(specsRoot))
398
+ return;
399
+ for (const proj of await fs.readdir(specsRoot)) {
400
+ const featureDir = path.join(specsRoot, proj, featureId);
401
+ if (!existsSync(featureDir))
402
+ continue;
403
+ for (const file of await fs.readdir(featureDir)) {
404
+ if (!file.startsWith('us-') || !file.endsWith('.md'))
405
+ continue;
406
+ const filePath = path.join(featureDir, file);
407
+ const content = await fs.readFile(filePath, 'utf-8');
408
+ const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
409
+ if (!fmMatch)
410
+ continue;
411
+ const frontmatter = yaml.parse(fmMatch[1]);
412
+ if (frontmatter.id !== usId)
413
+ continue;
414
+ // Already has the key - skip
415
+ if (frontmatter.external_tools?.jira?.key === storyKey)
416
+ return;
417
+ // Update external_tools.jira.key
418
+ if (!frontmatter.external_tools)
419
+ frontmatter.external_tools = {};
420
+ if (!frontmatter.external_tools.jira)
421
+ frontmatter.external_tools.jira = {};
422
+ frontmatter.external_tools.jira.key = storyKey;
423
+ const newFm = yaml.stringify(frontmatter).trimEnd();
424
+ const rest = content.slice(fmMatch[0].length);
425
+ await fs.writeFile(filePath, `---\n${newFm}\n---${rest}`, 'utf-8');
426
+ console.log(` 📝 Saved JIRA key ${storyKey} to ${file}`);
427
+ return;
428
+ }
429
+ }
430
+ }
431
+ catch { /* non-blocking */ }
432
+ }
433
+ /**
434
+ * Generate epic description from spec
435
+ */
436
+ generateEpicDescription(spec) {
437
+ const progress = spec.metadata.progress;
438
+ const progressText = progress
439
+ ? `*Progress*: ${progress.percentComplete}% (${progress.completedUserStories}/${progress.totalUserStories} user stories)`
440
+ : '*Progress*: N/A';
441
+ return `
442
+ h1. ${spec.metadata.title}
443
+
444
+ *Spec ID*: ${spec.metadata.id}
445
+
446
+ *Priority*: ${spec.metadata.priority}
447
+
448
+ *Status*: ${spec.metadata.status}
449
+
450
+ ${progressText}
451
+
452
+ ----
453
+
454
+ ${SpecParser.extractOverview(spec.markdown)}
455
+
456
+ ----
457
+
458
+ h2. User Stories
459
+
460
+ ${spec.metadata.userStories?.length || 0} user stories tracked in this epic.
461
+
462
+ ----
463
+
464
+ Last updated: ${new Date().toISOString()}
465
+ `.trim();
466
+ }
467
+ /**
468
+ * Generate story description from user story
469
+ */
470
+ generateStoryDescription(us) {
471
+ return buildStoryDescription(us);
472
+ }
473
+ /**
474
+ * Detect conflicts between spec and Jira
475
+ */
476
+ async detectConflicts(spec, epic) {
477
+ const conflicts = [];
478
+ // Compare epic summary
479
+ const expectedSummary = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
480
+ if (epic.summary !== expectedSummary) {
481
+ conflicts.push({
482
+ type: 'metadata',
483
+ field: 'title',
484
+ localValue: spec.metadata.title,
485
+ remoteValue: epic.summary,
486
+ resolution: 'remote-wins',
487
+ description: 'Epic summary differs from spec title'
488
+ });
489
+ }
490
+ // TODO: Compare user stories and their statuses
491
+ return conflicts;
492
+ }
493
+ /**
494
+ * Resolve conflicts based on configurable strategy.
495
+ *
496
+ * Strategies:
497
+ * - 'manual' (default): Halt sync, report conflicts to user, no auto-resolve
498
+ * - 'remote-wins': Auto-resolve in favor of JIRA (remote)
499
+ * - 'local-wins': Auto-resolve in favor of spec (local)
500
+ * - 'report-only': Log conflicts, continue without resolving
501
+ */
502
+ async resolveConflicts(spec, conflicts, strategy = 'manual') {
503
+ if (strategy === 'manual') {
504
+ console.log(` ⚠️ ${conflicts.length} conflict(s) require manual resolution.`);
505
+ for (const conflict of conflicts) {
506
+ console.log(` - ${conflict.field}: local="${conflict.localValue}" vs remote="${conflict.remoteValue}"`);
507
+ }
508
+ console.log(` Sync halted. Review conflicts and resolve manually.`);
509
+ return;
510
+ }
511
+ if (strategy === 'report-only') {
512
+ console.log(` ℹ️ ${conflicts.length} conflict(s) detected (report-only mode):`);
513
+ for (const conflict of conflicts) {
514
+ console.log(` - ${conflict.field}: local="${conflict.localValue}" vs remote="${conflict.remoteValue}"`);
515
+ }
516
+ return;
517
+ }
518
+ for (const conflict of conflicts) {
519
+ if (strategy === 'remote-wins') {
520
+ console.log(` 🔄 Resolving: ${conflict.description} (Jira wins)`);
521
+ if (conflict.field === 'title') {
522
+ await this.specManager.saveMetadata(spec.metadata.id, {
523
+ title: conflict.remoteValue
524
+ });
525
+ }
526
+ }
527
+ else if (strategy === 'local-wins') {
528
+ console.log(` 🔄 Resolving: ${conflict.description} (local wins — no remote update)`);
529
+ // Local wins: keep spec as-is, no action needed
530
+ }
531
+ }
532
+ }
533
+ /**
534
+ * Write conflict report JSON file for detected conflicts.
535
+ */
536
+ async writeConflictReport(specId, conflicts) {
537
+ try {
538
+ const report = {
539
+ specId,
540
+ provider: 'jira',
541
+ timestamp: new Date().toISOString(),
542
+ conflicts: conflicts.map((c) => ({
543
+ field: c.field,
544
+ localValue: c.localValue,
545
+ remoteValue: c.remoteValue,
546
+ description: c.description,
547
+ })),
548
+ };
549
+ const reportsDir = path.join(this.specManager.projectRoot || process.cwd(), '.specweave', 'reports');
550
+ await fs.mkdir(reportsDir, { recursive: true });
551
+ const reportPath = path.join(reportsDir, 'conflict-report.json');
552
+ await fs.writeFile(reportPath, JSON.stringify(report, null, 2));
553
+ console.log(` 📄 Conflict report written to ${reportPath}`);
554
+ }
555
+ catch (err) {
556
+ console.warn(' ⚠️ Failed to write conflict report:', err.message);
557
+ }
558
+ }
559
+ /**
560
+ * Fetch Jira Epic details
561
+ */
562
+ async fetchJiraEpic(epicKey) {
563
+ const response = await this.client.get(`/issue/${epicKey}`);
564
+ const epicData = response.data;
565
+ return {
566
+ id: epicData.id,
567
+ key: epicKey,
568
+ summary: epicData.fields.summary,
569
+ description: epicData.fields.description,
570
+ status: epicData.fields.status,
571
+ url: `https://${this.config.domain}/browse/${epicKey}`
572
+ };
573
+ }
574
+ /**
575
+ * Find story by title pattern scoped to a specific spec (via label).
576
+ * US IDs like "US-001" are reused across features, so we must scope to
577
+ * the spec label (e.g. "spec:FS-526") to avoid false matches.
578
+ */
579
+ async findStoryByTitle(usId, specId) {
580
+ // Scope to spec label when available — prevents matching same US-ID from another feature
581
+ const specFilter = specId ? ` AND labels = "spec:${specId}"` : '';
582
+ // NOTE: POST /search/jql doesn't support != operator — use "not in (Epic)" instead.
583
+ const jql = `project = ${this.config.projectKey} AND summary ~ "[${usId}]"${specFilter} AND issuetype not in (Epic)`;
584
+ const issues = await searchAllIssues(this.client, {
585
+ jql,
586
+ fields: 'summary,description,status,labels',
587
+ maxResults: 1,
588
+ });
589
+ return issues.length > 0 ? {
590
+ id: issues[0].id,
591
+ key: issues[0].key,
592
+ summary: issues[0].fields.summary,
593
+ description: issues[0].fields.description,
594
+ status: issues[0].fields.status,
595
+ labels: issues[0].fields.labels || []
596
+ } : null;
597
+ }
598
+ /**
599
+ * Create Jira Story
600
+ */
601
+ async createStory(story) {
602
+ // Determine issue type with fallback for projects that lack "Story"
603
+ const preferredType = this.mapTypeToJira(story.type, 'Story');
604
+ const issueType = await this.resolveIssueType(preferredType);
605
+ // Discover epic link field dynamically based on project style
606
+ const { field: epicField, style } = await getEpicLinkFieldForProject(this.config.domain, this.config.projectKey, { email: this.config.email, apiToken: this.config.apiToken });
607
+ const fields = {
608
+ project: {
609
+ key: this.config.projectKey
610
+ },
611
+ summary: story.summary,
612
+ description: toDescription(story.description, this.config.domain),
613
+ issuetype: {
614
+ name: issueType
615
+ },
616
+ labels: story.labels,
617
+ priority: {
618
+ name: this.mapPriorityToJira(story.priority)
619
+ }
620
+ };
621
+ // Link to epic using the correct field for project style
622
+ if (style === 'next-gen') {
623
+ fields.parent = { key: story.epicLink };
624
+ }
625
+ else {
626
+ fields[epicField] = story.epicLink;
627
+ }
628
+ const payload = { fields };
629
+ const response = await this.client.post('/issue', payload);
630
+ const storyData = response.data;
631
+ return {
632
+ id: storyData.id,
633
+ key: storyData.key,
634
+ summary: story.summary,
635
+ description: story.description,
636
+ status: { name: 'To Do' },
637
+ labels: story.labels
638
+ };
639
+ }
640
+ /**
641
+ * Update Jira Story
642
+ */
643
+ async updateStory(storyKey, updates) {
644
+ const payload = {
645
+ fields: {}
646
+ };
647
+ if (updates.summary) {
648
+ payload.fields.summary = updates.summary;
649
+ }
650
+ if (updates.description) {
651
+ payload.fields.description = toDescription(updates.description, this.config.domain);
652
+ }
653
+ if (updates.epicLink) {
654
+ const { field: epicField, style } = await getEpicLinkFieldForProject(this.config.domain, this.config.projectKey, { email: this.config.email, apiToken: this.config.apiToken });
655
+ if (style === 'next-gen') {
656
+ payload.fields.parent = { key: updates.epicLink };
657
+ }
658
+ else {
659
+ payload.fields[epicField] = updates.epicLink;
660
+ }
661
+ }
662
+ await this.client.put(`/issue/${storyKey}`, payload);
663
+ // Handle status transition if needed
664
+ if (updates.status) {
665
+ await this.transitionIssue(storyKey, updates.status);
666
+ }
667
+ }
668
+ /**
669
+ * Transition issue to new status
670
+ */
671
+ async transitionIssue(issueKey, targetStatus) {
672
+ // Get available transitions
673
+ const transitionsResponse = await this.client.get(`/issue/${issueKey}/transitions`);
674
+ const transitions = transitionsResponse.data.transitions;
675
+ // Find transition matching target status
676
+ const transition = transitions.find((t) => t.to.name.toLowerCase() === targetStatus.toLowerCase());
677
+ if (!transition) {
678
+ console.warn(` ⚠️ Cannot transition ${issueKey} to ${targetStatus} (no valid transition)`);
679
+ return;
680
+ }
681
+ // Execute transition
682
+ await this.client.post(`/issue/${issueKey}/transitions`, {
683
+ transition: {
684
+ id: transition.id
685
+ }
686
+ });
687
+ }
688
+ /**
689
+ * Resolve the actual issue type name available in this project.
690
+ * Falls back through preferred → alternatives if the preferred type doesn't exist.
691
+ */
692
+ async resolveIssueType(preferred) {
693
+ try {
694
+ const response = await this.client.get(`/issue/createmeta/${this.config.projectKey}/issuetypes`);
695
+ const types = response.data.issueTypes || [];
696
+ const available = types.filter(t => !t.subtask).map(t => t.name);
697
+ if (available.includes(preferred))
698
+ return preferred;
699
+ // Fallback chain: Story → Task → New Feature → first available
700
+ const fallbacks = ['Story', 'Task', 'New Feature', 'Improvement'];
701
+ for (const fb of fallbacks) {
702
+ if (available.includes(fb)) {
703
+ console.log(` ℹ️ Issue type "${preferred}" not available, using "${fb}"`);
704
+ return fb;
705
+ }
706
+ }
707
+ if (available.length > 0) {
708
+ console.log(` ℹ️ Issue type "${preferred}" not available, using "${available[0]}"`);
709
+ return available[0];
710
+ }
711
+ }
712
+ catch {
713
+ // If createmeta fails, just use preferred and let the create call handle it
714
+ }
715
+ return preferred;
716
+ }
717
+ /**
718
+ * Map SpecWeave priority to JIRA priority name
719
+ *
720
+ * JIRA standard priority names: Highest, High, Medium, Low, Lowest
721
+ */
722
+ mapPriorityToJira(priority) {
723
+ if (!priority)
724
+ return 'Medium';
725
+ const map = {
726
+ P0: 'Highest',
727
+ P1: 'High',
728
+ P2: 'Medium',
729
+ P3: 'Low',
730
+ p0: 'Highest',
731
+ p1: 'High',
732
+ p2: 'Medium',
733
+ p3: 'Low'
734
+ };
735
+ return map[priority] || 'Medium';
736
+ }
737
+ /**
738
+ * Map SpecWeave type to JIRA issue type
739
+ *
740
+ * Supports: Epic, Story, Bug, Task
741
+ */
742
+ mapTypeToJira(type, defaultType = 'Story') {
743
+ if (!type)
744
+ return defaultType;
745
+ const normalizedType = type.toLowerCase();
746
+ const map = {
747
+ bug: 'Bug',
748
+ feature: 'Epic',
749
+ epic: 'Epic',
750
+ story: 'Story',
751
+ task: 'Task',
752
+ enhancement: 'Story'
753
+ };
754
+ return map[normalizedType] || defaultType;
755
+ }
756
+ }
757
+ //# sourceMappingURL=jira-spec-sync.js.map