specweave 0.18.1 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/CLAUDE.md +229 -1817
  2. package/README.md +68 -0
  3. package/bin/specweave.js +62 -6
  4. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +1 -1
  5. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +3 -0
  6. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +1 -1
  7. package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts +21 -0
  8. package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts.map +1 -0
  9. package/dist/plugins/specweave/lib/hooks/update-ac-status.js +162 -0
  10. package/dist/plugins/specweave/lib/hooks/update-ac-status.js.map +1 -0
  11. package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.d.ts.map +1 -1
  12. package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js +65 -6
  13. package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js.map +1 -1
  14. package/dist/plugins/specweave-github/lib/completion-calculator.d.ts +112 -0
  15. package/dist/plugins/specweave-github/lib/completion-calculator.d.ts.map +1 -0
  16. package/dist/plugins/specweave-github/lib/completion-calculator.js +301 -0
  17. package/dist/plugins/specweave-github/lib/completion-calculator.js.map +1 -0
  18. package/dist/plugins/specweave-github/lib/duplicate-detector.d.ts +3 -3
  19. package/dist/plugins/specweave-github/lib/duplicate-detector.js +3 -3
  20. package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts +7 -0
  21. package/dist/plugins/specweave-github/lib/epic-content-builder.d.ts.map +1 -1
  22. package/dist/plugins/specweave-github/lib/epic-content-builder.js +42 -0
  23. package/dist/plugins/specweave-github/lib/epic-content-builder.js.map +1 -1
  24. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +14 -0
  25. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +1 -1
  26. package/dist/plugins/specweave-github/lib/github-client-v2.js +51 -0
  27. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
  28. package/dist/plugins/specweave-github/lib/github-epic-sync.js +1 -1
  29. package/dist/plugins/specweave-github/lib/github-epic-sync.js.map +1 -1
  30. package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts +87 -0
  31. package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +1 -0
  32. package/dist/plugins/specweave-github/lib/github-feature-sync.js +412 -0
  33. package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -0
  34. package/dist/plugins/specweave-github/lib/github-spec-content-sync.d.ts.map +1 -1
  35. package/dist/plugins/specweave-github/lib/github-spec-content-sync.js +64 -13
  36. package/dist/plugins/specweave-github/lib/github-spec-content-sync.js.map +1 -1
  37. package/dist/plugins/specweave-github/lib/progress-comment-builder.d.ts +78 -0
  38. package/dist/plugins/specweave-github/lib/progress-comment-builder.d.ts.map +1 -0
  39. package/dist/plugins/specweave-github/lib/progress-comment-builder.js +237 -0
  40. package/dist/plugins/specweave-github/lib/progress-comment-builder.js.map +1 -0
  41. package/dist/plugins/specweave-github/lib/user-story-content-builder.d.ts +97 -0
  42. package/dist/plugins/specweave-github/lib/user-story-content-builder.d.ts.map +1 -0
  43. package/dist/plugins/specweave-github/lib/user-story-content-builder.js +301 -0
  44. package/dist/plugins/specweave-github/lib/user-story-content-builder.js.map +1 -0
  45. package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts +83 -0
  46. package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts.map +1 -0
  47. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js +386 -0
  48. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js.map +1 -0
  49. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts +8 -6
  50. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts.map +1 -1
  51. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js +78 -117
  52. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js.map +1 -1
  53. package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.d.ts +57 -0
  54. package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.d.ts.map +1 -0
  55. package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.js +248 -0
  56. package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.js.map +1 -0
  57. package/dist/plugins/specweave-kafka/lib/cli/types.d.ts +82 -0
  58. package/dist/plugins/specweave-kafka/lib/cli/types.d.ts.map +1 -0
  59. package/dist/plugins/specweave-kafka/lib/cli/types.js +13 -0
  60. package/dist/plugins/specweave-kafka/lib/cli/types.js.map +1 -0
  61. package/dist/plugins/specweave-kafka/lib/mcp/detector.d.ts +49 -0
  62. package/dist/plugins/specweave-kafka/lib/mcp/detector.d.ts.map +1 -0
  63. package/dist/plugins/specweave-kafka/lib/mcp/detector.js +316 -0
  64. package/dist/plugins/specweave-kafka/lib/mcp/detector.js.map +1 -0
  65. package/dist/plugins/specweave-kafka/lib/mcp/types.d.ts +70 -0
  66. package/dist/plugins/specweave-kafka/lib/mcp/types.d.ts.map +1 -0
  67. package/dist/plugins/specweave-kafka/lib/mcp/types.js +23 -0
  68. package/dist/plugins/specweave-kafka/lib/mcp/types.js.map +1 -0
  69. package/dist/plugins/specweave-kafka/lib/utils/partitioning.d.ts +85 -0
  70. package/dist/plugins/specweave-kafka/lib/utils/partitioning.d.ts.map +1 -0
  71. package/dist/plugins/specweave-kafka/lib/utils/partitioning.js +281 -0
  72. package/dist/plugins/specweave-kafka/lib/utils/partitioning.js.map +1 -0
  73. package/dist/plugins/specweave-kafka/lib/utils/sizing.d.ts +75 -0
  74. package/dist/plugins/specweave-kafka/lib/utils/sizing.d.ts.map +1 -0
  75. package/dist/plugins/specweave-kafka/lib/utils/sizing.js +238 -0
  76. package/dist/plugins/specweave-kafka/lib/utils/sizing.js.map +1 -0
  77. package/dist/src/cli/commands/import-docs.js +4 -4
  78. package/dist/src/cli/commands/import-docs.js.map +1 -1
  79. package/dist/src/cli/commands/init-multiproject.d.ts.map +1 -1
  80. package/dist/src/cli/commands/init-multiproject.js +17 -18
  81. package/dist/src/cli/commands/init-multiproject.js.map +1 -1
  82. package/dist/src/cli/commands/migrate-to-multiproject.d.ts.map +1 -1
  83. package/dist/src/cli/commands/migrate-to-multiproject.js +8 -4
  84. package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -1
  85. package/dist/src/cli/commands/switch-project.d.ts.map +1 -1
  86. package/dist/src/cli/commands/switch-project.js +9 -26
  87. package/dist/src/cli/commands/switch-project.js.map +1 -1
  88. package/dist/src/cli/commands/sync-spec-content.js +3 -0
  89. package/dist/src/cli/commands/sync-spec-content.js.map +1 -1
  90. package/dist/src/core/deduplication/command-deduplicator.d.ts +166 -0
  91. package/dist/src/core/deduplication/command-deduplicator.d.ts.map +1 -0
  92. package/dist/src/core/deduplication/command-deduplicator.js +254 -0
  93. package/dist/src/core/deduplication/command-deduplicator.js.map +1 -0
  94. package/dist/src/core/increment/active-increment-manager.d.ts +42 -15
  95. package/dist/src/core/increment/active-increment-manager.d.ts.map +1 -1
  96. package/dist/src/core/increment/active-increment-manager.js +113 -46
  97. package/dist/src/core/increment/active-increment-manager.js.map +1 -1
  98. package/dist/src/core/increment/conflict-resolver.d.ts +40 -0
  99. package/dist/src/core/increment/conflict-resolver.d.ts.map +1 -0
  100. package/dist/src/core/increment/conflict-resolver.js +219 -0
  101. package/dist/src/core/increment/conflict-resolver.js.map +1 -0
  102. package/dist/src/core/increment/discipline-checker.d.ts.map +1 -1
  103. package/dist/src/core/increment/discipline-checker.js +7 -1
  104. package/dist/src/core/increment/discipline-checker.js.map +1 -1
  105. package/dist/src/core/increment/duplicate-detector.d.ts +52 -0
  106. package/dist/src/core/increment/duplicate-detector.d.ts.map +1 -0
  107. package/dist/src/core/increment/duplicate-detector.js +276 -0
  108. package/dist/src/core/increment/duplicate-detector.js.map +1 -0
  109. package/dist/src/core/increment/increment-archiver.d.ts +90 -0
  110. package/dist/src/core/increment/increment-archiver.d.ts.map +1 -0
  111. package/dist/src/core/increment/increment-archiver.js +368 -0
  112. package/dist/src/core/increment/increment-archiver.js.map +1 -0
  113. package/dist/src/core/increment/increment-reopener.d.ts +165 -0
  114. package/dist/src/core/increment/increment-reopener.d.ts.map +1 -0
  115. package/dist/src/core/increment/increment-reopener.js +390 -0
  116. package/dist/src/core/increment/increment-reopener.js.map +1 -0
  117. package/dist/src/core/increment/metadata-manager.d.ts +26 -1
  118. package/dist/src/core/increment/metadata-manager.d.ts.map +1 -1
  119. package/dist/src/core/increment/metadata-manager.js +143 -5
  120. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  121. package/dist/src/core/increment/recent-work-scanner.d.ts +121 -0
  122. package/dist/src/core/increment/recent-work-scanner.d.ts.map +1 -0
  123. package/dist/src/core/increment/recent-work-scanner.js +303 -0
  124. package/dist/src/core/increment/recent-work-scanner.js.map +1 -0
  125. package/dist/src/core/increment/types.d.ts +1 -0
  126. package/dist/src/core/increment/types.d.ts.map +1 -1
  127. package/dist/src/core/increment-utils.d.ts +112 -0
  128. package/dist/src/core/increment-utils.d.ts.map +1 -0
  129. package/dist/src/core/increment-utils.js +210 -0
  130. package/dist/src/core/increment-utils.js.map +1 -0
  131. package/dist/src/core/living-docs/ac-project-specific-generator.d.ts +65 -0
  132. package/dist/src/core/living-docs/ac-project-specific-generator.d.ts.map +1 -0
  133. package/dist/src/core/living-docs/ac-project-specific-generator.js +175 -0
  134. package/dist/src/core/living-docs/ac-project-specific-generator.js.map +1 -0
  135. package/dist/src/core/living-docs/feature-archiver.d.ts +130 -0
  136. package/dist/src/core/living-docs/feature-archiver.d.ts.map +1 -0
  137. package/dist/src/core/living-docs/feature-archiver.js +549 -0
  138. package/dist/src/core/living-docs/feature-archiver.js.map +1 -0
  139. package/dist/src/core/living-docs/feature-id-manager.d.ts +81 -0
  140. package/dist/src/core/living-docs/feature-id-manager.d.ts.map +1 -0
  141. package/dist/src/core/living-docs/feature-id-manager.js +339 -0
  142. package/dist/src/core/living-docs/feature-id-manager.js.map +1 -0
  143. package/dist/src/core/living-docs/hierarchy-mapper.d.ts +144 -83
  144. package/dist/src/core/living-docs/hierarchy-mapper.d.ts.map +1 -1
  145. package/dist/src/core/living-docs/hierarchy-mapper.js +488 -270
  146. package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
  147. package/dist/src/core/living-docs/index.d.ts +6 -0
  148. package/dist/src/core/living-docs/index.d.ts.map +1 -1
  149. package/dist/src/core/living-docs/index.js +6 -0
  150. package/dist/src/core/living-docs/index.js.map +1 -1
  151. package/dist/src/core/living-docs/project-detector.d.ts +6 -0
  152. package/dist/src/core/living-docs/project-detector.d.ts.map +1 -1
  153. package/dist/src/core/living-docs/project-detector.js +35 -1
  154. package/dist/src/core/living-docs/project-detector.js.map +1 -1
  155. package/dist/src/core/living-docs/spec-distributor.d.ts +100 -26
  156. package/dist/src/core/living-docs/spec-distributor.d.ts.map +1 -1
  157. package/dist/src/core/living-docs/spec-distributor.js +1275 -258
  158. package/dist/src/core/living-docs/spec-distributor.js.map +1 -1
  159. package/dist/src/core/living-docs/task-project-specific-generator.d.ts +109 -0
  160. package/dist/src/core/living-docs/task-project-specific-generator.d.ts.map +1 -0
  161. package/dist/src/core/living-docs/task-project-specific-generator.js +221 -0
  162. package/dist/src/core/living-docs/task-project-specific-generator.js.map +1 -0
  163. package/dist/src/core/living-docs/types.d.ts +143 -0
  164. package/dist/src/core/living-docs/types.d.ts.map +1 -1
  165. package/dist/src/core/project-manager.d.ts +2 -17
  166. package/dist/src/core/project-manager.d.ts.map +1 -1
  167. package/dist/src/core/project-manager.js +68 -48
  168. package/dist/src/core/project-manager.js.map +1 -1
  169. package/dist/src/core/spec-content-sync.d.ts +1 -1
  170. package/dist/src/core/spec-content-sync.d.ts.map +1 -1
  171. package/dist/src/core/sync/enhanced-content-builder.d.ts.map +1 -1
  172. package/dist/src/core/sync/enhanced-content-builder.js +2 -1
  173. package/dist/src/core/sync/enhanced-content-builder.js.map +1 -1
  174. package/dist/src/core/sync/performance-optimizer.d.ts +153 -0
  175. package/dist/src/core/sync/performance-optimizer.d.ts.map +1 -0
  176. package/dist/src/core/sync/performance-optimizer.js +220 -0
  177. package/dist/src/core/sync/performance-optimizer.js.map +1 -0
  178. package/dist/src/core/sync/retry-handler.d.ts +98 -0
  179. package/dist/src/core/sync/retry-handler.d.ts.map +1 -0
  180. package/dist/src/core/sync/retry-handler.js +196 -0
  181. package/dist/src/core/sync/retry-handler.js.map +1 -0
  182. package/dist/src/core/types/config.d.ts +94 -0
  183. package/dist/src/core/types/config.d.ts.map +1 -1
  184. package/dist/src/core/types/config.js +16 -0
  185. package/dist/src/core/types/config.js.map +1 -1
  186. package/dist/src/core/types/increment-metadata.d.ts +6 -0
  187. package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
  188. package/dist/src/core/types/increment-metadata.js +10 -1
  189. package/dist/src/core/types/increment-metadata.js.map +1 -1
  190. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -1
  191. package/dist/src/integrations/jira/jira-incremental-mapper.js +4 -8
  192. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -1
  193. package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -1
  194. package/dist/src/integrations/jira/jira-mapper.js +4 -8
  195. package/dist/src/integrations/jira/jira-mapper.js.map +1 -1
  196. package/package.json +1 -1
  197. package/plugins/specweave/COMMANDS.md +13 -4
  198. package/plugins/specweave/commands/specweave-abandon.md +22 -20
  199. package/plugins/specweave/commands/specweave-archive-features.md +121 -0
  200. package/plugins/specweave/commands/specweave-archive-increments.md +82 -0
  201. package/plugins/specweave/commands/specweave-archive.md +363 -0
  202. package/plugins/specweave/commands/specweave-backlog.md +211 -0
  203. package/plugins/specweave/commands/specweave-fix-duplicates.md +517 -0
  204. package/plugins/specweave/commands/specweave-increment.md +4 -3
  205. package/plugins/specweave/commands/specweave-progress.md +176 -27
  206. package/plugins/specweave/commands/specweave-reopen.md +391 -0
  207. package/plugins/specweave/commands/specweave-restore-feature.md +90 -0
  208. package/plugins/specweave/commands/specweave-restore.md +309 -0
  209. package/plugins/specweave/commands/specweave-resume.md +51 -23
  210. package/plugins/specweave/commands/specweave-status.md +41 -7
  211. package/plugins/specweave/commands/specweave-sync-specs.md +425 -0
  212. package/plugins/specweave/hooks/hooks.json +4 -0
  213. package/plugins/specweave/hooks/lib/sync-spec-content.sh +2 -2
  214. package/plugins/specweave/hooks/post-task-completion.sh +39 -0
  215. package/plugins/specweave/hooks/pre-command-deduplication.sh +83 -0
  216. package/plugins/specweave/hooks/user-prompt-submit.sh +1 -1
  217. package/plugins/specweave/lib/hooks/sync-living-docs.js +2 -0
  218. package/plugins/specweave/lib/hooks/sync-living-docs.ts +4 -0
  219. package/plugins/specweave/lib/hooks/update-ac-status.js +102 -0
  220. package/plugins/specweave/lib/hooks/update-ac-status.ts +192 -0
  221. package/plugins/specweave/skills/archive-increments/SKILL.md +198 -0
  222. package/plugins/specweave/skills/increment-planner/scripts/feature-utils.js +14 -0
  223. package/plugins/specweave/skills/smart-reopen-detector/SKILL.md +244 -0
  224. package/plugins/specweave-ado/lib/ado-spec-content-sync.js +49 -5
  225. package/plugins/specweave-ado/lib/ado-spec-content-sync.ts +72 -6
  226. package/plugins/specweave-confluent/.claude-plugin/plugin.json +23 -0
  227. package/plugins/specweave-confluent/README.md +375 -0
  228. package/plugins/specweave-confluent/agents/confluent-architect/AGENT.md +306 -0
  229. package/plugins/specweave-confluent/skills/confluent-kafka-connect/SKILL.md +453 -0
  230. package/plugins/specweave-confluent/skills/confluent-ksqldb/SKILL.md +470 -0
  231. package/plugins/specweave-confluent/skills/confluent-schema-registry/SKILL.md +316 -0
  232. package/plugins/specweave-github/agents/github-task-splitter/AGENT.md +2 -2
  233. package/plugins/specweave-github/agents/user-story-updater/AGENT.md +148 -0
  234. package/plugins/specweave-github/commands/specweave-github-cleanup-duplicates.md +1 -1
  235. package/plugins/specweave-github/commands/specweave-github-update-user-story.md +156 -0
  236. package/plugins/specweave-github/hooks/post-task-completion.sh +10 -9
  237. package/plugins/specweave-github/lib/completion-calculator.js +262 -0
  238. package/plugins/specweave-github/lib/completion-calculator.ts +434 -0
  239. package/plugins/specweave-github/lib/duplicate-detector.js +3 -3
  240. package/plugins/specweave-github/lib/duplicate-detector.ts +4 -4
  241. package/plugins/specweave-github/lib/epic-content-builder.js +38 -0
  242. package/plugins/specweave-github/lib/epic-content-builder.ts +59 -0
  243. package/plugins/specweave-github/lib/github-client-v2.js +49 -0
  244. package/plugins/specweave-github/lib/github-client-v2.ts +59 -0
  245. package/plugins/specweave-github/lib/github-epic-sync.ts +1 -1
  246. package/plugins/specweave-github/lib/github-feature-sync.js +381 -0
  247. package/plugins/specweave-github/lib/github-feature-sync.ts +568 -0
  248. package/plugins/specweave-github/lib/github-spec-content-sync.js +40 -10
  249. package/plugins/specweave-github/lib/github-spec-content-sync.ts +82 -14
  250. package/plugins/specweave-github/lib/progress-comment-builder.js +229 -0
  251. package/plugins/specweave-github/lib/progress-comment-builder.ts +324 -0
  252. package/plugins/specweave-github/lib/user-story-content-builder.js +299 -0
  253. package/plugins/specweave-github/lib/user-story-content-builder.ts +413 -0
  254. package/plugins/specweave-github/lib/user-story-issue-builder.js +344 -0
  255. package/plugins/specweave-github/lib/user-story-issue-builder.ts +543 -0
  256. package/plugins/specweave-github/skills/github-issue-standard/SKILL.md +189 -0
  257. package/plugins/specweave-jira/lib/enhanced-jira-sync.js +134 -0
  258. package/plugins/specweave-jira/lib/{enhanced-jira-sync.ts.disabled → enhanced-jira-sync.ts} +26 -52
  259. package/plugins/specweave-kafka/.claude-plugin/plugin.json +26 -0
  260. package/plugins/specweave-kafka/IMPLEMENTATION-COMPLETE.md +483 -0
  261. package/plugins/specweave-kafka/README.md +242 -0
  262. package/plugins/specweave-kafka/agents/kafka-architect/AGENT.md +235 -0
  263. package/plugins/specweave-kafka/agents/kafka-devops/AGENT.md +209 -0
  264. package/plugins/specweave-kafka/agents/kafka-observability/AGENT.md +266 -0
  265. package/plugins/specweave-kafka/commands/deploy.md +99 -0
  266. package/plugins/specweave-kafka/commands/dev-env.md +176 -0
  267. package/plugins/specweave-kafka/commands/mcp-configure.md +101 -0
  268. package/plugins/specweave-kafka/commands/monitor-setup.md +96 -0
  269. package/plugins/specweave-kafka/docker/kafka-local/docker-compose.yml +187 -0
  270. package/plugins/specweave-kafka/docker/redpanda/docker-compose.yml +199 -0
  271. package/plugins/specweave-kafka/docker/templates/consumer-nodejs.js +225 -0
  272. package/plugins/specweave-kafka/docker/templates/consumer-python.py +220 -0
  273. package/plugins/specweave-kafka/docker/templates/producer-nodejs.js +168 -0
  274. package/plugins/specweave-kafka/docker/templates/producer-python.py +167 -0
  275. package/plugins/specweave-kafka/lib/adapters/apache-kafka-adapter.js +438 -0
  276. package/plugins/specweave-kafka/lib/adapters/apache-kafka-adapter.ts +541 -0
  277. package/plugins/specweave-kafka/lib/adapters/platform-adapter.js +47 -0
  278. package/plugins/specweave-kafka/lib/adapters/platform-adapter.ts +343 -0
  279. package/plugins/specweave-kafka/lib/cli/kcat-wrapper.js +258 -0
  280. package/plugins/specweave-kafka/lib/cli/kcat-wrapper.ts +298 -0
  281. package/plugins/specweave-kafka/lib/cli/types.js +10 -0
  282. package/plugins/specweave-kafka/lib/cli/types.ts +92 -0
  283. package/plugins/specweave-kafka/lib/connectors/connector-catalog.js +305 -0
  284. package/plugins/specweave-kafka/lib/connectors/connector-catalog.ts +528 -0
  285. package/plugins/specweave-kafka/lib/documentation/diagram-generator.js +114 -0
  286. package/plugins/specweave-kafka/lib/documentation/diagram-generator.ts +195 -0
  287. package/plugins/specweave-kafka/lib/documentation/exporter.js +210 -0
  288. package/plugins/specweave-kafka/lib/documentation/exporter.ts +338 -0
  289. package/plugins/specweave-kafka/lib/documentation/schema-catalog-generator.js +60 -0
  290. package/plugins/specweave-kafka/lib/documentation/schema-catalog-generator.ts +130 -0
  291. package/plugins/specweave-kafka/lib/documentation/topology-generator.js +143 -0
  292. package/plugins/specweave-kafka/lib/documentation/topology-generator.ts +290 -0
  293. package/plugins/specweave-kafka/lib/mcp/detector.js +298 -0
  294. package/plugins/specweave-kafka/lib/mcp/detector.ts +352 -0
  295. package/plugins/specweave-kafka/lib/mcp/types.js +21 -0
  296. package/plugins/specweave-kafka/lib/mcp/types.ts +77 -0
  297. package/plugins/specweave-kafka/lib/multi-cluster/cluster-config-manager.js +193 -0
  298. package/plugins/specweave-kafka/lib/multi-cluster/cluster-config-manager.ts +362 -0
  299. package/plugins/specweave-kafka/lib/multi-cluster/cluster-switcher.js +188 -0
  300. package/plugins/specweave-kafka/lib/multi-cluster/cluster-switcher.ts +359 -0
  301. package/plugins/specweave-kafka/lib/multi-cluster/health-aggregator.js +195 -0
  302. package/plugins/specweave-kafka/lib/multi-cluster/health-aggregator.ts +380 -0
  303. package/plugins/specweave-kafka/lib/observability/opentelemetry-kafka.js +209 -0
  304. package/plugins/specweave-kafka/lib/observability/opentelemetry-kafka.ts +358 -0
  305. package/plugins/specweave-kafka/lib/patterns/advanced-ksqldb-patterns.js +354 -0
  306. package/plugins/specweave-kafka/lib/patterns/advanced-ksqldb-patterns.ts +563 -0
  307. package/plugins/specweave-kafka/lib/patterns/circuit-breaker-resilience.js +259 -0
  308. package/plugins/specweave-kafka/lib/patterns/circuit-breaker-resilience.ts +516 -0
  309. package/plugins/specweave-kafka/lib/patterns/dead-letter-queue.js +233 -0
  310. package/plugins/specweave-kafka/lib/patterns/dead-letter-queue.ts +423 -0
  311. package/plugins/specweave-kafka/lib/patterns/exactly-once-semantics.js +266 -0
  312. package/plugins/specweave-kafka/lib/patterns/exactly-once-semantics.ts +445 -0
  313. package/plugins/specweave-kafka/lib/patterns/flink-kafka-integration.js +312 -0
  314. package/plugins/specweave-kafka/lib/patterns/flink-kafka-integration.ts +561 -0
  315. package/plugins/specweave-kafka/lib/patterns/multi-dc-replication.js +289 -0
  316. package/plugins/specweave-kafka/lib/patterns/multi-dc-replication.ts +607 -0
  317. package/plugins/specweave-kafka/lib/patterns/rate-limiting-backpressure.js +264 -0
  318. package/plugins/specweave-kafka/lib/patterns/rate-limiting-backpressure.ts +498 -0
  319. package/plugins/specweave-kafka/lib/patterns/stream-processing-optimization.js +263 -0
  320. package/plugins/specweave-kafka/lib/patterns/stream-processing-optimization.ts +549 -0
  321. package/plugins/specweave-kafka/lib/patterns/tiered-storage-compaction.js +205 -0
  322. package/plugins/specweave-kafka/lib/patterns/tiered-storage-compaction.ts +399 -0
  323. package/plugins/specweave-kafka/lib/performance/performance-optimizer.js +249 -0
  324. package/plugins/specweave-kafka/lib/performance/performance-optimizer.ts +427 -0
  325. package/plugins/specweave-kafka/lib/security/kafka-security.js +252 -0
  326. package/plugins/specweave-kafka/lib/security/kafka-security.ts +494 -0
  327. package/plugins/specweave-kafka/lib/utils/capacity-planner.js +203 -0
  328. package/plugins/specweave-kafka/lib/utils/capacity-planner.ts +469 -0
  329. package/plugins/specweave-kafka/lib/utils/config-validator.js +419 -0
  330. package/plugins/specweave-kafka/lib/utils/config-validator.ts +564 -0
  331. package/plugins/specweave-kafka/lib/utils/partitioning.js +329 -0
  332. package/plugins/specweave-kafka/lib/utils/partitioning.ts +473 -0
  333. package/plugins/specweave-kafka/lib/utils/sizing.js +221 -0
  334. package/plugins/specweave-kafka/lib/utils/sizing.ts +374 -0
  335. package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-broker-metrics.json +628 -0
  336. package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-cluster-overview.json +564 -0
  337. package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-consumer-lag.json +509 -0
  338. package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-jvm-metrics.json +674 -0
  339. package/plugins/specweave-kafka/monitoring/grafana/dashboards/kafka-topic-metrics.json +578 -0
  340. package/plugins/specweave-kafka/monitoring/grafana/provisioning/dashboards/kafka.yml +17 -0
  341. package/plugins/specweave-kafka/monitoring/grafana/provisioning/datasources/prometheus.yml +17 -0
  342. package/plugins/specweave-kafka/monitoring/prometheus/kafka-alerts.yml +415 -0
  343. package/plugins/specweave-kafka/monitoring/prometheus/kafka-jmx-exporter.yml +256 -0
  344. package/plugins/specweave-kafka/package.json +41 -0
  345. package/plugins/specweave-kafka/skills/kafka-architecture/SKILL.md +647 -0
  346. package/plugins/specweave-kafka/skills/kafka-cli-tools/SKILL.md +433 -0
  347. package/plugins/specweave-kafka/skills/kafka-iac-deployment/SKILL.md +449 -0
  348. package/plugins/specweave-kafka/skills/kafka-kubernetes/SKILL.md +667 -0
  349. package/plugins/specweave-kafka/skills/kafka-mcp-integration/SKILL.md +273 -0
  350. package/plugins/specweave-kafka/skills/kafka-observability/SKILL.md +576 -0
  351. package/plugins/specweave-kafka/templates/config/broker-production.properties +254 -0
  352. package/plugins/specweave-kafka/templates/config/consumer-low-latency.properties +112 -0
  353. package/plugins/specweave-kafka/templates/config/producer-high-throughput.properties +120 -0
  354. package/plugins/specweave-kafka/templates/migration/mirrormaker2-config.properties +234 -0
  355. package/plugins/specweave-kafka/templates/monitoring/grafana/multi-cluster-dashboard.json +686 -0
  356. package/plugins/specweave-kafka/terraform/apache-kafka/main.tf +347 -0
  357. package/plugins/specweave-kafka/terraform/apache-kafka/outputs.tf +107 -0
  358. package/plugins/specweave-kafka/terraform/apache-kafka/templates/kafka-broker-init.sh.tpl +216 -0
  359. package/plugins/specweave-kafka/terraform/apache-kafka/variables.tf +156 -0
  360. package/plugins/specweave-kafka/terraform/aws-msk/main.tf +362 -0
  361. package/plugins/specweave-kafka/terraform/aws-msk/outputs.tf +93 -0
  362. package/plugins/specweave-kafka/terraform/aws-msk/templates/server.properties.tpl +32 -0
  363. package/plugins/specweave-kafka/terraform/aws-msk/variables.tf +235 -0
  364. package/plugins/specweave-kafka/terraform/azure-event-hubs/main.tf +281 -0
  365. package/plugins/specweave-kafka/terraform/azure-event-hubs/outputs.tf +118 -0
  366. package/plugins/specweave-kafka/terraform/azure-event-hubs/variables.tf +148 -0
  367. package/plugins/specweave-kafka/tsconfig.json +21 -0
  368. package/plugins/specweave-kafka-streams/.claude-plugin/plugin.json +23 -0
  369. package/plugins/specweave-kafka-streams/README.md +310 -0
  370. package/plugins/specweave-kafka-streams/skills/kafka-streams-topology/SKILL.md +539 -0
  371. package/plugins/specweave-n8n/.claude-plugin/plugin.json +22 -0
  372. package/plugins/specweave-n8n/README.md +354 -0
  373. package/plugins/specweave-n8n/skills/n8n-kafka-workflows/SKILL.md +504 -0
  374. package/plugins/specweave-release/commands/specweave-release-platform.md +1 -1
  375. package/plugins/specweave-release/hooks/post-task-completion.sh +2 -2
  376. package/src/templates/AGENTS.md.template +601 -7
  377. package/src/templates/CLAUDE.md.template +188 -88
  378. package/plugins/specweave-ado/commands/specweave-ado-sync-spec.md +0 -255
  379. package/plugins/specweave-github/commands/specweave-github-sync-epic.md +0 -248
  380. package/plugins/specweave-github/commands/specweave-github-sync-from.md +0 -147
  381. package/plugins/specweave-github/commands/specweave-github-sync-spec.md +0 -208
  382. package/plugins/specweave-github/commands/specweave-github-sync-tasks.md +0 -530
  383. package/plugins/specweave-jira/commands/specweave-jira-sync-epic.md +0 -267
  384. package/plugins/specweave-jira/commands/specweave-jira-sync-spec.md +0 -240
