specweave 0.12.0 → 0.12.2

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 (674) hide show
  1. package/CLAUDE.md +22 -0
  2. package/dist/cli/commands/init.d.ts.map +1 -1
  3. package/dist/cli/commands/init.js +44 -12
  4. package/dist/cli/commands/init.js.map +1 -1
  5. package/dist/core/specs/spec-metadata-manager.d.ts +70 -0
  6. package/dist/core/specs/spec-metadata-manager.d.ts.map +1 -0
  7. package/dist/core/specs/spec-metadata-manager.js +371 -0
  8. package/dist/core/specs/spec-metadata-manager.js.map +1 -0
  9. package/dist/core/specs/spec-parser.d.ts +66 -0
  10. package/dist/core/specs/spec-parser.d.ts.map +1 -0
  11. package/dist/core/specs/spec-parser.js +276 -0
  12. package/dist/core/specs/spec-parser.js.map +1 -0
  13. package/dist/core/types/config.d.ts.map +1 -1
  14. package/dist/core/types/config.js +7 -0
  15. package/dist/core/types/config.js.map +1 -1
  16. package/dist/core/types/spec-metadata.d.ts +229 -0
  17. package/dist/core/types/spec-metadata.d.ts.map +1 -0
  18. package/dist/core/types/spec-metadata.js +14 -0
  19. package/dist/core/types/spec-metadata.js.map +1 -0
  20. package/dist/hooks/lib/prepare-reflection-context.js +1 -1
  21. package/dist/hooks/lib/prepare-reflection-context.js.map +1 -1
  22. package/dist/utils/external-resource-validator.d.ts.map +1 -1
  23. package/dist/utils/external-resource-validator.js +101 -59
  24. package/dist/utils/external-resource-validator.js.map +1 -1
  25. package/package.json +10 -3
  26. package/plugins/specweave/agents/pm/AGENT.md +183 -0
  27. package/plugins/specweave/hooks/post-increment-change.sh +94 -0
  28. package/plugins/specweave/hooks/post-increment-status-change.sh +143 -0
  29. package/plugins/specweave/hooks/post-spec-update.sh +158 -0
  30. package/plugins/specweave/hooks/post-user-story-complete.sh +179 -0
  31. package/plugins/specweave/lib/hooks/sync-living-docs.ts +57 -16
  32. package/plugins/specweave/skills/increment-planner/SKILL.md +17 -0
  33. package/plugins/specweave-ado/commands/specweave-ado-sync-spec.md +255 -0
  34. package/plugins/specweave-ado/lib/ado-spec-sync.ts +593 -0
  35. package/plugins/specweave-ado/skills/ado-sync/SKILL.md +12 -6
  36. package/plugins/specweave-github/commands/specweave-github-sync-from.md +147 -0
  37. package/plugins/specweave-github/commands/specweave-github-sync-spec.md +208 -0
  38. package/plugins/specweave-github/lib/cli-sync-increment-changes.ts +33 -0
  39. package/plugins/specweave-github/lib/github-issue-updater.ts +449 -0
  40. package/plugins/specweave-github/lib/github-spec-sync.ts +656 -0
  41. package/plugins/specweave-github/lib/github-sync-bidirectional.ts +342 -0
  42. package/plugins/specweave-github/lib/github-sync-increment-changes.ts +380 -0
  43. package/plugins/specweave-github/skills/github-sync/SKILL.md +16 -8
  44. package/plugins/specweave-jira/commands/specweave-jira-sync-spec.md +240 -0
  45. package/plugins/specweave-jira/lib/jira-spec-sync.ts +582 -0
  46. package/plugins/specweave-jira/skills/jira-sync/SKILL.md +20 -5
  47. package/src/templates/AGENTS.md.template +55 -9
  48. package/dist/cli/commands/docs-build.d.ts +0 -7
  49. package/dist/cli/commands/docs-build.d.ts.map +0 -1
  50. package/dist/cli/commands/docs-build.js +0 -31
  51. package/dist/cli/commands/docs-build.js.map +0 -1
  52. package/dist/cli/commands/docs-preview.d.ts +0 -7
  53. package/dist/cli/commands/docs-preview.d.ts.map +0 -1
  54. package/dist/cli/commands/docs-preview.js +0 -50
  55. package/dist/cli/commands/docs-preview.js.map +0 -1
  56. package/dist/cli/commands/docs-setup.d.ts +0 -7
  57. package/dist/cli/commands/docs-setup.d.ts.map +0 -1
  58. package/dist/cli/commands/docs-setup.js +0 -31
  59. package/dist/cli/commands/docs-setup.js.map +0 -1
  60. package/dist/cli/commands/plugin.d.ts +0 -54
  61. package/dist/cli/commands/plugin.d.ts.map +0 -1
  62. package/dist/core/rfc-generator.d.ts +0 -147
  63. package/dist/core/rfc-generator.d.ts.map +0 -1
  64. package/dist/core/rfc-generator.js +0 -434
  65. package/dist/core/rfc-generator.js.map +0 -1
  66. package/dist/core/schemas/plugin-manifest.schema.json +0 -253
  67. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts +0 -89
  68. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.map +0 -1
  69. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js +0 -226
  70. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js.map +0 -1
  71. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts +0 -60
  72. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.map +0 -1
  73. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js +0 -201
  74. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js.map +0 -1
  75. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts +0 -42
  76. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.map +0 -1
  77. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js +0 -123
  78. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js.map +0 -1
  79. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts +0 -45
  80. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.map +0 -1
  81. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js +0 -132
  82. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js.map +0 -1
  83. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts +0 -33
  84. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts.map +0 -1
  85. package/dist/plugins/specweave/lib/hooks/reflection-parser.js +0 -419
  86. package/dist/plugins/specweave/lib/hooks/reflection-parser.js.map +0 -1
  87. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts +0 -56
  88. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.map +0 -1
  89. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js +0 -239
  90. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js.map +0 -1
  91. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts +0 -64
  92. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts.map +0 -1
  93. package/dist/plugins/specweave/lib/hooks/reflection-storage.js +0 -305
  94. package/dist/plugins/specweave/lib/hooks/reflection-storage.js.map +0 -1
  95. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts +0 -43
  96. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts.map +0 -1
  97. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js +0 -203
  98. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js.map +0 -1
  99. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts +0 -27
  100. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +0 -1
  101. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +0 -116
  102. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +0 -1
  103. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts +0 -59
  104. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts.map +0 -1
  105. package/dist/plugins/specweave/lib/hooks/translate-file.js +0 -350
  106. package/dist/plugins/specweave/lib/hooks/translate-file.js.map +0 -1
  107. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts +0 -13
  108. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts.map +0 -1
  109. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js +0 -175
  110. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js.map +0 -1
  111. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts +0 -164
  112. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts.map +0 -1
  113. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js +0 -73
  114. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js.map +0 -1
  115. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts +0 -29
  116. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts.map +0 -1
  117. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js +0 -203
  118. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js.map +0 -1
  119. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts +0 -94
  120. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +0 -1
  121. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +0 -219
  122. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +0 -1
  123. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts +0 -124
  124. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts.map +0 -1
  125. package/dist/plugins/specweave-ado/lib/ado-client-v2.js +0 -382
  126. package/dist/plugins/specweave-ado/lib/ado-client-v2.js.map +0 -1
  127. package/dist/plugins/specweave-ado/lib/ado-client.d.ts +0 -112
  128. package/dist/plugins/specweave-ado/lib/ado-client.d.ts.map +0 -1
  129. package/dist/plugins/specweave-ado/lib/ado-client.js +0 -257
  130. package/dist/plugins/specweave-ado/lib/ado-client.js.map +0 -1
  131. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts +0 -40
  132. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts.map +0 -1
  133. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js +0 -370
  134. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js.map +0 -1
  135. package/dist/plugins/specweave-ado/lib/project-selector.d.ts +0 -42
  136. package/dist/plugins/specweave-ado/lib/project-selector.d.ts.map +0 -1
  137. package/dist/plugins/specweave-ado/lib/project-selector.js +0 -211
  138. package/dist/plugins/specweave-ado/lib/project-selector.js.map +0 -1
  139. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts +0 -54
  140. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts.map +0 -1
  141. package/dist/plugins/specweave-github/lib/github-board-resolver.js +0 -122
  142. package/dist/plugins/specweave-github/lib/github-board-resolver.js.map +0 -1
  143. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +0 -104
  144. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +0 -1
  145. package/dist/plugins/specweave-github/lib/github-client-v2.js +0 -408
  146. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +0 -1
  147. package/dist/plugins/specweave-github/lib/github-client.d.ts +0 -96
  148. package/dist/plugins/specweave-github/lib/github-client.d.ts.map +0 -1
  149. package/dist/plugins/specweave-github/lib/github-client.js +0 -299
  150. package/dist/plugins/specweave-github/lib/github-client.js.map +0 -1
  151. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts +0 -29
  152. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts.map +0 -1
  153. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js +0 -268
  154. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js.map +0 -1
  155. package/dist/plugins/specweave-github/lib/index.d.ts +0 -10
  156. package/dist/plugins/specweave-github/lib/index.d.ts.map +0 -1
  157. package/dist/plugins/specweave-github/lib/index.js +0 -10
  158. package/dist/plugins/specweave-github/lib/index.js.map +0 -1
  159. package/dist/plugins/specweave-github/lib/repo-selector.d.ts +0 -49
  160. package/dist/plugins/specweave-github/lib/repo-selector.d.ts.map +0 -1
  161. package/dist/plugins/specweave-github/lib/repo-selector.js +0 -216
  162. package/dist/plugins/specweave-github/lib/repo-selector.js.map +0 -1
  163. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts +0 -51
  164. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts.map +0 -1
  165. package/dist/plugins/specweave-github/lib/subtask-sync.js +0 -147
  166. package/dist/plugins/specweave-github/lib/subtask-sync.js.map +0 -1
  167. package/dist/plugins/specweave-github/lib/task-parser.d.ts +0 -37
  168. package/dist/plugins/specweave-github/lib/task-parser.d.ts.map +0 -1
  169. package/dist/plugins/specweave-github/lib/task-parser.js +0 -211
  170. package/dist/plugins/specweave-github/lib/task-parser.js.map +0 -1
  171. package/dist/plugins/specweave-github/lib/task-sync.d.ts +0 -51
  172. package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +0 -1
  173. package/dist/plugins/specweave-github/lib/task-sync.js +0 -332
  174. package/dist/plugins/specweave-github/lib/task-sync.js.map +0 -1
  175. package/dist/plugins/specweave-github/lib/types.d.ts +0 -80
  176. package/dist/plugins/specweave-github/lib/types.d.ts.map +0 -1
  177. package/dist/plugins/specweave-github/lib/types.js +0 -5
  178. package/dist/plugins/specweave-github/lib/types.js.map +0 -1
  179. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +0 -50
  180. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +0 -1
  181. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +0 -84
  182. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +0 -1
  183. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts +0 -33
  184. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts.map +0 -1
  185. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js +0 -206
  186. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js.map +0 -1
  187. package/dist/plugins/specweave-jira/lib/project-selector.d.ts +0 -42
  188. package/dist/plugins/specweave-jira/lib/project-selector.d.ts.map +0 -1
  189. package/dist/plugins/specweave-jira/lib/project-selector.js +0 -216
  190. package/dist/plugins/specweave-jira/lib/project-selector.js.map +0 -1
  191. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts +0 -67
  192. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts.map +0 -1
  193. package/dist/plugins/specweave-jira/lib/reorganization-detector.js +0 -252
  194. package/dist/plugins/specweave-jira/lib/reorganization-detector.js.map +0 -1
  195. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts +0 -29
  196. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts.map +0 -1
  197. package/dist/plugins/specweave-jira/lib/setup-wizard.js +0 -219
  198. package/dist/plugins/specweave-jira/lib/setup-wizard.js.map +0 -1
  199. package/dist/src/adapters/adapter-base.d.ts +0 -71
  200. package/dist/src/adapters/adapter-base.d.ts.map +0 -1
  201. package/dist/src/adapters/adapter-base.js +0 -139
  202. package/dist/src/adapters/adapter-base.js.map +0 -1
  203. package/dist/src/adapters/adapter-interface.d.ts +0 -149
  204. package/dist/src/adapters/adapter-interface.d.ts.map +0 -1
  205. package/dist/src/adapters/adapter-interface.js +0 -8
  206. package/dist/src/adapters/adapter-interface.js.map +0 -1
  207. package/dist/src/adapters/adapter-loader.d.ts +0 -91
  208. package/dist/src/adapters/adapter-loader.d.ts.map +0 -1
  209. package/dist/src/adapters/adapter-loader.js +0 -238
  210. package/dist/src/adapters/adapter-loader.js.map +0 -1
  211. package/dist/src/adapters/agents-md-generator.d.ts +0 -48
  212. package/dist/src/adapters/agents-md-generator.d.ts.map +0 -1
  213. package/dist/src/adapters/agents-md-generator.js +0 -193
  214. package/dist/src/adapters/agents-md-generator.js.map +0 -1
  215. package/dist/src/adapters/claude/adapter.d.ts +0 -128
  216. package/dist/src/adapters/claude/adapter.d.ts.map +0 -1
  217. package/dist/src/adapters/claude/adapter.js +0 -415
  218. package/dist/src/adapters/claude/adapter.js.map +0 -1
  219. package/dist/src/adapters/claude-md-generator.d.ts +0 -78
  220. package/dist/src/adapters/claude-md-generator.d.ts.map +0 -1
  221. package/dist/src/adapters/claude-md-generator.js +0 -307
  222. package/dist/src/adapters/claude-md-generator.js.map +0 -1
  223. package/dist/src/adapters/codex/adapter.d.ts +0 -50
  224. package/dist/src/adapters/codex/adapter.d.ts.map +0 -1
  225. package/dist/src/adapters/codex/adapter.js +0 -316
  226. package/dist/src/adapters/codex/adapter.js.map +0 -1
  227. package/dist/src/adapters/cursor/adapter.d.ts +0 -98
  228. package/dist/src/adapters/cursor/adapter.d.ts.map +0 -1
  229. package/dist/src/adapters/cursor/adapter.js +0 -406
  230. package/dist/src/adapters/cursor/adapter.js.map +0 -1
  231. package/dist/src/adapters/doc-generator.d.ts +0 -69
  232. package/dist/src/adapters/doc-generator.d.ts.map +0 -1
  233. package/dist/src/adapters/doc-generator.js +0 -247
  234. package/dist/src/adapters/doc-generator.js.map +0 -1
  235. package/dist/src/adapters/gemini/adapter.d.ts +0 -50
  236. package/dist/src/adapters/gemini/adapter.d.ts.map +0 -1
  237. package/dist/src/adapters/gemini/adapter.js +0 -281
  238. package/dist/src/adapters/gemini/adapter.js.map +0 -1
  239. package/dist/src/adapters/generic/adapter.d.ts +0 -86
  240. package/dist/src/adapters/generic/adapter.d.ts.map +0 -1
  241. package/dist/src/adapters/generic/adapter.js +0 -338
  242. package/dist/src/adapters/generic/adapter.js.map +0 -1
  243. package/dist/src/cli/commands/abandon.d.ts +0 -13
  244. package/dist/src/cli/commands/abandon.d.ts.map +0 -1
  245. package/dist/src/cli/commands/abandon.js +0 -15
  246. package/dist/src/cli/commands/abandon.js.map +0 -1
  247. package/dist/src/cli/commands/import-docs.d.ts +0 -21
  248. package/dist/src/cli/commands/import-docs.d.ts.map +0 -1
  249. package/dist/src/cli/commands/import-docs.js +0 -146
  250. package/dist/src/cli/commands/import-docs.js.map +0 -1
  251. package/dist/src/cli/commands/init-multiproject.d.ts +0 -11
  252. package/dist/src/cli/commands/init-multiproject.d.ts.map +0 -1
  253. package/dist/src/cli/commands/init-multiproject.js +0 -202
  254. package/dist/src/cli/commands/init-multiproject.js.map +0 -1
  255. package/dist/src/cli/commands/init.d.ts +0 -9
  256. package/dist/src/cli/commands/init.d.ts.map +0 -1
  257. package/dist/src/cli/commands/init.js +0 -1205
  258. package/dist/src/cli/commands/init.js.map +0 -1
  259. package/dist/src/cli/commands/install.d.ts +0 -9
  260. package/dist/src/cli/commands/install.d.ts.map +0 -1
  261. package/dist/src/cli/commands/install.js +0 -127
  262. package/dist/src/cli/commands/install.js.map +0 -1
  263. package/dist/src/cli/commands/list.d.ts +0 -8
  264. package/dist/src/cli/commands/list.d.ts.map +0 -1
  265. package/dist/src/cli/commands/list.js +0 -119
  266. package/dist/src/cli/commands/list.js.map +0 -1
  267. package/dist/src/cli/commands/migrate-to-multiproject.d.ts +0 -37
  268. package/dist/src/cli/commands/migrate-to-multiproject.d.ts.map +0 -1
  269. package/dist/src/cli/commands/migrate-to-multiproject.js +0 -189
  270. package/dist/src/cli/commands/migrate-to-multiproject.js.map +0 -1
  271. package/dist/src/cli/commands/migrate-to-profiles.d.ts +0 -25
  272. package/dist/src/cli/commands/migrate-to-profiles.d.ts.map +0 -1
  273. package/dist/src/cli/commands/migrate-to-profiles.js +0 -350
  274. package/dist/src/cli/commands/migrate-to-profiles.js.map +0 -1
  275. package/dist/src/cli/commands/pause.d.ts +0 -13
  276. package/dist/src/cli/commands/pause.d.ts.map +0 -1
  277. package/dist/src/cli/commands/pause.js +0 -15
  278. package/dist/src/cli/commands/pause.js.map +0 -1
  279. package/dist/src/cli/commands/qa.d.ts +0 -54
  280. package/dist/src/cli/commands/qa.d.ts.map +0 -1
  281. package/dist/src/cli/commands/qa.js +0 -98
  282. package/dist/src/cli/commands/qa.js.map +0 -1
  283. package/dist/src/cli/commands/resume.d.ts +0 -12
  284. package/dist/src/cli/commands/resume.d.ts.map +0 -1
  285. package/dist/src/cli/commands/resume.js +0 -14
  286. package/dist/src/cli/commands/resume.js.map +0 -1
  287. package/dist/src/cli/commands/status.d.ts +0 -12
  288. package/dist/src/cli/commands/status.d.ts.map +0 -1
  289. package/dist/src/cli/commands/status.js +0 -23
  290. package/dist/src/cli/commands/status.js.map +0 -1
  291. package/dist/src/cli/commands/switch-project.d.ts +0 -13
  292. package/dist/src/cli/commands/switch-project.d.ts.map +0 -1
  293. package/dist/src/cli/commands/switch-project.js +0 -91
  294. package/dist/src/cli/commands/switch-project.js.map +0 -1
  295. package/dist/src/cli/commands/validate-jira.d.ts +0 -35
  296. package/dist/src/cli/commands/validate-jira.d.ts.map +0 -1
  297. package/dist/src/cli/commands/validate-jira.js +0 -112
  298. package/dist/src/cli/commands/validate-jira.js.map +0 -1
  299. package/dist/src/cli/commands/validate-plugins.d.ts +0 -41
  300. package/dist/src/cli/commands/validate-plugins.d.ts.map +0 -1
  301. package/dist/src/cli/commands/validate-plugins.js +0 -171
  302. package/dist/src/cli/commands/validate-plugins.js.map +0 -1
  303. package/dist/src/cli/helpers/issue-tracker/ado.d.ts +0 -57
  304. package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +0 -1
  305. package/dist/src/cli/helpers/issue-tracker/ado.js +0 -243
  306. package/dist/src/cli/helpers/issue-tracker/ado.js.map +0 -1
  307. package/dist/src/cli/helpers/issue-tracker/github.d.ts +0 -65
  308. package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +0 -1
  309. package/dist/src/cli/helpers/issue-tracker/github.js +0 -426
  310. package/dist/src/cli/helpers/issue-tracker/github.js.map +0 -1
  311. package/dist/src/cli/helpers/issue-tracker/index.d.ts +0 -22
  312. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +0 -1
  313. package/dist/src/cli/helpers/issue-tracker/index.js +0 -314
  314. package/dist/src/cli/helpers/issue-tracker/index.js.map +0 -1
  315. package/dist/src/cli/helpers/issue-tracker/jira.d.ts +0 -61
  316. package/dist/src/cli/helpers/issue-tracker/jira.d.ts.map +0 -1
  317. package/dist/src/cli/helpers/issue-tracker/jira.js +0 -404
  318. package/dist/src/cli/helpers/issue-tracker/jira.js.map +0 -1
  319. package/dist/src/cli/helpers/issue-tracker/types.d.ts +0 -107
  320. package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +0 -1
  321. package/dist/src/cli/helpers/issue-tracker/types.js +0 -16
  322. package/dist/src/cli/helpers/issue-tracker/types.js.map +0 -1
  323. package/dist/src/cli/helpers/issue-tracker/utils.d.ts +0 -112
  324. package/dist/src/cli/helpers/issue-tracker/utils.d.ts.map +0 -1
  325. package/dist/src/cli/helpers/issue-tracker/utils.js +0 -247
  326. package/dist/src/cli/helpers/issue-tracker/utils.js.map +0 -1
  327. package/dist/src/core/agent-model-manager.d.ts +0 -52
  328. package/dist/src/core/agent-model-manager.d.ts.map +0 -1
  329. package/dist/src/core/agent-model-manager.js +0 -120
  330. package/dist/src/core/agent-model-manager.js.map +0 -1
  331. package/dist/src/core/brownfield/analyzer.d.ts +0 -86
  332. package/dist/src/core/brownfield/analyzer.d.ts.map +0 -1
  333. package/dist/src/core/brownfield/analyzer.js +0 -365
  334. package/dist/src/core/brownfield/analyzer.js.map +0 -1
  335. package/dist/src/core/brownfield/importer.d.ts +0 -76
  336. package/dist/src/core/brownfield/importer.d.ts.map +0 -1
  337. package/dist/src/core/brownfield/importer.js +0 -287
  338. package/dist/src/core/brownfield/importer.js.map +0 -1
  339. package/dist/src/core/config-manager.d.ts +0 -47
  340. package/dist/src/core/config-manager.d.ts.map +0 -1
  341. package/dist/src/core/config-manager.js +0 -136
  342. package/dist/src/core/config-manager.js.map +0 -1
  343. package/dist/src/core/cost-tracker.d.ts +0 -108
  344. package/dist/src/core/cost-tracker.d.ts.map +0 -1
  345. package/dist/src/core/cost-tracker.js +0 -281
  346. package/dist/src/core/cost-tracker.js.map +0 -1
  347. package/dist/src/core/credentials-manager.d.ts +0 -107
  348. package/dist/src/core/credentials-manager.d.ts.map +0 -1
  349. package/dist/src/core/credentials-manager.js +0 -457
  350. package/dist/src/core/credentials-manager.js.map +0 -1
  351. package/dist/src/core/i18n/language-detector.d.ts +0 -29
  352. package/dist/src/core/i18n/language-detector.d.ts.map +0 -1
  353. package/dist/src/core/i18n/language-detector.js +0 -143
  354. package/dist/src/core/i18n/language-detector.js.map +0 -1
  355. package/dist/src/core/i18n/language-manager.d.ts +0 -101
  356. package/dist/src/core/i18n/language-manager.d.ts.map +0 -1
  357. package/dist/src/core/i18n/language-manager.js +0 -232
  358. package/dist/src/core/i18n/language-manager.js.map +0 -1
  359. package/dist/src/core/i18n/language-registry.d.ts +0 -44
  360. package/dist/src/core/i18n/language-registry.d.ts.map +0 -1
  361. package/dist/src/core/i18n/language-registry.js +0 -234
  362. package/dist/src/core/i18n/language-registry.js.map +0 -1
  363. package/dist/src/core/i18n/locale-manager.d.ts +0 -62
  364. package/dist/src/core/i18n/locale-manager.d.ts.map +0 -1
  365. package/dist/src/core/i18n/locale-manager.js +0 -137
  366. package/dist/src/core/i18n/locale-manager.js.map +0 -1
  367. package/dist/src/core/i18n/system-prompt-injector.d.ts +0 -33
  368. package/dist/src/core/i18n/system-prompt-injector.d.ts.map +0 -1
  369. package/dist/src/core/i18n/system-prompt-injector.js +0 -131
  370. package/dist/src/core/i18n/system-prompt-injector.js.map +0 -1
  371. package/dist/src/core/i18n/types.d.ts +0 -151
  372. package/dist/src/core/i18n/types.d.ts.map +0 -1
  373. package/dist/src/core/i18n/types.js +0 -11
  374. package/dist/src/core/i18n/types.js.map +0 -1
  375. package/dist/src/core/increment/limits.d.ts +0 -68
  376. package/dist/src/core/increment/limits.d.ts.map +0 -1
  377. package/dist/src/core/increment/limits.js +0 -224
  378. package/dist/src/core/increment/limits.js.map +0 -1
  379. package/dist/src/core/increment/metadata-manager.d.ts +0 -114
  380. package/dist/src/core/increment/metadata-manager.d.ts.map +0 -1
  381. package/dist/src/core/increment/metadata-manager.js +0 -320
  382. package/dist/src/core/increment/metadata-manager.js.map +0 -1
  383. package/dist/src/core/increment/status-commands.d.ts +0 -43
  384. package/dist/src/core/increment/status-commands.d.ts.map +0 -1
  385. package/dist/src/core/increment/status-commands.js +0 -277
  386. package/dist/src/core/increment/status-commands.js.map +0 -1
  387. package/dist/src/core/increment-status.d.ts +0 -72
  388. package/dist/src/core/increment-status.d.ts.map +0 -1
  389. package/dist/src/core/increment-status.js +0 -227
  390. package/dist/src/core/increment-status.js.map +0 -1
  391. package/dist/src/core/model-selector.d.ts +0 -57
  392. package/dist/src/core/model-selector.d.ts.map +0 -1
  393. package/dist/src/core/model-selector.js +0 -115
  394. package/dist/src/core/model-selector.js.map +0 -1
  395. package/dist/src/core/phase-detector.d.ts +0 -62
  396. package/dist/src/core/phase-detector.d.ts.map +0 -1
  397. package/dist/src/core/phase-detector.js +0 -229
  398. package/dist/src/core/phase-detector.js.map +0 -1
  399. package/dist/src/core/plugin-loader.d.ts +0 -131
  400. package/dist/src/core/plugin-loader.d.ts.map +0 -1
  401. package/dist/src/core/plugin-loader.js +0 -421
  402. package/dist/src/core/plugin-loader.js.map +0 -1
  403. package/dist/src/core/project-manager.d.ts +0 -127
  404. package/dist/src/core/project-manager.d.ts.map +0 -1
  405. package/dist/src/core/project-manager.js +0 -524
  406. package/dist/src/core/project-manager.js.map +0 -1
  407. package/dist/src/core/project-structure-detector.d.ts +0 -92
  408. package/dist/src/core/project-structure-detector.d.ts.map +0 -1
  409. package/dist/src/core/project-structure-detector.js +0 -289
  410. package/dist/src/core/project-structure-detector.js.map +0 -1
  411. package/dist/src/core/qa/qa-runner.d.ts +0 -16
  412. package/dist/src/core/qa/qa-runner.d.ts.map +0 -1
  413. package/dist/src/core/qa/qa-runner.js +0 -404
  414. package/dist/src/core/qa/qa-runner.js.map +0 -1
  415. package/dist/src/core/qa/quality-gate-decider.d.ts +0 -53
  416. package/dist/src/core/qa/quality-gate-decider.d.ts.map +0 -1
  417. package/dist/src/core/qa/quality-gate-decider.js +0 -268
  418. package/dist/src/core/qa/quality-gate-decider.js.map +0 -1
  419. package/dist/src/core/qa/risk-calculator.d.ts +0 -126
  420. package/dist/src/core/qa/risk-calculator.d.ts.map +0 -1
  421. package/dist/src/core/qa/risk-calculator.js +0 -247
  422. package/dist/src/core/qa/risk-calculator.js.map +0 -1
  423. package/dist/src/core/qa/types.d.ts +0 -315
  424. package/dist/src/core/qa/types.d.ts.map +0 -1
  425. package/dist/src/core/qa/types.js +0 -8
  426. package/dist/src/core/qa/types.js.map +0 -1
  427. package/dist/src/core/rfc-generator-v2.d.ts +0 -149
  428. package/dist/src/core/rfc-generator-v2.d.ts.map +0 -1
  429. package/dist/src/core/rfc-generator-v2.js +0 -399
  430. package/dist/src/core/rfc-generator-v2.js.map +0 -1
  431. package/dist/src/core/sync/bidirectional-engine.d.ts +0 -110
  432. package/dist/src/core/sync/bidirectional-engine.d.ts.map +0 -1
  433. package/dist/src/core/sync/bidirectional-engine.js +0 -356
  434. package/dist/src/core/sync/bidirectional-engine.js.map +0 -1
  435. package/dist/src/core/sync/folder-mapper.d.ts +0 -71
  436. package/dist/src/core/sync/folder-mapper.d.ts.map +0 -1
  437. package/dist/src/core/sync/folder-mapper.js +0 -168
  438. package/dist/src/core/sync/folder-mapper.js.map +0 -1
  439. package/dist/src/core/sync/profile-manager.d.ts +0 -72
  440. package/dist/src/core/sync/profile-manager.d.ts.map +0 -1
  441. package/dist/src/core/sync/profile-manager.js +0 -338
  442. package/dist/src/core/sync/profile-manager.js.map +0 -1
  443. package/dist/src/core/sync/profile-selector.d.ts +0 -52
  444. package/dist/src/core/sync/profile-selector.d.ts.map +0 -1
  445. package/dist/src/core/sync/profile-selector.js +0 -179
  446. package/dist/src/core/sync/profile-selector.js.map +0 -1
  447. package/dist/src/core/sync/profile-validator.d.ts +0 -52
  448. package/dist/src/core/sync/profile-validator.d.ts.map +0 -1
  449. package/dist/src/core/sync/profile-validator.js +0 -225
  450. package/dist/src/core/sync/profile-validator.js.map +0 -1
  451. package/dist/src/core/sync/project-context.d.ts +0 -81
  452. package/dist/src/core/sync/project-context.d.ts.map +0 -1
  453. package/dist/src/core/sync/project-context.js +0 -354
  454. package/dist/src/core/sync/project-context.js.map +0 -1
  455. package/dist/src/core/sync/rate-limiter.d.ts +0 -116
  456. package/dist/src/core/sync/rate-limiter.d.ts.map +0 -1
  457. package/dist/src/core/sync/rate-limiter.js +0 -308
  458. package/dist/src/core/sync/rate-limiter.js.map +0 -1
  459. package/dist/src/core/sync/time-range-selector.d.ts +0 -48
  460. package/dist/src/core/sync/time-range-selector.d.ts.map +0 -1
  461. package/dist/src/core/sync/time-range-selector.js +0 -224
  462. package/dist/src/core/sync/time-range-selector.js.map +0 -1
  463. package/dist/src/core/types/config.d.ts +0 -90
  464. package/dist/src/core/types/config.d.ts.map +0 -1
  465. package/dist/src/core/types/config.js +0 -37
  466. package/dist/src/core/types/config.js.map +0 -1
  467. package/dist/src/core/types/increment-metadata.d.ts +0 -120
  468. package/dist/src/core/types/increment-metadata.d.ts.map +0 -1
  469. package/dist/src/core/types/increment-metadata.js +0 -138
  470. package/dist/src/core/types/increment-metadata.js.map +0 -1
  471. package/dist/src/core/types/plugin.d.ts +0 -283
  472. package/dist/src/core/types/plugin.d.ts.map +0 -1
  473. package/dist/src/core/types/plugin.js +0 -49
  474. package/dist/src/core/types/plugin.js.map +0 -1
  475. package/dist/src/core/types/sync-profile.d.ts +0 -403
  476. package/dist/src/core/types/sync-profile.d.ts.map +0 -1
  477. package/dist/src/core/types/sync-profile.js +0 -55
  478. package/dist/src/core/types/sync-profile.js.map +0 -1
  479. package/dist/src/hooks/lib/types/reflection-types.d.ts +0 -125
  480. package/dist/src/hooks/lib/types/reflection-types.d.ts.map +0 -1
  481. package/dist/src/hooks/lib/types/reflection-types.js +0 -54
  482. package/dist/src/hooks/lib/types/reflection-types.js.map +0 -1
  483. package/dist/src/integrations/ado/ado-client.d.ts +0 -127
  484. package/dist/src/integrations/ado/ado-client.d.ts.map +0 -1
  485. package/dist/src/integrations/ado/ado-client.js +0 -416
  486. package/dist/src/integrations/ado/ado-client.js.map +0 -1
  487. package/dist/src/integrations/jira/jira-client.d.ts +0 -139
  488. package/dist/src/integrations/jira/jira-client.d.ts.map +0 -1
  489. package/dist/src/integrations/jira/jira-client.js +0 -386
  490. package/dist/src/integrations/jira/jira-client.js.map +0 -1
  491. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +0 -75
  492. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +0 -1
  493. package/dist/src/integrations/jira/jira-incremental-mapper.js +0 -474
  494. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +0 -1
  495. package/dist/src/integrations/jira/jira-mapper.d.ts +0 -105
  496. package/dist/src/integrations/jira/jira-mapper.d.ts.map +0 -1
  497. package/dist/src/integrations/jira/jira-mapper.js +0 -494
  498. package/dist/src/integrations/jira/jira-mapper.js.map +0 -1
  499. package/dist/src/metrics/calculators/change-failure-rate.d.ts +0 -22
  500. package/dist/src/metrics/calculators/change-failure-rate.d.ts.map +0 -1
  501. package/dist/src/metrics/calculators/change-failure-rate.js +0 -70
  502. package/dist/src/metrics/calculators/change-failure-rate.js.map +0 -1
  503. package/dist/src/metrics/calculators/deployment-frequency.d.ts +0 -20
  504. package/dist/src/metrics/calculators/deployment-frequency.d.ts.map +0 -1
  505. package/dist/src/metrics/calculators/deployment-frequency.js +0 -61
  506. package/dist/src/metrics/calculators/deployment-frequency.js.map +0 -1
  507. package/dist/src/metrics/calculators/lead-time.d.ts +0 -22
  508. package/dist/src/metrics/calculators/lead-time.d.ts.map +0 -1
  509. package/dist/src/metrics/calculators/lead-time.js +0 -82
  510. package/dist/src/metrics/calculators/lead-time.js.map +0 -1
  511. package/dist/src/metrics/calculators/mttr.d.ts +0 -21
  512. package/dist/src/metrics/calculators/mttr.d.ts.map +0 -1
  513. package/dist/src/metrics/calculators/mttr.js +0 -60
  514. package/dist/src/metrics/calculators/mttr.js.map +0 -1
  515. package/dist/src/metrics/dora-calculator.d.ts +0 -28
  516. package/dist/src/metrics/dora-calculator.d.ts.map +0 -1
  517. package/dist/src/metrics/dora-calculator.js +0 -117
  518. package/dist/src/metrics/dora-calculator.js.map +0 -1
  519. package/dist/src/metrics/github-client.d.ts +0 -51
  520. package/dist/src/metrics/github-client.d.ts.map +0 -1
  521. package/dist/src/metrics/github-client.js +0 -133
  522. package/dist/src/metrics/github-client.js.map +0 -1
  523. package/dist/src/metrics/report-generator.d.ts +0 -17
  524. package/dist/src/metrics/report-generator.d.ts.map +0 -1
  525. package/dist/src/metrics/report-generator.js +0 -403
  526. package/dist/src/metrics/report-generator.js.map +0 -1
  527. package/dist/src/metrics/types.d.ts +0 -112
  528. package/dist/src/metrics/types.d.ts.map +0 -1
  529. package/dist/src/metrics/types.js +0 -10
  530. package/dist/src/metrics/types.js.map +0 -1
  531. package/dist/src/metrics/utils/percentile.d.ts +0 -25
  532. package/dist/src/metrics/utils/percentile.d.ts.map +0 -1
  533. package/dist/src/metrics/utils/percentile.js +0 -46
  534. package/dist/src/metrics/utils/percentile.js.map +0 -1
  535. package/dist/src/metrics/utils/tier-classifier.d.ts +0 -61
  536. package/dist/src/metrics/utils/tier-classifier.d.ts.map +0 -1
  537. package/dist/src/metrics/utils/tier-classifier.js +0 -100
  538. package/dist/src/metrics/utils/tier-classifier.js.map +0 -1
  539. package/dist/src/testing/test-generator.d.ts +0 -117
  540. package/dist/src/testing/test-generator.d.ts.map +0 -1
  541. package/dist/src/testing/test-generator.js +0 -370
  542. package/dist/src/testing/test-generator.js.map +0 -1
  543. package/dist/src/types/cost-tracking.d.ts +0 -43
  544. package/dist/src/types/cost-tracking.d.ts.map +0 -1
  545. package/dist/src/types/cost-tracking.js +0 -8
  546. package/dist/src/types/cost-tracking.js.map +0 -1
  547. package/dist/src/types/model-selection.d.ts +0 -53
  548. package/dist/src/types/model-selection.d.ts.map +0 -1
  549. package/dist/src/types/model-selection.js +0 -12
  550. package/dist/src/types/model-selection.js.map +0 -1
  551. package/dist/src/utils/agents-md-compiler.d.ts +0 -68
  552. package/dist/src/utils/agents-md-compiler.d.ts.map +0 -1
  553. package/dist/src/utils/agents-md-compiler.js +0 -420
  554. package/dist/src/utils/agents-md-compiler.js.map +0 -1
  555. package/dist/src/utils/auth-helpers.d.ts +0 -58
  556. package/dist/src/utils/auth-helpers.d.ts.map +0 -1
  557. package/dist/src/utils/auth-helpers.js +0 -108
  558. package/dist/src/utils/auth-helpers.js.map +0 -1
  559. package/dist/src/utils/auto-install.d.ts +0 -47
  560. package/dist/src/utils/auto-install.d.ts.map +0 -1
  561. package/dist/src/utils/auto-install.js +0 -211
  562. package/dist/src/utils/auto-install.js.map +0 -1
  563. package/dist/src/utils/claude-cli-detector.d.ts +0 -75
  564. package/dist/src/utils/claude-cli-detector.d.ts.map +0 -1
  565. package/dist/src/utils/claude-cli-detector.js +0 -285
  566. package/dist/src/utils/claude-cli-detector.js.map +0 -1
  567. package/dist/src/utils/cost-reporter.d.ts +0 -58
  568. package/dist/src/utils/cost-reporter.d.ts.map +0 -1
  569. package/dist/src/utils/cost-reporter.js +0 -224
  570. package/dist/src/utils/cost-reporter.js.map +0 -1
  571. package/dist/src/utils/docs-preview/config-generator.d.ts +0 -46
  572. package/dist/src/utils/docs-preview/config-generator.d.ts.map +0 -1
  573. package/dist/src/utils/docs-preview/config-generator.js +0 -377
  574. package/dist/src/utils/docs-preview/config-generator.js.map +0 -1
  575. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +0 -38
  576. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +0 -1
  577. package/dist/src/utils/docs-preview/docusaurus-setup.js +0 -177
  578. package/dist/src/utils/docs-preview/docusaurus-setup.js.map +0 -1
  579. package/dist/src/utils/docs-preview/index.d.ts +0 -7
  580. package/dist/src/utils/docs-preview/index.d.ts.map +0 -1
  581. package/dist/src/utils/docs-preview/index.js +0 -7
  582. package/dist/src/utils/docs-preview/index.js.map +0 -1
  583. package/dist/src/utils/docs-preview/package-installer.d.ts +0 -42
  584. package/dist/src/utils/docs-preview/package-installer.d.ts.map +0 -1
  585. package/dist/src/utils/docs-preview/package-installer.js +0 -182
  586. package/dist/src/utils/docs-preview/package-installer.js.map +0 -1
  587. package/dist/src/utils/docs-preview/server-manager.d.ts +0 -30
  588. package/dist/src/utils/docs-preview/server-manager.d.ts.map +0 -1
  589. package/dist/src/utils/docs-preview/server-manager.js +0 -212
  590. package/dist/src/utils/docs-preview/server-manager.js.map +0 -1
  591. package/dist/src/utils/docs-preview/sidebar-builder.d.ts +0 -32
  592. package/dist/src/utils/docs-preview/sidebar-builder.d.ts.map +0 -1
  593. package/dist/src/utils/docs-preview/sidebar-builder.js +0 -202
  594. package/dist/src/utils/docs-preview/sidebar-builder.js.map +0 -1
  595. package/dist/src/utils/docs-preview/types.d.ts +0 -57
  596. package/dist/src/utils/docs-preview/types.d.ts.map +0 -1
  597. package/dist/src/utils/docs-preview/types.js +0 -2
  598. package/dist/src/utils/docs-preview/types.js.map +0 -1
  599. package/dist/src/utils/env-file.d.ts +0 -88
  600. package/dist/src/utils/env-file.d.ts.map +0 -1
  601. package/dist/src/utils/env-file.js +0 -180
  602. package/dist/src/utils/env-file.js.map +0 -1
  603. package/dist/src/utils/env-multi-project-parser.d.ts +0 -220
  604. package/dist/src/utils/env-multi-project-parser.d.ts.map +0 -1
  605. package/dist/src/utils/env-multi-project-parser.js +0 -403
  606. package/dist/src/utils/env-multi-project-parser.js.map +0 -1
  607. package/dist/src/utils/esm-helpers.d.ts +0 -50
  608. package/dist/src/utils/esm-helpers.d.ts.map +0 -1
  609. package/dist/src/utils/esm-helpers.js +0 -57
  610. package/dist/src/utils/esm-helpers.js.map +0 -1
  611. package/dist/src/utils/execFileNoThrow.d.ts +0 -99
  612. package/dist/src/utils/execFileNoThrow.d.ts.map +0 -1
  613. package/dist/src/utils/execFileNoThrow.js +0 -137
  614. package/dist/src/utils/execFileNoThrow.js.map +0 -1
  615. package/dist/src/utils/external-resource-validator.d.ts +0 -102
  616. package/dist/src/utils/external-resource-validator.d.ts.map +0 -1
  617. package/dist/src/utils/external-resource-validator.js +0 -400
  618. package/dist/src/utils/external-resource-validator.js.map +0 -1
  619. package/dist/src/utils/generate-skills-index.d.ts +0 -24
  620. package/dist/src/utils/generate-skills-index.d.ts.map +0 -1
  621. package/dist/src/utils/generate-skills-index.js +0 -410
  622. package/dist/src/utils/generate-skills-index.js.map +0 -1
  623. package/dist/src/utils/model-selection.d.ts +0 -75
  624. package/dist/src/utils/model-selection.d.ts.map +0 -1
  625. package/dist/src/utils/model-selection.js +0 -204
  626. package/dist/src/utils/model-selection.js.map +0 -1
  627. package/dist/src/utils/plugin-validator.d.ts +0 -161
  628. package/dist/src/utils/plugin-validator.d.ts.map +0 -1
  629. package/dist/src/utils/plugin-validator.js +0 -558
  630. package/dist/src/utils/plugin-validator.js.map +0 -1
  631. package/dist/src/utils/pricing-constants.d.ts +0 -70
  632. package/dist/src/utils/pricing-constants.d.ts.map +0 -1
  633. package/dist/src/utils/pricing-constants.js +0 -71
  634. package/dist/src/utils/pricing-constants.js.map +0 -1
  635. package/dist/src/utils/project-detection.d.ts +0 -141
  636. package/dist/src/utils/project-detection.d.ts.map +0 -1
  637. package/dist/src/utils/project-detection.js +0 -321
  638. package/dist/src/utils/project-detection.js.map +0 -1
  639. package/dist/src/utils/string-utils.d.ts +0 -40
  640. package/dist/src/utils/string-utils.d.ts.map +0 -1
  641. package/dist/src/utils/string-utils.js +0 -58
  642. package/dist/src/utils/string-utils.js.map +0 -1
  643. package/dist/src/utils/translation.d.ts +0 -187
  644. package/dist/src/utils/translation.d.ts.map +0 -1
  645. package/dist/src/utils/translation.js +0 -414
  646. package/dist/src/utils/translation.js.map +0 -1
  647. package/dist/utils/docs-preview.bak/config-generator.d.ts +0 -46
  648. package/dist/utils/docs-preview.bak/config-generator.d.ts.map +0 -1
  649. package/dist/utils/docs-preview.bak/config-generator.js +0 -377
  650. package/dist/utils/docs-preview.bak/config-generator.js.map +0 -1
  651. package/dist/utils/docs-preview.bak/package-installer.d.ts +0 -42
  652. package/dist/utils/docs-preview.bak/package-installer.d.ts.map +0 -1
  653. package/dist/utils/docs-preview.bak/package-installer.js +0 -182
  654. package/dist/utils/docs-preview.bak/package-installer.js.map +0 -1
  655. package/dist/utils/docs-preview.bak/server-manager.d.ts +0 -30
  656. package/dist/utils/docs-preview.bak/server-manager.d.ts.map +0 -1
  657. package/dist/utils/docs-preview.bak/server-manager.js +0 -207
  658. package/dist/utils/docs-preview.bak/server-manager.js.map +0 -1
  659. package/dist/utils/docs-preview.bak/sidebar-builder.d.ts +0 -31
  660. package/dist/utils/docs-preview.bak/sidebar-builder.d.ts.map +0 -1
  661. package/dist/utils/docs-preview.bak/sidebar-builder.js +0 -202
  662. package/dist/utils/docs-preview.bak/sidebar-builder.js.map +0 -1
  663. package/dist/utils/docs-preview.bak/types.d.ts +0 -60
  664. package/dist/utils/docs-preview.bak/types.d.ts.map +0 -1
  665. package/dist/utils/docs-preview.bak/types.js +0 -5
  666. package/dist/utils/docs-preview.bak/types.js.map +0 -1
  667. package/dist/utils/plugin-detection.d.ts +0 -50
  668. package/dist/utils/plugin-detection.d.ts.map +0 -1
  669. package/dist/utils/secrets-loader.d.ts +0 -88
  670. package/dist/utils/secrets-loader.d.ts.map +0 -1
  671. package/dist/utils/secrets-loader.js +0 -271
  672. package/dist/utils/secrets-loader.js.map +0 -1
  673. package/src/templates/environments/minimal/.env.production +0 -16
  674. package/src/templates/environments/standard/.env.production +0 -30
