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
@@ -1,248 +0,0 @@
1
- ---
2
- name: specweave-github-sync-epic
3
- description: Sync SpecWeave Epic folder to GitHub (Milestone + Issues). Implements Universal Hierarchy architecture - Epic → Milestone, Increments → Issues.
4
- ---
5
-
6
- # Sync Epic to GitHub (Universal Hierarchy)
7
-
8
- **Architecture**: Hierarchical sync using Epic folder structure
9
-
10
- - **Epic (FS-001)** → **GitHub Milestone**
11
- - **Increment (0001-core-framework)** → **GitHub Issue** (linked to Milestone)
12
-
13
- ## Usage
14
-
15
- ```bash
16
- /specweave-github:sync-epic <epic-id>
17
- ```
18
-
19
- ## What It Does
20
-
21
- **Hierarchical Sync Process**:
22
-
23
- 1. **Load Epic folder** from `.specweave/docs/internal/specs/FS-XXX-name/`
24
- 2. **Parse Epic README.md** to get Epic metadata (title, increments, status)
25
- 3. **Create or update GitHub Milestone**:
26
- - Title: `[FS-001] Epic Title`
27
- - Description: Epic overview + progress stats
28
- - State: Open (active/planning) or Closed (complete)
29
- 4. **Sync each increment as GitHub Issue**:
30
- - Title: `[INC-0001-core-framework] Title`
31
- - Body: Increment overview + link to tasks.md
32
- - Milestone: Linked to Epic Milestone
33
- - Labels: `increment`, `epic-sync`
34
- 5. **Update frontmatter** in Epic README.md and increment files
35
-
36
- ## Examples
37
-
38
- ### Sync Epic FS-001 (Core Framework Architecture)
39
-
40
- ```bash
41
- /specweave-github:sync-epic FS-001
42
- ```
43
-
44
- **Output**:
45
- ```
46
- 🔄 Syncing Epic FS-001 to GitHub...
47
- 📦 Epic: Core Framework Architecture
48
- 📊 Increments: 4
49
- 🚀 Creating GitHub Milestone...
50
- ✅ Created Milestone #10
51
-
52
- 📝 Syncing 4 increments...
53
- ✅ Created Issue #130 for 0001-core-framework
54
- ✅ Created Issue #131 for 0002-core-enhancements
55
- ✅ Created Issue #132 for 0004-plugin-architecture
56
- ✅ Created Issue #133 for 0005-cross-platform-cli
57
-
58
- ✅ Epic sync complete!
59
- Milestone: https://github.com/owner/repo/milestone/10
60
- Issues created: 4
61
- Issues updated: 0
62
- ```
63
-
64
- ### Sync Epic with short ID
65
-
66
- ```bash
67
- /specweave-github:sync-epic 031
68
- # Resolves to FS-031
69
- ```
70
-
71
- ### Re-sync Epic (updates existing Milestone/Issues)
72
-
73
- ```bash
74
- /specweave-github:sync-epic FS-001
75
- ```
76
-
77
- **Output**:
78
- ```
79
- 🔄 Syncing Epic FS-001 to GitHub...
80
- ♻️ Updating existing Milestone #10...
81
- ✅ Updated Milestone #10
82
-
83
- 📝 Syncing 4 increments...
84
- ♻️ Updated Issue #130 for 0001-core-framework
85
- ♻️ Updated Issue #131 for 0002-core-enhancements
86
- ♻️ Updated Issue #132 for 0004-plugin-architecture
87
- ♻️ Updated Issue #133 for 0005-cross-platform-cli
88
-
89
- ✅ Epic sync complete!
90
- Milestone: https://github.com/owner/repo/milestone/10
91
- Issues created: 0
92
- Issues updated: 4
93
- ```
94
-
95
- ## Arguments
96
-
97
- - `<epic-id>` - Epic ID (e.g., `FS-001` or just `001`)
98
-
99
- ## What Gets Created
100
-
101
- ### GitHub Milestone (Epic-level)
102
-
103
- ```
104
- Title: [FS-001] Core Framework Architecture
105
- Description:
106
- Epic: Core Framework Architecture
107
-
108
- Progress: 4/4 increments (100%)
109
-
110
- Priority: P0
111
- Status: complete
112
-
113
- State: Closed (if complete) or Open (if active/planning)
114
- ```
115
-
116
- ### GitHub Issues (Increment-level)
117
-
118
- ```markdown
119
- Title: [INC-0001-core-framework] Core Framework
120
-
121
- # Core Framework
122
-
123
- Foundation framework with CLI, plugin system, and agent architecture...
124
-
125
- ---
126
-
127
- **Increment**: 0001-core-framework
128
- **Milestone**: See milestone for Epic progress
129
-
130
- 🤖 Auto-created by SpecWeave Epic Sync
131
- ```
132
-
133
- **Labels**: `increment`, `epic-sync`
134
- **Milestone**: Linked to Epic Milestone
135
-
136
- ## Frontmatter Updates
137
-
138
- ### Epic README.md (after sync)
139
-
140
- ```yaml
141
- ---
142
- id: FS-001
143
- title: "Core Framework Architecture"
144
- external_tools:
145
- github:
146
- type: milestone
147
- id: 10 # ← Added
148
- url: https://github.com/.../milestone/10 # ← Added
149
- increments:
150
- - id: 0001-core-framework
151
- external:
152
- github: 130 # ← Added
153
- - id: 0002-core-enhancements
154
- external:
155
- github: 131 # ← Added
156
- ---
157
- ```
158
-
159
- ### Increment file (0001-core-framework.md)
160
-
161
- ```yaml
162
- ---
163
- id: 0001-core-framework
164
- epic: FS-001
165
- external:
166
- github:
167
- issue: 130 # ← Added
168
- url: https://github.com/.../issues/130 # ← Added
169
- ---
170
- ```
171
-
172
- ## Benefits
173
-
174
- ✅ **Hierarchical tracking**: GitHub Milestones group related increments
175
- ✅ **Epic-level progress**: See completion percentage in Milestone
176
- ✅ **Automatic linking**: All Issues linked to Milestone
177
- ✅ **Idempotent**: Safe to re-run (updates existing Milestone/Issues)
178
- ✅ **Brownfield-ready**: Links existing GitHub Milestones/Issues
179
-
180
- ## Requirements
181
-
182
- 1. **GitHub CLI** (`gh`) installed and authenticated
183
- 2. **Git repository** with GitHub remote
184
- 3. **Write access** to repository (for creating Milestones/Issues)
185
- 4. **Epic folder exists** at `.specweave/docs/internal/specs/FS-XXX-name/`
186
-
187
- ## Architecture: Why Milestones?
188
-
189
- **GitHub's Hierarchy**:
190
- - GitHub Milestones = Epic-level grouping
191
- - GitHub Issues = Increment-level work items
192
- - GitHub Projects = Optional (cross-Epic tracking)
193
-
194
- **Comparison with JIRA/ADO**:
195
- - JIRA: Epic → Epic, Increment → Story (with Epic Link field)
196
- - ADO: Epic → Feature, Increment → User Story (with Parent link)
197
- - GitHub: Epic → Milestone, Increment → Issue (with Milestone link)
198
-
199
- All three implement the same Universal Hierarchy, just with different terminology.
200
-
201
- ## Troubleshooting
202
-
203
- **"Epic FS-001 not found"**:
204
- - Check Epic folder exists: `ls .specweave/docs/internal/specs/`
205
- - Verify Epic ID format: `FS-001-epic-name/`
206
-
207
- **"Epic README.md missing YAML frontmatter"**:
208
- - Ensure Epic was migrated with `migrate-to-epic-folders.ts`
209
- - Frontmatter must start with `---` on line 1
210
-
211
- **"Failed to create GitHub Milestone"**:
212
- - Check GitHub CLI auth: `gh auth status`
213
- - Verify write access: `gh repo view`
214
- - Check rate limits: `gh api rate_limit`
215
-
216
- **"Could not extract issue number"**:
217
- - GitHub CLI output format may have changed
218
- - Check CLI version: `gh --version` (need v2.0.0+)
219
-
220
- ## Related Commands
221
-
222
- - `/specweave-github:sync-spec` - OLD (flat spec → project) - DEPRECATED for Epic architecture
223
- - `/specweave-jira:sync-epic` - Sync to JIRA Epic + Stories
224
- - `/specweave-ado:sync-epic` - Sync to ADO Feature + User Stories
225
-
226
- ## Implementation
227
-
228
- **File**: `plugins/specweave-github/lib/github-epic-sync.ts`
229
-
230
- **Core Class**: `GitHubEpicSync`
231
-
232
- **Methods**:
233
- - `syncEpicToGitHub(epicId)` - Main sync logic
234
- - `createMilestone(epic)` - Create GitHub Milestone
235
- - `updateMilestone(number, epic)` - Update existing Milestone
236
- - `createIssue(increment, milestone)` - Create GitHub Issue
237
- - `updateIssue(number, increment, milestone)` - Update existing Issue
238
- - `updateEpicReadme(path, github)` - Update frontmatter
239
- - `updateIncrementExternalLink(...)` - Update increment frontmatter
240
-
241
- ## Next Steps
242
-
243
- After syncing Epic to GitHub:
244
-
245
- 1. **View Milestone progress**: `gh milestone view 10`
246
- 2. **List Issues in Milestone**: `gh issue list --milestone 10`
247
- 3. **Track completion**: GitHub automatically calculates Milestone progress
248
- 4. **Close Milestone**: When all increments complete, Milestone auto-closes
@@ -1,147 +0,0 @@
1
- ---
2
- name: specweave-github:sync-from
3
- description: Sync state from GitHub to SpecWeave (bidirectional sync). Fetches issue state, comments, and detects conflicts.
4
- ---
5
-
6
- # Sync from GitHub to SpecWeave
7
-
8
- Bidirectional sync - pull changes from GitHub issue back to SpecWeave increment.
9
-
10
- ## Usage
11
-
12
- ```bash
13
- /specweave-github:sync-from <incrementId>
14
- ```
15
-
16
- ## What It Does
17
-
18
- 1. **Fetches GitHub Issue State**:
19
- - Issue status (open/closed)
20
- - Comments
21
- - Labels, assignees, milestones
22
- - Last updated timestamp
23
-
24
- 2. **Detects Conflicts**:
25
- - GitHub closed but SpecWeave active
26
- - SpecWeave completed but GitHub open
27
- - GitHub abandoned but issue open
28
-
29
- 3. **Syncs Comments**:
30
- - Saves GitHub comments to `.specweave/increments/<id>/logs/github-comments.md`
31
- - Only syncs new comments (tracks IDs)
32
-
33
- 4. **Updates Metadata**:
34
- - Updates `metadata.json` with latest GitHub state
35
- - Tracks last sync timestamp
36
-
37
- ## Examples
38
-
39
- ### Basic Sync
40
-
41
- ```bash
42
- /specweave-github:sync-from 0015-hierarchical-sync
43
- ```
44
-
45
- **Output**:
46
- ```
47
- 🔄 Syncing from GitHub for increment: 0015-hierarchical-sync
48
- Syncing from anton-abyzov/specweave#29
49
- ✅ No conflicts - GitHub and SpecWeave in sync
50
- 📝 Syncing 3 new comment(s)
51
- ✅ Comments saved to: logs/github-comments.md
52
- ✅ Metadata updated
53
- ✅ Bidirectional sync complete
54
- ```
55
-
56
- ### Conflict Detection
57
-
58
- ```bash
59
- /specweave-github:sync-from 0015-hierarchical-sync
60
- ```
61
-
62
- **Output**:
63
- ```
64
- 🔄 Syncing from GitHub for increment: 0015-hierarchical-sync
65
- Syncing from anton-abyzov/specweave#29
66
- ⚠️ Detected 1 conflict(s)
67
-
68
- ⚠️ Conflict detected: status
69
- GitHub: closed
70
- SpecWeave: active
71
-
72
- ⚠️ **CONFLICT**: GitHub issue closed but SpecWeave increment still active!
73
- Recommendation: Run /specweave:done 0015-hierarchical-sync to close increment
74
- Or reopen issue on GitHub if work is not complete
75
-
76
- ✅ Bidirectional sync complete
77
- ```
78
-
79
- ## When to Use
80
-
81
- Use this command when:
82
- - ✅ Someone closed/reopened the GitHub issue
83
- - ✅ Comments were added on GitHub (want to import them)
84
- - ✅ Want to check if GitHub and SpecWeave are in sync
85
- - ✅ Resolving conflicts between GitHub and SpecWeave state
86
-
87
- ## Requirements
88
-
89
- - GitHub CLI (`gh`) installed and authenticated
90
- - GitHub issue linked in metadata.json
91
- - Repository has GitHub remote configured
92
-
93
- ## Conflict Resolution
94
-
95
- ### GitHub Closed, SpecWeave Active
96
-
97
- **Resolution**: Close SpecWeave increment
98
- ```bash
99
- /specweave:done 0015-hierarchical-sync
100
- ```
101
-
102
- **Or**: Reopen GitHub issue if work not complete
103
- ```bash
104
- gh issue reopen 29
105
- ```
106
-
107
- ### SpecWeave Completed, GitHub Open
108
-
109
- **Resolution**: Close GitHub issue
110
- ```bash
111
- gh issue close 29 --comment "Increment completed in SpecWeave"
112
- ```
113
-
114
- ### SpecWeave Abandoned, GitHub Open
115
-
116
- **Resolution**: Close GitHub issue with reason
117
- ```bash
118
- gh issue close 29 --comment "Increment abandoned: Requirements changed"
119
- ```
120
-
121
- ## Files Modified
122
-
123
- - `.specweave/increments/<id>/logs/github-comments.md` - GitHub comments
124
- - `.specweave/increments/<id>/metadata.json` - Sync metadata
125
-
126
- ## Related Commands
127
-
128
- - `/specweave-github:sync` - One-way sync (SpecWeave → GitHub)
129
- - `/specweave-github:create-issue` - Create GitHub issue
130
- - `/specweave-github:close-issue` - Close GitHub issue
131
- - `/specweave-github:status` - Check sync status
132
-
133
- ## Automation
134
-
135
- For automatic bidirectional sync, add to cron or CI/CD:
136
-
137
- ```bash
138
- # Sync all active increments hourly
139
- 0 * * * * cd /path/to/project && \
140
- for inc in $(ls .specweave/increments/ | grep -v _backlog); do \
141
- /specweave-github:sync-from $inc; \
142
- done
143
- ```
144
-
145
- ## Implementation
146
-
147
- Invokes `github-sync-bidirectional` agent with conflict detection and resolution logic.
@@ -1,208 +0,0 @@
1
- ---
2
- name: specweave-github-sync-spec
3
- description: Sync SpecWeave spec to GitHub Project (bidirectional). Use when syncing .specweave/docs/internal/specs/spec-*.md files with GitHub Projects for permanent feature tracking.
4
- ---
5
-
6
- # Sync Spec to GitHub Project
7
-
8
- **CORRECT ARCHITECTURE**: This command syncs `.specweave/docs/internal/specs/spec-*.md` files (PERMANENT living docs) to GitHub Projects, NOT increments to issues.
9
-
10
- ## Usage
11
-
12
- ```bash
13
- /specweave-github:sync-spec <spec-id> [--direction <to-github|from-github|bidirectional>]
14
- ```
15
-
16
- ## What It Does
17
-
18
- **Architecture**:
19
- - **Spec → GitHub Project** (not increment → issue!)
20
- - **User Story → GitHub Issue** (linked to project)
21
- - **Acceptance Criteria → Checklist** (in issue body)
22
-
23
- **Sync Process**:
24
-
25
- 1. **Load spec** from `.specweave/docs/internal/specs/spec-{id}.md`
26
- 2. **Detect repository** from git remote
27
- 3. **Create or update GitHub Project**:
28
- - Title: `[SPEC-001] Feature Title`
29
- - Description: Spec overview + progress
30
- - Status: Matches spec status
31
- 4. **Sync user stories as issues**:
32
- - Create issues for new user stories
33
- - Update existing issues
34
- - Close issues for completed user stories
35
- 5. **Link spec to project** (update frontmatter)
36
-
37
- ## Examples
38
-
39
- ### Sync spec to GitHub (create or update)
40
-
41
- ```bash
42
- /specweave-github:sync-spec spec-001
43
- ```
44
-
45
- **Output**:
46
- ```
47
- 🔄 Syncing spec spec-001 to GitHub Project...
48
- Creating new GitHub Project...
49
- ✅ Created GitHub Project #5: https://github.com/owner/repo/projects/5
50
- Syncing 35 user stories...
51
- ✅ Created US-001 → Issue #130
52
- ✅ Created US-002 → Issue #131
53
- ...
54
- ✅ Sync complete!
55
- Created: 35 user stories
56
- GitHub Project: https://github.com/owner/repo/projects/5
57
- ```
58
-
59
- ### Sync FROM GitHub to spec (bidirectional)
60
-
61
- ```bash
62
- /specweave-github:sync-spec spec-001 --direction from-github
63
- ```
64
-
65
- **Output**:
66
- ```
67
- 🔄 Syncing FROM GitHub to spec spec-001...
68
- Fetching GitHub Project #5...
69
- ⚠️ Detected 3 conflict(s)
70
- 🔄 Resolving: US-002 marked done in GitHub (GitHub wins)
71
- 🔄 Resolving: US-005 marked in-progress in GitHub (GitHub wins)
72
- ✅ Sync FROM GitHub complete!
73
- Updated: 3 user stories
74
- ```
75
-
76
- ### Bidirectional sync (default)
77
-
78
- ```bash
79
- /specweave-github:sync-spec spec-001 --direction bidirectional
80
- ```
81
-
82
- ## Arguments
83
-
84
- - `<spec-id>` - Spec ID (e.g., `spec-001` or just `001`)
85
- - `--direction <mode>` - Sync direction (default: `to-github`)
86
- - `to-github` - Push local spec to GitHub
87
- - `from-github` - Pull GitHub state to spec
88
- - `bidirectional` - Sync both ways (conflict resolution)
89
-
90
- ## Conflict Resolution
91
-
92
- When syncing FROM GitHub, conflicts are resolved as follows:
93
-
94
- **GitHub wins** (default):
95
- - User story status changes → update spec
96
- - Acceptance criteria status → update spec
97
- - Issue closure → mark user story done
98
-
99
- **Local wins** (future):
100
- - Spec changes take precedence
101
- - Push to GitHub
102
-
103
- ## Requirements
104
-
105
- 1. **GitHub CLI** (`gh`) installed and authenticated
106
- 2. **Git repository** with GitHub remote
107
- 3. **Write access** to repository (for creating projects/issues)
108
- 4. **Spec file exists** at `.specweave/docs/internal/specs/spec-{id}.md`
109
-
110
- ## What Gets Synced
111
-
112
- ### Spec → GitHub Project
113
-
114
- - ✅ Title: `[SPEC-001] Feature Area Title`
115
- - ✅ Description: Overview + progress stats
116
- - ✅ Status: Open/Closed based on spec completion
117
-
118
- ### User Story → GitHub Issue
119
-
120
- - ✅ Title: `[US-001] As a user, I want...`
121
- - ✅ Body: User story + acceptance criteria checklist
122
- - ✅ Labels: `user-story`, `spec:spec-001`, `priority:P1`
123
- - ✅ State: Open (todo/in-progress) or Closed (done)
124
-
125
- ### Acceptance Criteria → Checklist
126
-
127
- ```markdown
128
- ## Acceptance Criteria
129
-
130
- - [x] User can log in with email/password
131
- - [ ] Invalid credentials show error message
132
- - [ ] Account locks after 5 failed attempts
133
- ```
134
-
135
- ## Architecture
136
-
137
- **Why This Architecture?**
138
-
139
- ✅ **Permanent tracking**: Specs never deleted, GitHub links remain valid
140
- ✅ **Feature-level granularity**: One GitHub Project per feature (not per increment)
141
- ✅ **PM-friendly**: Stakeholders see progress in GitHub Projects
142
- ✅ **Brownfield-ready**: Existing GitHub Projects map to specs
143
-
144
- **What's WRONG?**
145
-
146
- ❌ Increment → GitHub Issue (increments are temporary!)
147
- ❌ Tasks → GitHub Issues (too granular, implementation details)
148
- ❌ Multiple issues per feature (split across increments)
149
-
150
- ## Metadata
151
-
152
- After sync, spec frontmatter is updated:
153
-
154
- ```yaml
155
- ---
156
- id: spec-001
157
- title: Core Framework Architecture
158
- status: in-progress
159
- priority: P0
160
- externalLinks:
161
- github:
162
- projectId: 5
163
- projectUrl: https://github.com/owner/repo/projects/5
164
- syncedAt: "2025-11-10T12:00:00Z"
165
- owner: owner
166
- repo: repo
167
- ---
168
- ```
169
-
170
- ## Troubleshooting
171
-
172
- **"Could not detect GitHub repository"**:
173
- - Ensure you're in a git repo with GitHub remote
174
- - Run: `git remote -v` to check
175
-
176
- **"Spec not found"**:
177
- - Check spec exists: `ls .specweave/docs/internal/specs/`
178
- - Use correct ID: `spec-001` or `001`
179
-
180
- **"GraphQL query failed"**:
181
- - Check GitHub CLI auth: `gh auth status`
182
- - Re-authenticate: `gh auth login`
183
-
184
- **"No user stories to sync"**:
185
- - Add user stories to spec.md:
186
- ```markdown
187
- **US-001**: As a user, I want...
188
- - [ ] **AC-001-01**: Acceptance criteria 1
189
- ```
190
-
191
- ## Related
192
-
193
- - `/specweave-github:sync` - OLD command (increment-based, DEPRECATED)
194
- - `/specweave-jira:sync-spec` - Sync to Jira Epic
195
- - `/specweave-ado:sync-spec` - Sync to Azure DevOps Feature
196
- - `/specweave:sync-docs` - Sync living docs from increments to specs
197
-
198
- ## Implementation
199
-
200
- **File**: `plugins/specweave-github/lib/github-spec-sync.ts`
201
-
202
- **Core Class**: `GitHubSpecSync`
203
-
204
- **Methods**:
205
- - `syncSpecToGitHub(specId)` - Push to GitHub
206
- - `syncFromGitHub(specId)` - Pull from GitHub
207
- - `detectConflicts(spec, project)` - Compare states
208
- - `resolveConflicts(spec, conflicts)` - Apply resolution strategy