@@ -22,8 +22,7 @@ This project uses **SpecWeave** - a specification-first AI development framework
22
22
  .specweave/increments/0001-user-auth/
23
23
  ├── spec.md # Core spec files
24
24
  ├── plan.md
25
- ├── tasks.md
26
- ├── tests.md
25
+ ├── tasks.md # Tasks with embedded tests (BDD format)
27
26
  ├── reports/ # ✅ PUT REPORTS HERE!
28
27
  │ ├── SESSION-SUMMARY.md
29
28
  │ └── ANALYSIS-REPORT.md
@@ -47,6 +46,48 @@ This project uses **SpecWeave** - a specification-first AI development framework
47
46
 
48
47
  ---
49
48
 
49
+ ## 📋 Quick Reference Cards
50
+
51
+ ### Daily Workflow
52
+ ```
53
+ ┌────────────────────────────────────────────────────────────┐
54
+ │ TASK → COMMAND │
55
+ ├────────────────────────────────────────────────────────────┤
56
+ │ Plan new feature → /specweave:increment "feature" │
57
+ │ Execute tasks → /specweave:do │
58
+ │ Check progress → /specweave:progress │
59
+ │ Validate quality → /specweave:validate 0001 │
60
+ │ Close increment → /specweave:done 0001 │
61
+ │ Sync to GitHub → /specweave:github:sync │
62
+ │ Sync to Jira → /specweave:jira:sync │
63
+ └────────────────────────────────────────────────────────────┘
64
+ ```
65
+
66
+ ### When to Use Which Command
67
+ | User Says... | Use Command |
68
+ |---------------------------|------------------------------------|
69
+ | "Let's build X" | `/specweave:increment "X"` |
70
+ | "Start implementing" | `/specweave:do` |
71
+ | "What's the status?" | `/specweave:progress` |
72
+ | "Is this ready?" | `/specweave:validate 0001` |
73
+ | "We're done" | `/specweave:done 0001` |
74
+ | "Sync to GitHub" | `/specweave:github:sync` |
75
+ | "Sync to Jira" | `/specweave:jira:sync` |
76
+
77
+ ### File Organization Rules
78
+ ```
79
+ ┌────────────────────────────────────────────────────────────┐
80
+ │ NEVER in Root ↔ ALWAYS in Increment Folder │
81
+ ├────────────────────────────────────────────────────────────┤
82
+ │ ❌ analysis.md ↔ ✅ .../0001/reports/analysis.md │
83
+ │ ❌ migration.py ↔ ✅ .../0001/scripts/migration.py │
84
+ │ ❌ execution.log ↔ ✅ .../0001/logs/execution.log │
85
+ │ ❌ session-notes.md ↔ ✅ .../0001/reports/session.md │
86
+ └────────────────────────────────────────────────────────────┘
87
+ ```
88
+
89
+ ---
90
+
50
91
  ## SpecWeave Workflow (Use These Commands!)