@@ -0,0 +1,582 @@
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
+
16
+ import { SpecMetadataManager } from '../../../src/core/specs/spec-metadata-manager.js';
17
+ import { SpecParser } from '../../../src/core/specs/spec-parser.js';
18
+ import {
19
+ SpecContent,
20
+ UserStory,
21
+ SpecSyncResult,
22
+ SpecSyncConflict
23
+ } from '../../../src/core/types/spec-metadata.js';
24
+ import { execFileNoThrow } from '../../../src/utils/execFileNoThrow.js';
25
+ import axios, { AxiosInstance } from 'axios';
26
+
27
+ export interface JiraEpic {
28
+ id: string;
29
+ key: string; // e.g., SPEC-1
30
+ summary: string;
31
+ description: string;
32
+ status: {
33
+ name: string; // To Do, In Progress, Done
34
+ };
35
+ url: string;
36
+ }
37
+
38
+ export interface JiraStory {
39
+ id: string;
40
+ key: string; // e.g., SPEC-2
41
+ summary: string;
42
+ description: string;
43
+ status: {
44
+ name: string;
45
+ };
46
+ epicLink?: string; // Epic key
47
+ labels: string[];
48
+ }
49
+
50
+ export interface JiraConfig {
51
+ domain: string; // e.g., company.atlassian.net
52
+ email: string;
53
+ apiToken: string;
54
+ projectKey: string; // e.g., SPEC
55
+ }
56
+
57
+ export class JiraSpecSync {
58
+ private specManager: SpecMetadataManager;
59
+ private client: AxiosInstance;
60
+ private config: JiraConfig;
61
+
62
+ constructor(config: JiraConfig, projectRoot: string = process.cwd()) {
63
+ this.specManager = new SpecMetadataManager(projectRoot);
64
+ this.config = config;
65
+
66
+ // Create Jira API client
67
+ this.client = axios.create({
68
+ baseURL: `https://${config.domain}/rest/api/3`,
69
+ auth: {
70
+ username: config.email,
71
+ password: config.apiToken
72
+ },
73
+ headers: {
74
+ 'Accept': 'application/json',
75
+ 'Content-Type': 'application/json'
76
+ }
77
+ });
78
+ }
79
+
80
+ /**
81
+ * Sync spec to Jira Epic (CREATE or UPDATE)
82
+ */
83
+ async syncSpecToJira(specId: string): Promise<SpecSyncResult> {
84
+ console.log(`\n🔄 Syncing spec ${specId} to Jira Epic...`);
85
+
86
+ try {
87
+ // 1. Load spec
88
+ const spec = await this.specManager.loadSpec(specId);
89
+ if (!spec) {
90
+ return {
91
+ success: false,
92
+ specId,
93
+ provider: 'jira',
94
+ error: `Spec ${specId} not found`
95
+ };
96
+ }
97
+
98
+ // 2. Check if spec already linked to Jira Epic
99
+ const existingLink = spec.metadata.externalLinks?.jira;
100
+
101
+ let epic: JiraEpic;
102
+
103
+ if (existingLink?.epicKey) {
104
+ // UPDATE existing epic
105
+ console.log(` Found existing Jira Epic ${existingLink.epicKey}`);
106
+ epic = await this.updateJiraEpic(existingLink.epicKey, spec);
107
+ } else {
108
+ // CREATE new epic
109
+ console.log(' Creating new Jira Epic...');
110
+ epic = await this.createJiraEpic(spec);
111
+
112
+ // Link spec to epic
113
+ await this.specManager.linkToExternal(specId, 'jira', {
114
+ id: epic.key,
115
+ url: epic.url,
116
+ projectKey: this.config.projectKey,
117
+ domain: this.config.domain
118
+ });
119
+ }
120
+
121
+ // 3. Sync user stories as Jira Stories
122
+ const changes = await this.syncUserStories(epic.key, spec);
123
+
124
+ console.log('✅ Sync complete!');
125
+
126
+ return {
127
+ success: true,
128
+ specId,
129
+ provider: 'jira',
130
+ externalId: epic.key,
131
+ url: epic.url,
132
+ changes
133
+ };
134
+
135
+ } catch (error) {
136
+ console.error('❌ Error syncing to Jira:', error);
137
+ return {
138
+ success: false,
139
+ specId,
140
+ provider: 'jira',
141
+ error: error instanceof Error ? error.message : 'Unknown error'
142
+ };
143
+ }
144
+ }
145
+
146
+ /**
147
+ * Sync FROM Jira Epic to spec (bidirectional)
148
+ */
149
+ async syncFromJira(specId: string): Promise<SpecSyncResult> {
150
+ console.log(`\n🔄 Syncing FROM Jira to spec ${specId}...`);
151
+
152
+ try {
153
+ // 1. Load spec
154
+ const spec = await this.specManager.loadSpec(specId);
155
+ if (!spec) {
156
+ return {
157
+ success: false,
158
+ specId,
159
+ provider: 'jira',
160
+ error: `Spec ${specId} not found`
161
+ };
162
+ }
163
+
164
+ // 2. Get Jira Epic link
165
+ const jiraLink = spec.metadata.externalLinks?.jira;
166
+ if (!jiraLink?.epicKey) {
167
+ return {
168
+ success: false,
169
+ specId,
170
+ provider: 'jira',
171
+ error: 'Spec not linked to Jira Epic'
172
+ };
173
+ }
174
+
175
+ // 3. Fetch Jira Epic state
176
+ const epic = await this.fetchJiraEpic(jiraLink.epicKey);
177
+
178
+ // 4. Detect conflicts
179
+ const conflicts = await this.detectConflicts(spec, epic);
180
+
181
+ if (conflicts.length === 0) {
182
+ console.log('✅ No conflicts - spec and Jira in sync');
183
+ return {
184
+ success: true,
185
+ specId,
186
+ provider: 'jira',
187
+ externalId: epic.key,
188
+ url: epic.url
189
+ };
190
+ }
191
+
192
+ console.log(`⚠️ Detected ${conflicts.length} conflict(s)`);
193
+
194
+ // 5. Resolve conflicts (Jira wins by default for now)
195
+ await this.resolveConflicts(spec, conflicts);
196
+
197
+ console.log('✅ Sync FROM Jira complete!');
198
+
199
+ return {
200
+ success: true,
201
+ specId,
202
+ provider: 'jira',
203
+ externalId: epic.key,
204
+ url: epic.url,
205
+ conflicts
206
+ };
207
+
208
+ } catch (error) {
209
+ console.error('❌ Error syncing FROM Jira:', error);
210
+ return {
211
+ success: false,
212
+ specId,
213
+ provider: 'jira',
214
+ error: error instanceof Error ? error.message : 'Unknown error'
215
+ };
216
+ }
217
+ }
218
+
219
+ /**
220
+ * Create new Jira Epic for spec
221
+ */
222
+ private async createJiraEpic(spec: SpecContent): Promise<JiraEpic> {
223
+ const epicSummary = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
224
+ const epicDescription = this.generateEpicDescription(spec);
225
+
226
+ const payload = {
227
+ fields: {
228
+ project: {
229
+ key: this.config.projectKey
230
+ },
231
+ summary: epicSummary,
232
+ description: epicDescription,
233
+ issuetype: {
234
+ name: 'Epic'
235
+ },
236
+ labels: [`spec:${spec.metadata.id}`, `priority:${spec.metadata.priority}`]
237
+ }
238
+ };
239
+
240
+ const response = await this.client.post('/issue', payload);
241
+ const epicData = response.data;
242
+
243
+ const epicKey = epicData.key;
244
+ const epicUrl = `https://${this.config.domain}/browse/${epicKey}`;
245
+
246
+ console.log(` ✅ Created Jira Epic ${epicKey}: ${epicUrl}`);
247
+
248
+ return {
249
+ id: epicData.id,
250
+ key: epicKey,
251
+ summary: epicSummary,
252
+ description: epicDescription,
253
+ status: { name: 'To Do' },
254
+ url: epicUrl
255
+ };
256
+ }
257
+
258
+ /**
259
+ * Update existing Jira Epic
260
+ */
261
+ private async updateJiraEpic(epicKey: string, spec: SpecContent): Promise<JiraEpic> {
262
+ const epicSummary = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
263
+ const epicDescription = this.generateEpicDescription(spec);
264
+
265
+ const payload = {
266
+ fields: {
267
+ summary: epicSummary,
268
+ description: epicDescription
269
+ }
270
+ };
271
+
272
+ await this.client.put(`/issue/${epicKey}`, payload);
273
+
274
+ // Fetch updated epic
275
+ const response = await this.client.get(`/issue/${epicKey}`);
276
+ const epicData = response.data;
277
+
278
+ console.log(` ✅ Updated Jira Epic ${epicKey}`);
279
+
280
+ return {
281
+ id: epicData.id,
282
+ key: epicKey,
283
+ summary: epicData.fields.summary,
284
+ description: epicData.fields.description,
285
+ status: epicData.fields.status,
286
+ url: `https://${this.config.domain}/browse/${epicKey}`
287
+ };
288
+ }
289
+
290
+ /**
291
+ * Sync user stories as Jira Stories
292
+ */
293
+ private async syncUserStories(
294
+ epicKey: string,
295
+ spec: SpecContent
296
+ ): Promise<{ created: string[]; updated: string[]; deleted: string[] }> {
297
+ const created: string[] = [];
298
+ const updated: string[] = [];
299
+ const deleted: string[] = [];
300
+
301
+ if (!spec.metadata.userStories || spec.metadata.userStories.length === 0) {
302
+ console.log(' ℹ️ No user stories to sync');
303
+ return { created, updated, deleted };
304
+ }
305
+
306
+ console.log(` Syncing ${spec.metadata.userStories.length} user stories...`);
307
+
308
+ for (const us of spec.metadata.userStories) {
309
+ // Create or update Jira Story for each user story
310
+ const storySummary = `[${us.id}] ${us.title}`;
311
+ const storyDescription = this.generateStoryDescription(us);
312
+
313
+ // Check if story already exists (by searching for US-ID in summary)
314
+ const existingStory = await this.findStoryByTitle(us.id);
315
+
316
+ if (existingStory) {
317
+ // UPDATE existing story
318
+ await this.updateStory(existingStory.key, {
319
+ summary: storySummary,
320
+ description: storyDescription,
321
+ status: us.status === 'done' ? 'Done' : us.status === 'in-progress' ? 'In Progress' : 'To Do'
322
+ });
323
+
324
+ updated.push(us.id);
325
+ console.log(` ✅ Updated ${us.id}`);
326
+ } else {
327
+ // CREATE new story
328
+ const newStory = await this.createStory({
329
+ summary: storySummary,
330
+ description: storyDescription,
331
+ epicLink: epicKey,
332
+ labels: [`user-story`, `spec:${spec.metadata.id}`, `priority:${us.priority}`]
333
+ });
334
+
335
+ created.push(us.id);
336
+ console.log(` ✅ Created ${us.id} → Story ${newStory.key}`);
337
+ }
338
+ }
339
+
340
+ return { created, updated, deleted };
341
+ }
342
+
343
+ /**
344
+ * Generate epic description from spec
345
+ */
346
+ private generateEpicDescription(spec: SpecContent): string {
347
+ const progress = spec.metadata.progress;
348
+ const progressText = progress
349
+ ? `*Progress*: ${progress.percentComplete}% (${progress.completedUserStories}/${progress.totalUserStories} user stories)`
350
+ : '*Progress*: N/A';
351
+
352
+ return `
353
+ h1. ${spec.metadata.title}
354
+
355
+ *Spec ID*: ${spec.metadata.id}
356
+ *Priority*: ${spec.metadata.priority}
357
+ *Status*: ${spec.metadata.status}
358
+ ${progressText}
359
+
360
+ ----
361
+
362
+ ${SpecParser.extractOverview(spec.markdown)}
363
+
364
+ ----
365
+
366
+ h2. User Stories
367
+
368
+ ${spec.metadata.userStories?.length || 0} user stories tracked in this epic.
369
+
370
+ ----
371
+
372
+ 🤖 *Auto-synced from SpecWeave*
373
+ Last updated: ${new Date().toISOString()}
374
+ `.trim();
375
+ }
376
+
377
+ /**
378
+ * Generate story description from user story
379
+ */
380
+ private generateStoryDescription(us: UserStory): string {
381
+ const acList = us.acceptanceCriteria
382
+ .map(ac => `* ${ac.status === 'done' ? '(/)' : '(x)'} ${ac.description}`)
383
+ .join('\n');
384
+
385
+ return `
386
+ h2. User Story
387
+
388
+ ${us.title}
389
+
390
+ h2. Acceptance Criteria
391
+
392
+ ${acList}
393
+
394
+ ----
395
+
396
+ *Priority*: ${us.priority}
397
+ *Status*: ${us.status}
398
+
399
+ 🤖 *Auto-synced from SpecWeave*
400
+ `.trim();
401
+ }
402
+
403
+ /**
404
+ * Detect conflicts between spec and Jira
405
+ */
406
+ private async detectConflicts(
407
+ spec: SpecContent,
408
+ epic: JiraEpic
409
+ ): Promise<SpecSyncConflict[]> {
410
+ const conflicts: SpecSyncConflict[] = [];
411
+
412
+ // Compare epic summary
413
+ const expectedSummary = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
414
+ if (epic.summary !== expectedSummary) {
415
+ conflicts.push({
416
+ type: 'metadata',
417
+ field: 'title',
418
+ localValue: spec.metadata.title,
419
+ remoteValue: epic.summary,
420
+ resolution: 'remote-wins',
421
+ description: 'Epic summary differs from spec title'
422
+ });
423
+ }
424
+
425
+ // TODO: Compare user stories and their statuses
426
+
427
+ return conflicts;
428
+ }
429
+
430
+ /**
431
+ * Resolve conflicts
432
+ */
433
+ private async resolveConflicts(
434
+ spec: SpecContent,
435
+ conflicts: SpecSyncConflict[]
436
+ ): Promise<void> {
437
+ for (const conflict of conflicts) {
438
+ if (conflict.resolution === 'remote-wins') {
439
+ console.log(` 🔄 Resolving: ${conflict.description} (Jira wins)`);
440
+ // Update spec metadata from Jira
441
+ if (conflict.field === 'title') {
442
+ await this.specManager.saveMetadata(spec.metadata.id, {
443
+ title: conflict.remoteValue
444
+ });
445
+ }
446
+ }
447
+ }
448
+ }
449
+
450
+ /**
451
+ * Fetch Jira Epic details
452
+ */
453
+ private async fetchJiraEpic(epicKey: string): Promise<JiraEpic> {
454
+ const response = await this.client.get(`/issue/${epicKey}`);
455
+ const epicData = response.data;
456
+
457
+ return {
458
+ id: epicData.id,
459
+ key: epicKey,
460
+ summary: epicData.fields.summary,
461
+ description: epicData.fields.description,
462
+ status: epicData.fields.status,
463
+ url: `https://${this.config.domain}/browse/${epicKey}`
464
+ };
465
+ }
466
+
467
+ /**
468
+ * Find story by title pattern
469
+ */
470
+ private async findStoryByTitle(usId: string): Promise<JiraStory | null> {
471
+ const jql = `project = ${this.config.projectKey} AND summary ~ "[${usId}]" AND issuetype = Story`;
472
+
473
+ const response = await this.client.get('/search', {
474
+ params: {
475
+ jql,
476
+ maxResults: 1,
477
+ fields: 'summary,description,status,labels'
478
+ }
479
+ });
480
+
481
+ const issues = response.data.issues;
482
+ return issues.length > 0 ? {
483
+ id: issues[0].id,
484
+ key: issues[0].key,
485
+ summary: issues[0].fields.summary,
486
+ description: issues[0].fields.description,
487
+ status: issues[0].fields.status,
488
+ labels: issues[0].fields.labels || []
489
+ } : null;
490
+ }
491
+
492
+ /**
493
+ * Create Jira Story
494
+ */
495
+ private async createStory(story: {
496
+ summary: string;
497
+ description: string;
498
+ epicLink: string;
499
+ labels: string[];
500
+ }): Promise<JiraStory> {
501
+ const payload = {
502
+ fields: {
503
+ project: {
504
+ key: this.config.projectKey
505
+ },
506
+ summary: story.summary,
507
+ description: story.description,
508
+ issuetype: {
509
+ name: 'Story'
510
+ },
511
+ labels: story.labels,
512
+ // Link to epic (field name may vary by Jira configuration)
513
+ customfield_10014: story.epicLink // Epic Link field (adjust if needed)
514
+ }
515
+ };
516
+
517
+ const response = await this.client.post('/issue', payload);
518
+ const storyData = response.data;
519
+
520
+ return {
521
+ id: storyData.id,
522
+ key: storyData.key,
523
+ summary: story.summary,
524
+ description: story.description,
525
+ status: { name: 'To Do' },
526
+ labels: story.labels
527
+ };
528
+ }
529
+
530
+ /**
531
+ * Update Jira Story
532
+ */
533
+ private async updateStory(
534
+ storyKey: string,
535
+ updates: { summary?: string; description?: string; status?: string }
536
+ ): Promise<void> {
537
+ const payload: any = {
538
+ fields: {}
539
+ };
540
+
541
+ if (updates.summary) {
542
+ payload.fields.summary = updates.summary;
543
+ }
544
+
545
+ if (updates.description) {
546
+ payload.fields.description = updates.description;
547
+ }
548
+
549
+ await this.client.put(`/issue/${storyKey}`, payload);
550
+
551
+ // Handle status transition if needed
552
+ if (updates.status) {
553
+ await this.transitionIssue(storyKey, updates.status);
554
+ }
555
+ }
556
+
557
+ /**
558
+ * Transition issue to new status
559
+ */
560
+ private async transitionIssue(issueKey: string, targetStatus: string): Promise<void> {
561
+ // Get available transitions
562
+ const transitionsResponse = await this.client.get(`/issue/${issueKey}/transitions`);
563
+ const transitions = transitionsResponse.data.transitions;
564
+
565
+ // Find transition matching target status
566
+ const transition = transitions.find(
567
+ (t: any) => t.to.name.toLowerCase() === targetStatus.toLowerCase()
568
+ );
569
+
570
+ if (!transition) {
571
+ console.warn(` ⚠️ Cannot transition ${issueKey} to ${targetStatus} (no valid transition)`);
572
+ return;
573
+ }
574
+
575
+ // Execute transition
576
+ await this.client.post(`/issue/${issueKey}/transitions`, {
577
+ transition: {
578
+ id: transition.id
579
+ }
580
+ });
581
+ }
582
+ }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: jira-sync
3
- description: Bidirectional sync between SpecWeave increments and JIRA epics/stories (two-way sync by default). Activates for JIRA sync, create JIRA issue, import from JIRA, sync to JIRA, bidirectional JIRA sync. Coordinates with specweave-jira-mapper agent.
3
+ description: Bidirectional sync between SpecWeave increments and JIRA epics/stories (two-way sync by default). Activates ONLY when user asks questions about JIRA integration or needs help configuring JIRA sync. Does NOT activate for slash commands. For syncing, use /specweave-jira:sync command instead. Coordinates with specweave-jira-mapper agent.
4
4
  allowed-tools: Read, Write, Edit, Task, Bash