51
92
 
52
93
  **How SpecWeave works**:
@@ -56,7 +97,7 @@ This project uses **SpecWeave** - a specification-first AI development framework
56
97
  ```
57
98
 
58
99
  **1. Plan Feature** → `/specweave:increment "user authentication"`
59
- - Creates spec.md (WHAT/WHY), plan.md (HOW), tasks.md, tests.md
100
+ - Creates spec.md (WHAT/WHY), plan.md (HOW), tasks.md (with embedded tests)
60
101
  - PM-led process with architect/security/QA review
61
102
  - **Use when**: Starting any new feature or increment
62
103
 
@@ -69,9 +110,9 @@ This project uses **SpecWeave** - a specification-first AI development framework
69
110
  - Shows task completion %, next action
70
111
  - **Use when**: Want to see status
71
112
 
72
- **4. Validate Quality** → `/specweave:validate 0001` or `/specweave:validate 0001 --quality`
73
- - Rule-based validation (120 checks)
74
- - Optional AI quality assessment
113
+ **4. Validate Quality** → `/specweave:validate 0001` or `/specweave:qa 0001`
114
+ - Rule-based validation (120 checks) or AI quality assessment with risk scoring
115
+ - Validates tasks, tests (embedded in tasks.md), and documentation
75
116
  - **Use when**: Verify increment quality before completion
76
117
 
77
118
  **5. Close Increment** → `/specweave:done 0001`
@@ -128,6 +169,26 @@ ls -1 .specweave/increments/ | grep -E "^[0-9]{4}-" | sort | tail -5
128
169
  - Azure DevOps - Work item updates automatically
129
170
  - **Configurable**: Set `external_tracker_sync: true` in `.specweave/config.json`
130
171
 
172
+ ### 🏷️ GitHub Sync Mapping (Universal Hierarchy)
173
+
174
+ **SpecWeave follows strict hierarchy for GitHub sync:**
175
+
176
+ | SpecWeave Entity | GitHub Mapping | Example |
177
+ |------------------|----------------|---------|
178
+ | **Feature** (FS-XXX) | **Milestone** | `FS-031: External Tool Status Sync` |
179
+ | **User Story** (US-XXX) | **Issue** | `[FS-031][US-002] Task-Level Mapping` |
180
+ | **Task** (T-XXX) | **Checkbox** | `- [ ] T-001: Implement validator` |
181
+
182
+ **Key Principles**:
183
+ - ✅ **Features → Milestones** (container for all User Stories)
184
+ - ✅ **User Stories → Issues** (each US-* file = separate GitHub issue)
185
+ - ✅ **Tasks → Checkboxes** (listed in User Story issue body)
186
+ - ❌ **NEVER create Feature-level issues** (Features are Milestones!)
187
+
188
+ **⛔ DEPRECATED**:
189
+ - ❌ `[INC-XXXX]` - Old increment format (pre-v0.18.0)
190
+ - ❌ `[FS-XXX] Feature Title` as issue - Feature-level issues (pre-v0.19.0, wrong!)
191
+
131
192
  3. **Sound Notifications**:
132
193
  - Plays sound when tasks complete (helps you know when to review)
133
194
  - Platform-specific: Glass.aiff (macOS), system sounds (Linux/Windows)
@@ -235,7 +296,7 @@ Both approaches work perfectly - use whichever feels more natural!
235
296
  .specweave/increments/0001-user-auth/ # ⚠️ ID must be unique!
236
297
  ├── spec.md # WHAT & WHY
237
298
  ├── plan.md # HOW
238
- ├── tasks.md # Implementation steps with embedded tests
299
+ ├── tasks.md # Tasks with embedded test plans (BDD format)
239
300
  ├── context-manifest.yaml # Selective context loading
240
301
  ├── logs/ # ✅ Execution logs, errors, AI sessions
241
302
  ├── scripts/ # ✅ Helper scripts, migrations, setup
@@ -309,6 +370,26 @@ project-root/
309
370
  - ✅ **Automatic**: No manual linking needed
310
371
  - ✅ **Multi-project aware**: Works with backend, frontend, mobile, etc.
311
372
  - ✅ **Always in sync**: Links created during `/specweave:done`
373
+ - ✅ **NEW (v0.18.3+)**: User stories include project-specific checkable task lists
374
+
375
+ ### Project-Specific Tasks (v0.18.3+)
376
+
377
+ **NEW**: User stories now have their OWN checkable task lists, not just links!
378
+
379
+ ```markdown
380
+ ## Tasks
381
+
382
+ - [ ] **T-001**: Setup API endpoint
383
+ - [x] **T-003**: Add DB migration (completed)
384
+
385
+ > **Note**: Tasks are project-specific. See increment tasks.md for full list
386
+ ```
387
+
388
+ **Benefits**:
389
+ - **Project Isolation**: Backend tasks ≠ Frontend tasks
390
+ - **GitHub UX**: Checkable task lists in GitHub issues
391
+ - **Traceability**: Each user story explicitly lists its tasks
392
+ - **Completion Tracking**: Status synced from increment tasks.md
312
393
 
313
394
  **For complete details**: Ask me about "bidirectional linking" or check `.specweave/docs/internal/specs/default/README.md`
314
395
 
@@ -421,86 +502,37 @@ Config: Auto-detected from project files
421
502
 
422
503
  ---
423
504
 
424
- ## Plugin Architecture
425
-
426
- **SpecWeave uses Claude Code's native plugin system** for optional capabilities.
505
+ ## Plugins
427
506
 
428
- ### Core vs. Plugins
507
+ SpecWeave uses Claude Code's native plugin system. All plugins auto-install during `specweave init`.
429
508
 
430
- **Core Framework** (always loaded):
431
- - 9 core skills (increment-planner, tdd-workflow, context-loader, etc.)
432
- - 3 core agents (PM, Architect, Tech Lead)
433
- - 7 core commands (`/specweave:increment`, `/specweave:do`, etc.)
434
- - ~12K tokens (lightweight!)
435
-
436
- **Plugins** (opt-in based on your stack):
437
- - Tech stacks: `specweave-frontend`, `specweave-backend`, `specweave-kubernetes`
438
- - Integrations: `specweave-github`, `specweave-jira`
439
- - Domains: `specweave-ml`, `specweave-payments`, `specweave-testing`
440
-
441
- ### Using Plugin Commands
442
-
443
- **Core commands** (always available):
444
- ```bash
445
- /specweave:increment "feature"
446
- /specweave:do
447
- /specweave:progress
448
- ```
449
-
450
- **Plugin commands** (when plugin installed):
451
- ```bash
452
- # GitHub plugin:
453
- /specweave:github:sync # Sync increments to GitHub issues
454
- /specweave:github:create-issue # Create new issue
455
- /specweave:github:status # Check sync status
456
-
457
- # Jira plugin:
458
- /specweave:jira:sync # Sync to Jira
459
- /specweave:jira:create-ticket # Create Jira ticket
460
- ```
461
-
462
- **Plugin agents and skills activate automatically** based on your tech stack and context.
463
-
464
- ### Installing Plugins
509
+ **Enabled plugins**: {ENABLED_PLUGINS}
465
510
 
466
- Plugins are detected and suggested during `specweave init` based on:
467
- - Git remote (GitHub detected → suggest github plugin)
468
- - Tech stack (React detected → suggest frontend plugin)
469
- - Project files (K8s yamls → suggest kubernetes plugin)
511
+ **Plugin commands** (examples):
512
+ - `/specweave:github:sync` - Sync to GitHub
513
+ - `/specweave:jira:sync` - Sync to Jira
470
514
 
471
- **Enabled plugins**: {ENABLED_PLUGINS}
515
+ Skills/agents activate automatically based on context.
472
516
 
473
517
  ---
474
518
 
475
- ## Documentation Philosophy
519
+ ## Documentation Approach
476
520
 
477
521
  **You chose**: {DOCUMENTATION_APPROACH}
478
522
 
479
523
  {#IF_COMPREHENSIVE}
480
- ### Comprehensive Upfront Approach
481
- - Create complete specifications before coding (scope-appropriate detail)
482
- - All ADRs documented in advance
483
- - Best for: Enterprise, regulated industries, large teams, complex systems
484
- - Spec size scales with project complexity (10-500+ pages depending on scope)
524
+ **Comprehensive** - Detailed specs upfront, best for enterprise/regulated industries.
485
525
  {#ENDIF}
486
526
 
487
527
  {#IF_INCREMENTAL}
488
- ### Incremental/Evolutionary Approach
489
- - Start with overview (10-20 pages)
490
- - Build documentation as you go
491
- - Best for: Startups, MVPs, small teams
528
+ **Incremental** - Build docs as you go, best for startups/MVPs.
492
529
  {#ENDIF}
493
530
 
494
531
  ---
495
532
 
496
- ## Frequently Asked Questions
533
+ ## Quick Reference
497
534
 
498
- **New to SpecWeave?** Check out the [FAQ](https://spec-weave.com/docs/faq) for answers to common questions:
499
-
500
- ### Quick Answers
501
- - **Why specs in two locations?** Living Docs (permanent, complete feature) vs Increment Specs (temporary, current work)
502
- - **When do I need living docs spec?** Major features (3+ increments), brownfield integration, or external PM tools
503
- - **Can I delete increment specs?** YES, after completion. Living docs specs are NEVER deleted (permanent)
535
+ **Need help?** [SpecWeave Docs](https://spec-weave.com/docs)
504
536
  - **Which spec is source of truth?** Living docs spec (when it exists), otherwise increment spec
505
537
 
506
538
  ### Key Topics Covered
@@ -519,11 +551,13 @@ Plugins are detected and suggested during `specweave init` based on:
519
551
  ## Testing
520
552
 
521
553
  **Four Levels**:
522
- 1. **Specification** (`.specweave/docs/internal/strategy/`) - Acceptance criteria
523
- 2. **Feature** (`.specweave/increments/####/tests.md`) - Test coverage per increment
554
+ 1. **Specification** (`.specweave/docs/internal/strategy/`) - Acceptance criteria (AC-IDs)
555
+ 2. **Feature** (`.specweave/increments/####/tasks.md`) - Test plans embedded in tasks (BDD format)
524
556
  3. **Integration** (`tests/integration/` or `tests/specs/`) - Component/module tests
525
557
  4. **Code** (`tests/`) - Automated tests (Unit, Integration, E2E)
526
558
 
559
+ **Test-Aware Planning**: Tests are embedded in tasks.md using BDD format (Given/When/Then), with AC-ID traceability and realistic coverage targets (80-90%).
560
+
527
561
  **Requirements**:
528
562
  - E2E tests when UI exists
529
563
  - >80% coverage for critical paths
@@ -531,24 +565,6 @@ Plugins are detected and suggested during `specweave init` based on:
531
565
 
532
566
  ---
533
567
 
534
- ## Quick Reference Card
535
-
536
- ### When to Use Each Command
537
-
538
- | User Says | Use Command | What It Does |
539
- |-----------|-------------|--------------|
540
- | "Let's build [feature]" | `/specweave:increment "[feature]"` | Plan new increment |
541
- | "Start implementing" | `/specweave:do` | Execute tasks (smart resume) |
542
- | "What's the status?" | `/specweave:progress` | Show task completion % |
543
- | "Is this ready?" | `/specweave:validate 0001` | Validate increment quality |
544
- | "We're done" | `/specweave:done 0001` | Close increment |
545
-
546
- **Plugin Commands** (when installed):
547
- | "Sync to GitHub" | `/specweave:github:sync` | Export to GitHub issues |
548
- | "Sync to Jira" | `/specweave:jira:sync` | Export to Jira |
549
-
550
- ---
551
-
552
568
  ## Key SpecWeave Principles