5
5
  ---
6
6
 
@@ -10,12 +10,27 @@ Coordinates JIRA synchronization by delegating to `specweave-jira-mapper` agent.
10
10
 
11
11
  **Default Behavior**: **Bidirectional (two-way) sync** - Changes synchronized in both directions automatically
12
12
 
13
+ **⚠️ IMPORTANT**: This skill provides HELP and GUIDANCE about JIRA sync. For actual syncing, users should use the `/specweave-jira:sync` command directly. This skill should NOT auto-activate when the command is being invoked.
14
+
15
+ ## When to Activate
16
+
17
+ ✅ **Do activate when**:
18
+ - User asks: "How do I set up JIRA sync?"
19
+ - User asks: "What JIRA credentials do I need?"
20
+ - User asks: "How does bidirectional sync work?"
21
+ - User needs help configuring JIRA integration
22
+
23
+ ❌ **Do NOT activate when**:
24
+ - User invokes `/specweave-jira:sync` command (command handles it)
25
+ - Command is already running (avoid duplicate invocation)
26
+ - Task completion hook is syncing (automatic process)
27
+
13
28
  ## Responsibilities
14
29
 
15
- 1. Detect sync requests (bidirectional by default, or export/import if specified)
16
- 2. Validate prerequisites (JIRA credentials, increment structure)
17
- 3. Invoke `specweave-jira-mapper` agent with sync direction
18
- 4. Handle errors gracefully
30
+ 1. Answer questions about JIRA sync configuration
31
+ 2. Help validate prerequisites (JIRA credentials, increment structure)
32
+ 3. Explain sync direction options (bidirectional, export, import)
33
+ 4. Provide troubleshooting guidance
19
34
 