553
569
 
554
570
  1. **Specification-First**: Always start with `/specweave:increment` to create specs before coding
@@ -569,6 +585,90 @@ Plugins are detected and suggested during `specweave init` based on:
569
585
 
570
586
  ---
571
587
 
588
+ ## 🆘 Troubleshooting
589
+
590
+ ### Skills Not Activating
591
+
592
+ **Symptoms**: Expected skill didn't load automatically
593
+
594
+ **Solutions**:
595
+ 1. Restart Claude Code (skills loaded at startup)
596
+ 2. Check keywords: Skills activate based on description keywords
597
+ 3. Verify plugin installed: Use `/plugin list --installed`
598
+ 4. Manual check: Look in `.claude/skills/SKILLS-INDEX.md` for available skills
599
+
600
+ ### Commands Not Found
601
+
602
+ **Symptoms**: `/specweave:increment` doesn't work
603
+
604
+ **Solutions**:
605
+ 1. Verify plugin installed: `/plugin list --installed`
606
+ 2. Check installed commands: `ls .claude/commands/`
607
+ 3. Restart Claude Code
608
+ 4. Re-run: `specweave init` if plugins missing
609
+
610
+ ### Root Folder Polluted
611
+
612
+ **Symptoms**: `git status` shows `.md` files in project root
613
+
614
+ **Solutions**:
615
+ 1. **Immediate fix**: Move files to increment folder
616
+ ```bash
617
+ mv SESSION-NOTES.md .specweave/increments/0001/reports/
618
+ mv analysis.md .specweave/increments/0001/reports/
619
+ ```
620
+ 2. Check `.gitignore` is up to date
621
+ 3. Commit cleaned structure:
622
+ ```bash
623
+ git add .
624
+ git commit -m "fix: move reports to increment folder"
625
+ ```
626
+
627
+ ### Increment Numbers Not Unique
628
+
629
+ **Symptoms**: Multiple increments with same number (0001, 0001, etc.)
630
+
631
+ **Solutions**:
632
+ 1. Check existing: `ls -1 .specweave/increments/ | grep -E "^[0-9]{4}-"`
633
+ 2. Use next available number
634
+ 3. If duplicates exist, run: `/specweave:fix-duplicates`
635
+
636
+ ### External Tracker Not Syncing
637
+
638
+ **Symptoms**: GitHub/Jira not updating after task completion
639
+
640
+ **Solutions (Claude Code)**:
641
+ 1. Check config: `.specweave/config.json` has `external_tracker_sync: true`
642
+ 2. Verify hook exists: `ls plugins/specweave-github/hooks/post-task-completion.sh`
643
+ 3. Check credentials: `gh auth status` or `jira config list`
644
+ 4. Manual sync: `/specweave:github:sync 0001`
645
+
646
+ ### Tasks.md Out of Sync
647
+
648
+ **Symptoms**: Progress shows 0/24 but many tasks done
649
+
650
+ **Solutions**:
651
+ 1. Auto-sync from reality: `/specweave:sync-tasks`
652
+ 2. Manual update: Edit tasks.md, change `[ ]` to `[x]`
653
+ 3. Recalculate progress counters
654
+
655
+ ### Can't Find Increment
656
+
657
+ **Symptoms**: Don't know which increment is active
658
+
659
+ **Solutions**:
660
+ 1. Check status: `/specweave:status` (shows all increments)
661
+ 2. Check progress: `/specweave:progress` (shows active increment)
662
+ 3. View active: `cat .specweave/state/active-increment.json`
663
+
664
+ ### More Help
665
+
666
+ **Documentation**: https://spec-weave.com/docs/troubleshooting
667
+ **GitHub Issues**: https://github.com/anton-abyzov/specweave/issues
668
+ **Discussions**: https://github.com/anton-abyzov/specweave/discussions
669
+
670
+ ---
671
+
572
672
  ## Getting Started
573
673
 
574
674
  **Create your first feature**:
@@ -1,255 +0,0 @@
1
- ---
2
- name: specweave-ado-sync-spec
3
- description: Sync SpecWeave spec to Azure DevOps Feature (bidirectional). Use when syncing .specweave/docs/internal/specs/spec-*.md files with ADO Features for permanent feature tracking.
4
- ---
5
-
6
- # Sync Spec to Azure DevOps Feature
7
-
8
- **CORRECT ARCHITECTURE**: This command syncs `.specweave/docs/internal/specs/spec-*.md` files (PERMANENT living docs) to Azure DevOps Features, NOT increments to work items.
9
-
10
- ## Usage
11
-
12
- ```bash
13
- /specweave-ado:sync-spec <spec-id> [--direction <to-ado|from-ado|bidirectional>]
14
- ```
15
-
16
- ## What It Does
17
-
18
- **Architecture**:
19
- - **Spec → ADO Feature** (not increment → work item!)
20
- - **User Story → ADO User Story** (child of feature)
21
- - **Acceptance Criteria → Checklist** (in user story description)
22
-
23
- **Sync Process**:
24
-
25
- 1. **Load spec** from `.specweave/docs/internal/specs/spec-{id}.md`
26
- 2. **Load ADO configuration** from `.env` (organization, project, PAT)
27
- 3. **Create or update ADO Feature**:
28
- - Title: `[SPEC-001] Feature Title`
29
- - Description: Spec overview + progress (HTML)
30
- - State: Matches spec status
31
- 4. **Sync user stories as ADO User Stories**:
32
- - Create user stories for new user stories
33
- - Update existing user stories
34
- - Update state based on user story status
35
- 5. **Link spec to feature** (update frontmatter)
36
-
37
- ## Examples
38
-
39
- ### Sync spec to ADO (create or update)
40
-
41
- ```bash
42
- /specweave-ado:sync-spec spec-001
43
- ```
44
-
45
- **Output**:
46
- ```
47
- 🔄 Syncing spec spec-001 to ADO Feature...
48
- Creating new ADO Feature...
49
- ✅ Created ADO Feature #456: https://dev.azure.com/org/project/_workitems/edit/456
50
- Syncing 35 user stories...
51
- ✅ Created US-001 → User Story #457
52
- ✅ Created US-002 → User Story #458
53
- ...
54
- ✅ Sync complete!
55
- Created: 35 user stories
56
- ADO Feature: https://dev.azure.com/org/project/_workitems/edit/456
57
- ```
58
-
59
- ### Sync FROM ADO to spec (bidirectional)
60
-
61
- ```bash
62
- /specweave-ado:sync-spec spec-001 --direction from-ado
63
- ```
64
-
65
- **Output**:
66
- ```
67
- 🔄 Syncing FROM ADO to spec spec-001...
68
- Fetching ADO Feature #456...
69
- ⚠️ Detected 3 conflict(s)
70
- 🔄 Resolving: US-002 marked Closed in ADO (ADO wins)
71
- 🔄 Resolving: US-005 marked Active in ADO (ADO wins)
72
- ✅ Sync FROM ADO complete!
73
- Updated: 3 user stories
74
- ```
75
-
76
- ## Arguments
77
-
78
- - `<spec-id>` - Spec ID (e.g., `spec-001` or just `001`)
79
- - `--direction <mode>` - Sync direction (default: `to-ado`)
80
- - `to-ado` - Push local spec to ADO
81
- - `from-ado` - Pull ADO state to spec
82
- - `bidirectional` - Sync both ways (conflict resolution)
83
-
84
- ## Configuration
85
-
86
- **Required `.env` variables**:
87
-
88
- ```bash
89
- # Azure DevOps Configuration
90
- ADO_ORGANIZATION=mycompany
91
- ADO_PROJECT=MyProject
92
- ADO_PERSONAL_ACCESS_TOKEN=your_pat_token_here
93
- ```
94
-
95
- **How to get Personal Access Token (PAT)**:
96
- 1. Go to https://dev.azure.com/{organization}/_usersSettings/tokens
97
- 2. Click "New Token"
98
- 3. Set scopes:
99
- - Work Items: Read, Write, & Manage
100
- - Project: Read
101
- 4. Copy token to `.env`
102
-
103
- ## Conflict Resolution
104
-
105
- When syncing FROM ADO, conflicts are resolved as follows:
106
-
107
- **ADO wins** (default):
108
- - User story state changes → update spec
109
- - Acceptance criteria status → update spec
110
- - Work item closure → mark user story done
111
-
112
- **Local wins** (future):
113
- - Spec changes take precedence
114
- - Push to ADO
115
-
116
- ## Requirements
117
-
118
- 1. **Azure DevOps account** with project access
119
- 2. **Personal Access Token** (with Work Items: Read, Write, & Manage)
120
- 3. **Project permissions** (create features, create user stories)
121
- 4. **Spec file exists** at `.specweave/docs/internal/specs/spec-{id}.md`
122
-
123
- ## What Gets Synced
124
-
125
- ### Spec → ADO Feature
126
-
127
- - ✅ Title: `[SPEC-001] Feature Area Title`
128
- - ✅ Description: Overview + progress stats (HTML)
129
- - ✅ Tags: `spec:spec-001`, `priority:P1`
130
- - ✅ State: New/Active/Resolved/Closed based on spec
131
-
132
- ### User Story → ADO User Story
133
-
134
- - ✅ Title: `[US-001] As a user, I want...`
135
- - ✅ Description: User story + acceptance criteria checklist (HTML)
136
- - ✅ Tags: `user-story`, `spec:spec-001`, `priority:P1`
137
- - ✅ Parent: Links to feature work item
138
- - ✅ State: New (todo) / Active (in-progress) / Closed (done)
139
-
140
- ### Acceptance Criteria → Checklist
141
-
142
- ```html
143
- <h2>Acceptance Criteria</h2>
144
- <ul>
145
- <li>☑ User can log in with email/password</li>
146
- <li>☐ Invalid credentials show error message</li>
147
- <li>☐ Account locks after 5 failed attempts</li>
148
- </ul>
149
- ```
150
-
151
- *Note*: ADO uses HTML in descriptions, with ☑/☐ for checkboxes.
152
-
153
- ## Architecture
154
-
155
- **Why This Architecture?**
156
-
157
- ✅ **Permanent tracking**: Specs never deleted, ADO links remain valid
158
- ✅ **Feature-level granularity**: One ADO Feature per feature (not per increment)
159
- ✅ **PM-friendly**: Stakeholders see progress in ADO board
160
- ✅ **Brownfield-ready**: Existing ADO features map to specs
161
-
162
- **What's WRONG?**
163
-
164
- ❌ Increment → ADO Work Item (increments are temporary!)
165
- ❌ Tasks → ADO Tasks (too granular, implementation details)
166
- ❌ Multiple features per feature (split across increments)
167
-
168
- ## Metadata
169
-
170
- After sync, spec frontmatter is updated:
171
-
172
- ```yaml
173
- ---
174
- id: spec-001
175
- title: Core Framework Architecture
176
- status: in-progress
177
- priority: P0
178
- externalLinks:
179
- ado:
180
- featureId: 456
181
- featureUrl: https://dev.azure.com/org/project/_workitems/edit/456
182
- syncedAt: "2025-11-10T12:00:00Z"
183
- organization: mycompany
184
- project: MyProject
185
- ---
186
- ```
187
-
188
- ## Troubleshooting
189
-
190
- **"ADO API authentication failed"**:
191
- - Check `.env` has correct `ADO_ORGANIZATION`, `ADO_PROJECT`, `ADO_PERSONAL_ACCESS_TOKEN`
192
- - Verify PAT is valid (not expired)
193
- - Test authentication: `curl -u :{PAT} https://dev.azure.com/{org}/_apis/projects?api-version=7.0`
194
-
195
- **"Spec not found"**:
196
- - Check spec exists: `ls .specweave/docs/internal/specs/`
197
- - Use correct ID: `spec-001` or `001`
198
-
199
- **"Cannot create feature"**:
200
- - Ensure you have permissions to create features in the project
201
- - Check project name is correct in `.env`
202
-
203
- **"Parent link failed"**:
204
- - Ensure feature exists before creating user stories
205
- - Check feature ID is correct
206
-
207
- **"No user stories to sync"**:
208
- - Add user stories to spec.md:
209
- ```markdown
210
- **US-001**: As a user, I want...
211
- - [ ] **AC-001-01**: Acceptance criteria 1
212
- ```
213
-
214
- ## Related
215
-
216
- - `/specweave-github:sync-spec` - Sync to GitHub Project
217
- - `/specweave-jira:sync-spec` - Sync to Jira Epic
218
- - `/specweave:sync-docs` - Sync living docs from increments to specs
219
-
220
- ## Implementation
221
-
222
- **File**: `plugins/specweave-ado/lib/ado-spec-sync.ts`
223
-
224
- **Core Class**: `AdoSpecSync`
225
-
226
- **Methods**:
227
- - `syncSpecToAdo(specId)` - Push to ADO
228
- - `syncFromAdo(specId)` - Pull from ADO
229
- - `detectConflicts(spec, feature)` - Compare states
230
- - `resolveConflicts(spec, conflicts)` - Apply resolution strategy
231
-
232
- ## Azure DevOps API Reference
233
-
234
- **Endpoints used**:
235
- - `POST /wit/workitems/$Feature` - Create feature
236
- - `PATCH /wit/workitems/{id}` - Update work item
237
- - `GET /wit/workitems/{id}` - Fetch work item
238
- - `POST /wit/wiql` - Search for work items (WIQL query)
239
-
240
- **Authentication**: Basic auth with empty username + Personal Access Token
241
-
242
- **API Version**: 7.0
243
-
244
- ## Work Item States
245
-
246
- **Feature States**:
247
- - New → Spec status: draft
248
- - Active → Spec status: in-progress
249
- - Resolved → Spec status: complete
250
- - Closed → Spec status: archived
251
-
252
- **User Story States**:
253
- - New → User story status: todo
254
- - Active → User story status: in-progress
255
- - Closed → User story status: done