20
35
  ---
21
36
 
@@ -428,9 +428,19 @@ When you complete a task (mark todo as done), the hook:
428
428
 
429
429
  #### For Other AI Tools (Manual ⚠️)
430
430
 
431
- **⚠️ IMPORTANT**: After completing EACH task, manually update tasks.md:
431
+ **⚠️ IMPORTANT**: After completing EACH task, run these slash commands to keep everything in sync:
432
432
 
433
- **Step-by-Step**:
433
+ **Quick Commands** (copy-paste friendly):
434
+
435
+ ```bash
436
+ # After completing a task, run these three commands:
437
+
438
+ /specweave:sync-tasks # 1. Update tasks.md completion status
439
+ /specweave:sync-docs update # 2. Sync to living docs
440
+ /specweave-github:sync <increment-id> # 3. Sync to GitHub (replace <increment-id> with your increment, e.g., 0007)
441
+ ```
442
+
443
+ **Alternative: Manual Update** (if slash commands unavailable):
434
444
 
435
445
  ```bash
436
446
  # Example: You just completed T-001
@@ -1356,15 +1366,51 @@ Only **Claude Code** has automatic hooks (via `post-task-completion.sh`) that sy
1356
1366
 
1357
1367
  ### Summary Checklist (After Every Task)
1358
1368
 
1359
- When you complete a task in non-Claude tools:
1369
+ When you complete a task in non-Claude tools, **run these slash commands**:
1370
+
1371
+ #### Quick Sync (After Each Task Completion)
1372
+
1373
+ ```bash
1374
+ # 1. Sync tasks.md with completion status
1375
+ /specweave:sync-tasks
1376
+
1377
+ # 2. Update living docs from completed work
1378
+ /specweave:sync-docs update
1379
+ ```
1380
+
1381
+ #### External Tracker Sync (If Enabled)
1382
+
1383
+ ```bash
1384
+ # 3. Sync to external tracker (choose one based on your setup):
1385
+
1386
+ # GitHub Issues:
1387
+ /specweave-github:sync <increment-id>
1388
+
1389
+ # Jira:
1390
+ /specweave-jira:sync <increment-id>
1391
+
1392
+ # Azure DevOps:
1393
+ /specweave-ado:sync <increment-id>
1394
+ ```
1395
+
1396
+ #### Example Full Workflow
1360
1397
 
1361
- 1. ✅ Mark task complete in tasks.md
1362
- 2. Update living docs (see "Documentation Updates" section)
1363
- 3. ✅ **Sync to GitHub/Jira/ADO** (this section)
1364
- 4. Update RFC if applicable (if task implements architecture decision)
1365
- 5. ✅ Continue to next task
1398
+ ```bash
1399
+ # After completing a task in your current increment:
1400
+
1401
+ # Step 1: Update tasks.md
1402
+ /specweave:sync-tasks
1403
+
1404
+ # Step 2: Sync living docs
1405
+ /specweave:sync-docs update
1406
+
1407
+ # Step 3: Sync to GitHub (if using GitHub tracking)
1408
+ /specweave-github:sync <increment-id> # e.g., /specweave-github:sync 0016
1409
+
1410
+ # Done! Continue to next task.
1411
+ ```
1366
1412
 
1367
- **Remember**: In Claude Code, steps 3-4 happen automatically via hooks. In other tools, YOU must do them manually!
1413
+ **Remember**: In Claude Code, all of this happens **automatically via hooks**. In other tools (Cursor, Copilot, ChatGPT), **YOU must run these commands manually** after each task!
1368
1414
 
1369
1415
  ---
1370
1416
 
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * CLI command for /specweave:docs build
4
- * Build static documentation site for deployment
5
- */
6
- export {};
7
- //# sourceMappingURL=docs-build.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs-build.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/docs-build.ts"],"names":[],"mappings":";AAEA;;;GAGG"}