specweave 0.12.1 → 0.12.3

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 (662) hide show
  1. package/CLAUDE.md +22 -0
  2. package/dist/cli/commands/init.d.ts.map +1 -1
  3. package/dist/cli/commands/init.js +85 -28
  4. package/dist/cli/commands/init.js.map +1 -1
  5. package/dist/core/specs/spec-metadata-manager.d.ts +70 -0
  6. package/dist/core/specs/spec-metadata-manager.d.ts.map +1 -0
  7. package/dist/core/specs/spec-metadata-manager.js +371 -0
  8. package/dist/core/specs/spec-metadata-manager.js.map +1 -0
  9. package/dist/core/specs/spec-parser.d.ts +66 -0
  10. package/dist/core/specs/spec-parser.d.ts.map +1 -0
  11. package/dist/core/specs/spec-parser.js +276 -0
  12. package/dist/core/specs/spec-parser.js.map +1 -0
  13. package/dist/core/types/config.d.ts.map +1 -1
  14. package/dist/core/types/config.js +7 -0
  15. package/dist/core/types/config.js.map +1 -1
  16. package/dist/core/types/spec-metadata.d.ts +229 -0
  17. package/dist/core/types/spec-metadata.d.ts.map +1 -0
  18. package/dist/core/types/spec-metadata.js +14 -0
  19. package/dist/core/types/spec-metadata.js.map +1 -0
  20. package/dist/hooks/lib/prepare-reflection-context.js +1 -1
  21. package/dist/hooks/lib/prepare-reflection-context.js.map +1 -1
  22. package/package.json +10 -3
  23. package/plugins/specweave/agents/pm/AGENT.md +183 -0
  24. package/plugins/specweave/hooks/post-spec-update.sh +158 -0
  25. package/plugins/specweave/hooks/post-user-story-complete.sh +179 -0
  26. package/plugins/specweave/skills/increment-planner/SKILL.md +17 -0
  27. package/plugins/specweave-ado/commands/specweave-ado-sync-spec.md +255 -0
  28. package/plugins/specweave-ado/lib/ado-spec-sync.ts +593 -0
  29. package/plugins/specweave-ado/skills/ado-sync/SKILL.md +12 -6
  30. package/plugins/specweave-github/commands/specweave-github-sync-spec.md +208 -0
  31. package/plugins/specweave-github/lib/github-spec-sync.ts +656 -0
  32. package/plugins/specweave-github/skills/github-sync/SKILL.md +16 -8
  33. package/plugins/specweave-jira/commands/specweave-jira-sync-spec.md +240 -0
  34. package/plugins/specweave-jira/lib/jira-spec-sync.ts +582 -0
  35. package/plugins/specweave-jira/skills/jira-sync/SKILL.md +20 -5
  36. package/dist/cli/commands/docs-build.d.ts +0 -7
  37. package/dist/cli/commands/docs-build.d.ts.map +0 -1
  38. package/dist/cli/commands/docs-build.js +0 -31
  39. package/dist/cli/commands/docs-build.js.map +0 -1
  40. package/dist/cli/commands/docs-preview.d.ts +0 -7
  41. package/dist/cli/commands/docs-preview.d.ts.map +0 -1
  42. package/dist/cli/commands/docs-preview.js +0 -50
  43. package/dist/cli/commands/docs-preview.js.map +0 -1
  44. package/dist/cli/commands/docs-setup.d.ts +0 -7
  45. package/dist/cli/commands/docs-setup.d.ts.map +0 -1
  46. package/dist/cli/commands/docs-setup.js +0 -31
  47. package/dist/cli/commands/docs-setup.js.map +0 -1
  48. package/dist/cli/commands/plugin.d.ts +0 -54
  49. package/dist/cli/commands/plugin.d.ts.map +0 -1
  50. package/dist/core/rfc-generator.d.ts +0 -147
  51. package/dist/core/rfc-generator.d.ts.map +0 -1
  52. package/dist/core/rfc-generator.js +0 -434
  53. package/dist/core/rfc-generator.js.map +0 -1
  54. package/dist/core/schemas/plugin-manifest.schema.json +0 -253
  55. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts +0 -89
  56. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.map +0 -1
  57. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js +0 -226
  58. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js.map +0 -1
  59. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts +0 -60
  60. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.map +0 -1
  61. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js +0 -201
  62. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js.map +0 -1
  63. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts +0 -42
  64. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.map +0 -1
  65. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js +0 -123
  66. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js.map +0 -1
  67. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts +0 -45
  68. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.map +0 -1
  69. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js +0 -132
  70. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js.map +0 -1
  71. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts +0 -33
  72. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts.map +0 -1
  73. package/dist/plugins/specweave/lib/hooks/reflection-parser.js +0 -419
  74. package/dist/plugins/specweave/lib/hooks/reflection-parser.js.map +0 -1
  75. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts +0 -56
  76. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.map +0 -1
  77. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js +0 -239
  78. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js.map +0 -1
  79. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts +0 -64
  80. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts.map +0 -1
  81. package/dist/plugins/specweave/lib/hooks/reflection-storage.js +0 -305
  82. package/dist/plugins/specweave/lib/hooks/reflection-storage.js.map +0 -1
  83. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts +0 -43
  84. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts.map +0 -1
  85. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js +0 -203
  86. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js.map +0 -1
  87. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts +0 -27
  88. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +0 -1
  89. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +0 -116
  90. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +0 -1
  91. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts +0 -59
  92. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts.map +0 -1
  93. package/dist/plugins/specweave/lib/hooks/translate-file.js +0 -350
  94. package/dist/plugins/specweave/lib/hooks/translate-file.js.map +0 -1
  95. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts +0 -13
  96. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts.map +0 -1
  97. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js +0 -175
  98. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js.map +0 -1
  99. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts +0 -164
  100. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts.map +0 -1
  101. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js +0 -73
  102. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js.map +0 -1
  103. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts +0 -29
  104. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts.map +0 -1
  105. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js +0 -203
  106. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js.map +0 -1
  107. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts +0 -94
  108. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +0 -1
  109. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +0 -219
  110. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +0 -1
  111. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts +0 -124
  112. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts.map +0 -1
  113. package/dist/plugins/specweave-ado/lib/ado-client-v2.js +0 -382
  114. package/dist/plugins/specweave-ado/lib/ado-client-v2.js.map +0 -1
  115. package/dist/plugins/specweave-ado/lib/ado-client.d.ts +0 -112
  116. package/dist/plugins/specweave-ado/lib/ado-client.d.ts.map +0 -1
  117. package/dist/plugins/specweave-ado/lib/ado-client.js +0 -257
  118. package/dist/plugins/specweave-ado/lib/ado-client.js.map +0 -1
  119. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts +0 -40
  120. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts.map +0 -1
  121. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js +0 -370
  122. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js.map +0 -1
  123. package/dist/plugins/specweave-ado/lib/project-selector.d.ts +0 -42
  124. package/dist/plugins/specweave-ado/lib/project-selector.d.ts.map +0 -1
  125. package/dist/plugins/specweave-ado/lib/project-selector.js +0 -211
  126. package/dist/plugins/specweave-ado/lib/project-selector.js.map +0 -1
  127. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts +0 -54
  128. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts.map +0 -1
  129. package/dist/plugins/specweave-github/lib/github-board-resolver.js +0 -122
  130. package/dist/plugins/specweave-github/lib/github-board-resolver.js.map +0 -1
  131. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +0 -104
  132. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +0 -1
  133. package/dist/plugins/specweave-github/lib/github-client-v2.js +0 -408
  134. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +0 -1
  135. package/dist/plugins/specweave-github/lib/github-client.d.ts +0 -96
  136. package/dist/plugins/specweave-github/lib/github-client.d.ts.map +0 -1
  137. package/dist/plugins/specweave-github/lib/github-client.js +0 -299
  138. package/dist/plugins/specweave-github/lib/github-client.js.map +0 -1
  139. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts +0 -29
  140. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts.map +0 -1
  141. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js +0 -268
  142. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js.map +0 -1
  143. package/dist/plugins/specweave-github/lib/index.d.ts +0 -10
  144. package/dist/plugins/specweave-github/lib/index.d.ts.map +0 -1
  145. package/dist/plugins/specweave-github/lib/index.js +0 -10
  146. package/dist/plugins/specweave-github/lib/index.js.map +0 -1
  147. package/dist/plugins/specweave-github/lib/repo-selector.d.ts +0 -49
  148. package/dist/plugins/specweave-github/lib/repo-selector.d.ts.map +0 -1
  149. package/dist/plugins/specweave-github/lib/repo-selector.js +0 -216
  150. package/dist/plugins/specweave-github/lib/repo-selector.js.map +0 -1
  151. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts +0 -51
  152. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts.map +0 -1
  153. package/dist/plugins/specweave-github/lib/subtask-sync.js +0 -147
  154. package/dist/plugins/specweave-github/lib/subtask-sync.js.map +0 -1
  155. package/dist/plugins/specweave-github/lib/task-parser.d.ts +0 -37
  156. package/dist/plugins/specweave-github/lib/task-parser.d.ts.map +0 -1
  157. package/dist/plugins/specweave-github/lib/task-parser.js +0 -211
  158. package/dist/plugins/specweave-github/lib/task-parser.js.map +0 -1
  159. package/dist/plugins/specweave-github/lib/task-sync.d.ts +0 -51
  160. package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +0 -1
  161. package/dist/plugins/specweave-github/lib/task-sync.js +0 -332
  162. package/dist/plugins/specweave-github/lib/task-sync.js.map +0 -1
  163. package/dist/plugins/specweave-github/lib/types.d.ts +0 -80
  164. package/dist/plugins/specweave-github/lib/types.d.ts.map +0 -1
  165. package/dist/plugins/specweave-github/lib/types.js +0 -5
  166. package/dist/plugins/specweave-github/lib/types.js.map +0 -1
  167. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +0 -50
  168. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +0 -1
  169. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +0 -84
  170. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +0 -1
  171. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts +0 -33
  172. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts.map +0 -1
  173. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js +0 -206
  174. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js.map +0 -1
  175. package/dist/plugins/specweave-jira/lib/project-selector.d.ts +0 -42
  176. package/dist/plugins/specweave-jira/lib/project-selector.d.ts.map +0 -1
  177. package/dist/plugins/specweave-jira/lib/project-selector.js +0 -216
  178. package/dist/plugins/specweave-jira/lib/project-selector.js.map +0 -1
  179. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts +0 -67
  180. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts.map +0 -1
  181. package/dist/plugins/specweave-jira/lib/reorganization-detector.js +0 -252
  182. package/dist/plugins/specweave-jira/lib/reorganization-detector.js.map +0 -1
  183. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts +0 -29
  184. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts.map +0 -1
  185. package/dist/plugins/specweave-jira/lib/setup-wizard.js +0 -219
  186. package/dist/plugins/specweave-jira/lib/setup-wizard.js.map +0 -1
  187. package/dist/src/adapters/adapter-base.d.ts +0 -71
  188. package/dist/src/adapters/adapter-base.d.ts.map +0 -1
  189. package/dist/src/adapters/adapter-base.js +0 -139
  190. package/dist/src/adapters/adapter-base.js.map +0 -1
  191. package/dist/src/adapters/adapter-interface.d.ts +0 -149
  192. package/dist/src/adapters/adapter-interface.d.ts.map +0 -1
  193. package/dist/src/adapters/adapter-interface.js +0 -8
  194. package/dist/src/adapters/adapter-interface.js.map +0 -1
  195. package/dist/src/adapters/adapter-loader.d.ts +0 -91
  196. package/dist/src/adapters/adapter-loader.d.ts.map +0 -1
  197. package/dist/src/adapters/adapter-loader.js +0 -238
  198. package/dist/src/adapters/adapter-loader.js.map +0 -1
  199. package/dist/src/adapters/agents-md-generator.d.ts +0 -48
  200. package/dist/src/adapters/agents-md-generator.d.ts.map +0 -1
  201. package/dist/src/adapters/agents-md-generator.js +0 -193
  202. package/dist/src/adapters/agents-md-generator.js.map +0 -1
  203. package/dist/src/adapters/claude/adapter.d.ts +0 -128
  204. package/dist/src/adapters/claude/adapter.d.ts.map +0 -1
  205. package/dist/src/adapters/claude/adapter.js +0 -415
  206. package/dist/src/adapters/claude/adapter.js.map +0 -1
  207. package/dist/src/adapters/claude-md-generator.d.ts +0 -78
  208. package/dist/src/adapters/claude-md-generator.d.ts.map +0 -1
  209. package/dist/src/adapters/claude-md-generator.js +0 -307
  210. package/dist/src/adapters/claude-md-generator.js.map +0 -1
  211. package/dist/src/adapters/codex/adapter.d.ts +0 -50
  212. package/dist/src/adapters/codex/adapter.d.ts.map +0 -1
  213. package/dist/src/adapters/codex/adapter.js +0 -316
  214. package/dist/src/adapters/codex/adapter.js.map +0 -1
  215. package/dist/src/adapters/cursor/adapter.d.ts +0 -98
  216. package/dist/src/adapters/cursor/adapter.d.ts.map +0 -1
  217. package/dist/src/adapters/cursor/adapter.js +0 -406
  218. package/dist/src/adapters/cursor/adapter.js.map +0 -1
  219. package/dist/src/adapters/doc-generator.d.ts +0 -69
  220. package/dist/src/adapters/doc-generator.d.ts.map +0 -1
  221. package/dist/src/adapters/doc-generator.js +0 -247
  222. package/dist/src/adapters/doc-generator.js.map +0 -1
  223. package/dist/src/adapters/gemini/adapter.d.ts +0 -50
  224. package/dist/src/adapters/gemini/adapter.d.ts.map +0 -1
  225. package/dist/src/adapters/gemini/adapter.js +0 -281
  226. package/dist/src/adapters/gemini/adapter.js.map +0 -1
  227. package/dist/src/adapters/generic/adapter.d.ts +0 -86
  228. package/dist/src/adapters/generic/adapter.d.ts.map +0 -1
  229. package/dist/src/adapters/generic/adapter.js +0 -338
  230. package/dist/src/adapters/generic/adapter.js.map +0 -1
  231. package/dist/src/cli/commands/abandon.d.ts +0 -13
  232. package/dist/src/cli/commands/abandon.d.ts.map +0 -1
  233. package/dist/src/cli/commands/abandon.js +0 -15
  234. package/dist/src/cli/commands/abandon.js.map +0 -1
  235. package/dist/src/cli/commands/import-docs.d.ts +0 -21
  236. package/dist/src/cli/commands/import-docs.d.ts.map +0 -1
  237. package/dist/src/cli/commands/import-docs.js +0 -146
  238. package/dist/src/cli/commands/import-docs.js.map +0 -1
  239. package/dist/src/cli/commands/init-multiproject.d.ts +0 -11
  240. package/dist/src/cli/commands/init-multiproject.d.ts.map +0 -1
  241. package/dist/src/cli/commands/init-multiproject.js +0 -202
  242. package/dist/src/cli/commands/init-multiproject.js.map +0 -1
  243. package/dist/src/cli/commands/init.d.ts +0 -9
  244. package/dist/src/cli/commands/init.d.ts.map +0 -1
  245. package/dist/src/cli/commands/init.js +0 -1205
  246. package/dist/src/cli/commands/init.js.map +0 -1
  247. package/dist/src/cli/commands/install.d.ts +0 -9
  248. package/dist/src/cli/commands/install.d.ts.map +0 -1
  249. package/dist/src/cli/commands/install.js +0 -127
  250. package/dist/src/cli/commands/install.js.map +0 -1
  251. package/dist/src/cli/commands/list.d.ts +0 -8
  252. package/dist/src/cli/commands/list.d.ts.map +0 -1
  253. package/dist/src/cli/commands/list.js +0 -119
  254. package/dist/src/cli/commands/list.js.map +0 -1
  255. package/dist/src/cli/commands/migrate-to-multiproject.d.ts +0 -37
  256. package/dist/src/cli/commands/migrate-to-multiproject.d.ts.map +0 -1
  257. package/dist/src/cli/commands/migrate-to-multiproject.js +0 -189
  258. package/dist/src/cli/commands/migrate-to-multiproject.js.map +0 -1
  259. package/dist/src/cli/commands/migrate-to-profiles.d.ts +0 -25
  260. package/dist/src/cli/commands/migrate-to-profiles.d.ts.map +0 -1
  261. package/dist/src/cli/commands/migrate-to-profiles.js +0 -350
  262. package/dist/src/cli/commands/migrate-to-profiles.js.map +0 -1
  263. package/dist/src/cli/commands/pause.d.ts +0 -13
  264. package/dist/src/cli/commands/pause.d.ts.map +0 -1
  265. package/dist/src/cli/commands/pause.js +0 -15
  266. package/dist/src/cli/commands/pause.js.map +0 -1
  267. package/dist/src/cli/commands/qa.d.ts +0 -54
  268. package/dist/src/cli/commands/qa.d.ts.map +0 -1
  269. package/dist/src/cli/commands/qa.js +0 -98
  270. package/dist/src/cli/commands/qa.js.map +0 -1
  271. package/dist/src/cli/commands/resume.d.ts +0 -12
  272. package/dist/src/cli/commands/resume.d.ts.map +0 -1
  273. package/dist/src/cli/commands/resume.js +0 -14
  274. package/dist/src/cli/commands/resume.js.map +0 -1
  275. package/dist/src/cli/commands/status.d.ts +0 -12
  276. package/dist/src/cli/commands/status.d.ts.map +0 -1
  277. package/dist/src/cli/commands/status.js +0 -23
  278. package/dist/src/cli/commands/status.js.map +0 -1
  279. package/dist/src/cli/commands/switch-project.d.ts +0 -13
  280. package/dist/src/cli/commands/switch-project.d.ts.map +0 -1
  281. package/dist/src/cli/commands/switch-project.js +0 -91
  282. package/dist/src/cli/commands/switch-project.js.map +0 -1
  283. package/dist/src/cli/commands/validate-jira.d.ts +0 -35
  284. package/dist/src/cli/commands/validate-jira.d.ts.map +0 -1
  285. package/dist/src/cli/commands/validate-jira.js +0 -112
  286. package/dist/src/cli/commands/validate-jira.js.map +0 -1
  287. package/dist/src/cli/commands/validate-plugins.d.ts +0 -41
  288. package/dist/src/cli/commands/validate-plugins.d.ts.map +0 -1
  289. package/dist/src/cli/commands/validate-plugins.js +0 -171
  290. package/dist/src/cli/commands/validate-plugins.js.map +0 -1
  291. package/dist/src/cli/helpers/issue-tracker/ado.d.ts +0 -57
  292. package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +0 -1
  293. package/dist/src/cli/helpers/issue-tracker/ado.js +0 -243
  294. package/dist/src/cli/helpers/issue-tracker/ado.js.map +0 -1
  295. package/dist/src/cli/helpers/issue-tracker/github.d.ts +0 -65
  296. package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +0 -1
  297. package/dist/src/cli/helpers/issue-tracker/github.js +0 -426
  298. package/dist/src/cli/helpers/issue-tracker/github.js.map +0 -1
  299. package/dist/src/cli/helpers/issue-tracker/index.d.ts +0 -22
  300. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +0 -1
  301. package/dist/src/cli/helpers/issue-tracker/index.js +0 -314
  302. package/dist/src/cli/helpers/issue-tracker/index.js.map +0 -1
  303. package/dist/src/cli/helpers/issue-tracker/jira.d.ts +0 -61
  304. package/dist/src/cli/helpers/issue-tracker/jira.d.ts.map +0 -1
  305. package/dist/src/cli/helpers/issue-tracker/jira.js +0 -404
  306. package/dist/src/cli/helpers/issue-tracker/jira.js.map +0 -1
  307. package/dist/src/cli/helpers/issue-tracker/types.d.ts +0 -107
  308. package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +0 -1
  309. package/dist/src/cli/helpers/issue-tracker/types.js +0 -16
  310. package/dist/src/cli/helpers/issue-tracker/types.js.map +0 -1
  311. package/dist/src/cli/helpers/issue-tracker/utils.d.ts +0 -112
  312. package/dist/src/cli/helpers/issue-tracker/utils.d.ts.map +0 -1
  313. package/dist/src/cli/helpers/issue-tracker/utils.js +0 -247
  314. package/dist/src/cli/helpers/issue-tracker/utils.js.map +0 -1
  315. package/dist/src/core/agent-model-manager.d.ts +0 -52
  316. package/dist/src/core/agent-model-manager.d.ts.map +0 -1
  317. package/dist/src/core/agent-model-manager.js +0 -120
  318. package/dist/src/core/agent-model-manager.js.map +0 -1
  319. package/dist/src/core/brownfield/analyzer.d.ts +0 -86
  320. package/dist/src/core/brownfield/analyzer.d.ts.map +0 -1
  321. package/dist/src/core/brownfield/analyzer.js +0 -365
  322. package/dist/src/core/brownfield/analyzer.js.map +0 -1
  323. package/dist/src/core/brownfield/importer.d.ts +0 -76
  324. package/dist/src/core/brownfield/importer.d.ts.map +0 -1
  325. package/dist/src/core/brownfield/importer.js +0 -287
  326. package/dist/src/core/brownfield/importer.js.map +0 -1
  327. package/dist/src/core/config-manager.d.ts +0 -47
  328. package/dist/src/core/config-manager.d.ts.map +0 -1
  329. package/dist/src/core/config-manager.js +0 -136
  330. package/dist/src/core/config-manager.js.map +0 -1
  331. package/dist/src/core/cost-tracker.d.ts +0 -108
  332. package/dist/src/core/cost-tracker.d.ts.map +0 -1
  333. package/dist/src/core/cost-tracker.js +0 -281
  334. package/dist/src/core/cost-tracker.js.map +0 -1
  335. package/dist/src/core/credentials-manager.d.ts +0 -107
  336. package/dist/src/core/credentials-manager.d.ts.map +0 -1
  337. package/dist/src/core/credentials-manager.js +0 -457
  338. package/dist/src/core/credentials-manager.js.map +0 -1
  339. package/dist/src/core/i18n/language-detector.d.ts +0 -29
  340. package/dist/src/core/i18n/language-detector.d.ts.map +0 -1
  341. package/dist/src/core/i18n/language-detector.js +0 -143
  342. package/dist/src/core/i18n/language-detector.js.map +0 -1
  343. package/dist/src/core/i18n/language-manager.d.ts +0 -101
  344. package/dist/src/core/i18n/language-manager.d.ts.map +0 -1
  345. package/dist/src/core/i18n/language-manager.js +0 -232
  346. package/dist/src/core/i18n/language-manager.js.map +0 -1
  347. package/dist/src/core/i18n/language-registry.d.ts +0 -44
  348. package/dist/src/core/i18n/language-registry.d.ts.map +0 -1
  349. package/dist/src/core/i18n/language-registry.js +0 -234
  350. package/dist/src/core/i18n/language-registry.js.map +0 -1
  351. package/dist/src/core/i18n/locale-manager.d.ts +0 -62
  352. package/dist/src/core/i18n/locale-manager.d.ts.map +0 -1
  353. package/dist/src/core/i18n/locale-manager.js +0 -137
  354. package/dist/src/core/i18n/locale-manager.js.map +0 -1
  355. package/dist/src/core/i18n/system-prompt-injector.d.ts +0 -33
  356. package/dist/src/core/i18n/system-prompt-injector.d.ts.map +0 -1
  357. package/dist/src/core/i18n/system-prompt-injector.js +0 -131
  358. package/dist/src/core/i18n/system-prompt-injector.js.map +0 -1
  359. package/dist/src/core/i18n/types.d.ts +0 -151
  360. package/dist/src/core/i18n/types.d.ts.map +0 -1
  361. package/dist/src/core/i18n/types.js +0 -11
  362. package/dist/src/core/i18n/types.js.map +0 -1
  363. package/dist/src/core/increment/limits.d.ts +0 -68
  364. package/dist/src/core/increment/limits.d.ts.map +0 -1
  365. package/dist/src/core/increment/limits.js +0 -224
  366. package/dist/src/core/increment/limits.js.map +0 -1
  367. package/dist/src/core/increment/metadata-manager.d.ts +0 -114
  368. package/dist/src/core/increment/metadata-manager.d.ts.map +0 -1
  369. package/dist/src/core/increment/metadata-manager.js +0 -320
  370. package/dist/src/core/increment/metadata-manager.js.map +0 -1
  371. package/dist/src/core/increment/status-commands.d.ts +0 -43
  372. package/dist/src/core/increment/status-commands.d.ts.map +0 -1
  373. package/dist/src/core/increment/status-commands.js +0 -277
  374. package/dist/src/core/increment/status-commands.js.map +0 -1
  375. package/dist/src/core/increment-status.d.ts +0 -72
  376. package/dist/src/core/increment-status.d.ts.map +0 -1
  377. package/dist/src/core/increment-status.js +0 -227
  378. package/dist/src/core/increment-status.js.map +0 -1
  379. package/dist/src/core/model-selector.d.ts +0 -57
  380. package/dist/src/core/model-selector.d.ts.map +0 -1
  381. package/dist/src/core/model-selector.js +0 -115
  382. package/dist/src/core/model-selector.js.map +0 -1
  383. package/dist/src/core/phase-detector.d.ts +0 -62
  384. package/dist/src/core/phase-detector.d.ts.map +0 -1
  385. package/dist/src/core/phase-detector.js +0 -229
  386. package/dist/src/core/phase-detector.js.map +0 -1
  387. package/dist/src/core/plugin-loader.d.ts +0 -131
  388. package/dist/src/core/plugin-loader.d.ts.map +0 -1
  389. package/dist/src/core/plugin-loader.js +0 -421
  390. package/dist/src/core/plugin-loader.js.map +0 -1
  391. package/dist/src/core/project-manager.d.ts +0 -127
  392. package/dist/src/core/project-manager.d.ts.map +0 -1
  393. package/dist/src/core/project-manager.js +0 -524
  394. package/dist/src/core/project-manager.js.map +0 -1
  395. package/dist/src/core/project-structure-detector.d.ts +0 -92
  396. package/dist/src/core/project-structure-detector.d.ts.map +0 -1
  397. package/dist/src/core/project-structure-detector.js +0 -289
  398. package/dist/src/core/project-structure-detector.js.map +0 -1
  399. package/dist/src/core/qa/qa-runner.d.ts +0 -16
  400. package/dist/src/core/qa/qa-runner.d.ts.map +0 -1
  401. package/dist/src/core/qa/qa-runner.js +0 -404
  402. package/dist/src/core/qa/qa-runner.js.map +0 -1
  403. package/dist/src/core/qa/quality-gate-decider.d.ts +0 -53
  404. package/dist/src/core/qa/quality-gate-decider.d.ts.map +0 -1
  405. package/dist/src/core/qa/quality-gate-decider.js +0 -268
  406. package/dist/src/core/qa/quality-gate-decider.js.map +0 -1
  407. package/dist/src/core/qa/risk-calculator.d.ts +0 -126
  408. package/dist/src/core/qa/risk-calculator.d.ts.map +0 -1
  409. package/dist/src/core/qa/risk-calculator.js +0 -247
  410. package/dist/src/core/qa/risk-calculator.js.map +0 -1
  411. package/dist/src/core/qa/types.d.ts +0 -315
  412. package/dist/src/core/qa/types.d.ts.map +0 -1
  413. package/dist/src/core/qa/types.js +0 -8
  414. package/dist/src/core/qa/types.js.map +0 -1
  415. package/dist/src/core/rfc-generator-v2.d.ts +0 -149
  416. package/dist/src/core/rfc-generator-v2.d.ts.map +0 -1
  417. package/dist/src/core/rfc-generator-v2.js +0 -399
  418. package/dist/src/core/rfc-generator-v2.js.map +0 -1
  419. package/dist/src/core/sync/bidirectional-engine.d.ts +0 -110
  420. package/dist/src/core/sync/bidirectional-engine.d.ts.map +0 -1
  421. package/dist/src/core/sync/bidirectional-engine.js +0 -356
  422. package/dist/src/core/sync/bidirectional-engine.js.map +0 -1
  423. package/dist/src/core/sync/folder-mapper.d.ts +0 -71
  424. package/dist/src/core/sync/folder-mapper.d.ts.map +0 -1
  425. package/dist/src/core/sync/folder-mapper.js +0 -168
  426. package/dist/src/core/sync/folder-mapper.js.map +0 -1
  427. package/dist/src/core/sync/profile-manager.d.ts +0 -72
  428. package/dist/src/core/sync/profile-manager.d.ts.map +0 -1
  429. package/dist/src/core/sync/profile-manager.js +0 -338
  430. package/dist/src/core/sync/profile-manager.js.map +0 -1
  431. package/dist/src/core/sync/profile-selector.d.ts +0 -52
  432. package/dist/src/core/sync/profile-selector.d.ts.map +0 -1
  433. package/dist/src/core/sync/profile-selector.js +0 -179
  434. package/dist/src/core/sync/profile-selector.js.map +0 -1
  435. package/dist/src/core/sync/profile-validator.d.ts +0 -52
  436. package/dist/src/core/sync/profile-validator.d.ts.map +0 -1
  437. package/dist/src/core/sync/profile-validator.js +0 -225
  438. package/dist/src/core/sync/profile-validator.js.map +0 -1
  439. package/dist/src/core/sync/project-context.d.ts +0 -81
  440. package/dist/src/core/sync/project-context.d.ts.map +0 -1
  441. package/dist/src/core/sync/project-context.js +0 -354
  442. package/dist/src/core/sync/project-context.js.map +0 -1
  443. package/dist/src/core/sync/rate-limiter.d.ts +0 -116
  444. package/dist/src/core/sync/rate-limiter.d.ts.map +0 -1
  445. package/dist/src/core/sync/rate-limiter.js +0 -308
  446. package/dist/src/core/sync/rate-limiter.js.map +0 -1
  447. package/dist/src/core/sync/time-range-selector.d.ts +0 -48
  448. package/dist/src/core/sync/time-range-selector.d.ts.map +0 -1
  449. package/dist/src/core/sync/time-range-selector.js +0 -224
  450. package/dist/src/core/sync/time-range-selector.js.map +0 -1
  451. package/dist/src/core/types/config.d.ts +0 -90
  452. package/dist/src/core/types/config.d.ts.map +0 -1
  453. package/dist/src/core/types/config.js +0 -37
  454. package/dist/src/core/types/config.js.map +0 -1
  455. package/dist/src/core/types/increment-metadata.d.ts +0 -120
  456. package/dist/src/core/types/increment-metadata.d.ts.map +0 -1
  457. package/dist/src/core/types/increment-metadata.js +0 -138
  458. package/dist/src/core/types/increment-metadata.js.map +0 -1
  459. package/dist/src/core/types/plugin.d.ts +0 -283
  460. package/dist/src/core/types/plugin.d.ts.map +0 -1
  461. package/dist/src/core/types/plugin.js +0 -49
  462. package/dist/src/core/types/plugin.js.map +0 -1
  463. package/dist/src/core/types/sync-profile.d.ts +0 -403
  464. package/dist/src/core/types/sync-profile.d.ts.map +0 -1
  465. package/dist/src/core/types/sync-profile.js +0 -55
  466. package/dist/src/core/types/sync-profile.js.map +0 -1
  467. package/dist/src/hooks/lib/types/reflection-types.d.ts +0 -125
  468. package/dist/src/hooks/lib/types/reflection-types.d.ts.map +0 -1
  469. package/dist/src/hooks/lib/types/reflection-types.js +0 -54
  470. package/dist/src/hooks/lib/types/reflection-types.js.map +0 -1
  471. package/dist/src/integrations/ado/ado-client.d.ts +0 -127
  472. package/dist/src/integrations/ado/ado-client.d.ts.map +0 -1
  473. package/dist/src/integrations/ado/ado-client.js +0 -416
  474. package/dist/src/integrations/ado/ado-client.js.map +0 -1
  475. package/dist/src/integrations/jira/jira-client.d.ts +0 -139
  476. package/dist/src/integrations/jira/jira-client.d.ts.map +0 -1
  477. package/dist/src/integrations/jira/jira-client.js +0 -386
  478. package/dist/src/integrations/jira/jira-client.js.map +0 -1
  479. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +0 -75
  480. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +0 -1
  481. package/dist/src/integrations/jira/jira-incremental-mapper.js +0 -474
  482. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +0 -1
  483. package/dist/src/integrations/jira/jira-mapper.d.ts +0 -105
  484. package/dist/src/integrations/jira/jira-mapper.d.ts.map +0 -1
  485. package/dist/src/integrations/jira/jira-mapper.js +0 -494
  486. package/dist/src/integrations/jira/jira-mapper.js.map +0 -1
  487. package/dist/src/metrics/calculators/change-failure-rate.d.ts +0 -22
  488. package/dist/src/metrics/calculators/change-failure-rate.d.ts.map +0 -1
  489. package/dist/src/metrics/calculators/change-failure-rate.js +0 -70
  490. package/dist/src/metrics/calculators/change-failure-rate.js.map +0 -1
  491. package/dist/src/metrics/calculators/deployment-frequency.d.ts +0 -20
  492. package/dist/src/metrics/calculators/deployment-frequency.d.ts.map +0 -1
  493. package/dist/src/metrics/calculators/deployment-frequency.js +0 -61
  494. package/dist/src/metrics/calculators/deployment-frequency.js.map +0 -1
  495. package/dist/src/metrics/calculators/lead-time.d.ts +0 -22
  496. package/dist/src/metrics/calculators/lead-time.d.ts.map +0 -1
  497. package/dist/src/metrics/calculators/lead-time.js +0 -82
  498. package/dist/src/metrics/calculators/lead-time.js.map +0 -1
  499. package/dist/src/metrics/calculators/mttr.d.ts +0 -21
  500. package/dist/src/metrics/calculators/mttr.d.ts.map +0 -1
  501. package/dist/src/metrics/calculators/mttr.js +0 -60
  502. package/dist/src/metrics/calculators/mttr.js.map +0 -1
  503. package/dist/src/metrics/dora-calculator.d.ts +0 -28
  504. package/dist/src/metrics/dora-calculator.d.ts.map +0 -1
  505. package/dist/src/metrics/dora-calculator.js +0 -117
  506. package/dist/src/metrics/dora-calculator.js.map +0 -1
  507. package/dist/src/metrics/github-client.d.ts +0 -51
  508. package/dist/src/metrics/github-client.d.ts.map +0 -1
  509. package/dist/src/metrics/github-client.js +0 -133
  510. package/dist/src/metrics/github-client.js.map +0 -1
  511. package/dist/src/metrics/report-generator.d.ts +0 -17
  512. package/dist/src/metrics/report-generator.d.ts.map +0 -1
  513. package/dist/src/metrics/report-generator.js +0 -403
  514. package/dist/src/metrics/report-generator.js.map +0 -1
  515. package/dist/src/metrics/types.d.ts +0 -112
  516. package/dist/src/metrics/types.d.ts.map +0 -1
  517. package/dist/src/metrics/types.js +0 -10
  518. package/dist/src/metrics/types.js.map +0 -1
  519. package/dist/src/metrics/utils/percentile.d.ts +0 -25
  520. package/dist/src/metrics/utils/percentile.d.ts.map +0 -1
  521. package/dist/src/metrics/utils/percentile.js +0 -46
  522. package/dist/src/metrics/utils/percentile.js.map +0 -1
  523. package/dist/src/metrics/utils/tier-classifier.d.ts +0 -61
  524. package/dist/src/metrics/utils/tier-classifier.d.ts.map +0 -1
  525. package/dist/src/metrics/utils/tier-classifier.js +0 -100
  526. package/dist/src/metrics/utils/tier-classifier.js.map +0 -1
  527. package/dist/src/testing/test-generator.d.ts +0 -117
  528. package/dist/src/testing/test-generator.d.ts.map +0 -1
  529. package/dist/src/testing/test-generator.js +0 -370
  530. package/dist/src/testing/test-generator.js.map +0 -1
  531. package/dist/src/types/cost-tracking.d.ts +0 -43
  532. package/dist/src/types/cost-tracking.d.ts.map +0 -1
  533. package/dist/src/types/cost-tracking.js +0 -8
  534. package/dist/src/types/cost-tracking.js.map +0 -1
  535. package/dist/src/types/model-selection.d.ts +0 -53
  536. package/dist/src/types/model-selection.d.ts.map +0 -1
  537. package/dist/src/types/model-selection.js +0 -12
  538. package/dist/src/types/model-selection.js.map +0 -1
  539. package/dist/src/utils/agents-md-compiler.d.ts +0 -68
  540. package/dist/src/utils/agents-md-compiler.d.ts.map +0 -1
  541. package/dist/src/utils/agents-md-compiler.js +0 -420
  542. package/dist/src/utils/agents-md-compiler.js.map +0 -1
  543. package/dist/src/utils/auth-helpers.d.ts +0 -58
  544. package/dist/src/utils/auth-helpers.d.ts.map +0 -1
  545. package/dist/src/utils/auth-helpers.js +0 -108
  546. package/dist/src/utils/auth-helpers.js.map +0 -1
  547. package/dist/src/utils/auto-install.d.ts +0 -47
  548. package/dist/src/utils/auto-install.d.ts.map +0 -1
  549. package/dist/src/utils/auto-install.js +0 -211
  550. package/dist/src/utils/auto-install.js.map +0 -1
  551. package/dist/src/utils/claude-cli-detector.d.ts +0 -75
  552. package/dist/src/utils/claude-cli-detector.d.ts.map +0 -1
  553. package/dist/src/utils/claude-cli-detector.js +0 -285
  554. package/dist/src/utils/claude-cli-detector.js.map +0 -1
  555. package/dist/src/utils/cost-reporter.d.ts +0 -58
  556. package/dist/src/utils/cost-reporter.d.ts.map +0 -1
  557. package/dist/src/utils/cost-reporter.js +0 -224
  558. package/dist/src/utils/cost-reporter.js.map +0 -1
  559. package/dist/src/utils/docs-preview/config-generator.d.ts +0 -46
  560. package/dist/src/utils/docs-preview/config-generator.d.ts.map +0 -1
  561. package/dist/src/utils/docs-preview/config-generator.js +0 -377
  562. package/dist/src/utils/docs-preview/config-generator.js.map +0 -1
  563. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +0 -38
  564. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +0 -1
  565. package/dist/src/utils/docs-preview/docusaurus-setup.js +0 -177
  566. package/dist/src/utils/docs-preview/docusaurus-setup.js.map +0 -1
  567. package/dist/src/utils/docs-preview/index.d.ts +0 -7
  568. package/dist/src/utils/docs-preview/index.d.ts.map +0 -1
  569. package/dist/src/utils/docs-preview/index.js +0 -7
  570. package/dist/src/utils/docs-preview/index.js.map +0 -1
  571. package/dist/src/utils/docs-preview/package-installer.d.ts +0 -42
  572. package/dist/src/utils/docs-preview/package-installer.d.ts.map +0 -1
  573. package/dist/src/utils/docs-preview/package-installer.js +0 -182
  574. package/dist/src/utils/docs-preview/package-installer.js.map +0 -1
  575. package/dist/src/utils/docs-preview/server-manager.d.ts +0 -30
  576. package/dist/src/utils/docs-preview/server-manager.d.ts.map +0 -1
  577. package/dist/src/utils/docs-preview/server-manager.js +0 -212
  578. package/dist/src/utils/docs-preview/server-manager.js.map +0 -1
  579. package/dist/src/utils/docs-preview/sidebar-builder.d.ts +0 -32
  580. package/dist/src/utils/docs-preview/sidebar-builder.d.ts.map +0 -1
  581. package/dist/src/utils/docs-preview/sidebar-builder.js +0 -202
  582. package/dist/src/utils/docs-preview/sidebar-builder.js.map +0 -1
  583. package/dist/src/utils/docs-preview/types.d.ts +0 -57
  584. package/dist/src/utils/docs-preview/types.d.ts.map +0 -1
  585. package/dist/src/utils/docs-preview/types.js +0 -2
  586. package/dist/src/utils/docs-preview/types.js.map +0 -1
  587. package/dist/src/utils/env-file.d.ts +0 -88
  588. package/dist/src/utils/env-file.d.ts.map +0 -1
  589. package/dist/src/utils/env-file.js +0 -180
  590. package/dist/src/utils/env-file.js.map +0 -1
  591. package/dist/src/utils/env-multi-project-parser.d.ts +0 -220
  592. package/dist/src/utils/env-multi-project-parser.d.ts.map +0 -1
  593. package/dist/src/utils/env-multi-project-parser.js +0 -403
  594. package/dist/src/utils/env-multi-project-parser.js.map +0 -1
  595. package/dist/src/utils/esm-helpers.d.ts +0 -50
  596. package/dist/src/utils/esm-helpers.d.ts.map +0 -1
  597. package/dist/src/utils/esm-helpers.js +0 -57
  598. package/dist/src/utils/esm-helpers.js.map +0 -1
  599. package/dist/src/utils/execFileNoThrow.d.ts +0 -99
  600. package/dist/src/utils/execFileNoThrow.d.ts.map +0 -1
  601. package/dist/src/utils/execFileNoThrow.js +0 -137
  602. package/dist/src/utils/execFileNoThrow.js.map +0 -1
  603. package/dist/src/utils/external-resource-validator.d.ts +0 -102
  604. package/dist/src/utils/external-resource-validator.d.ts.map +0 -1
  605. package/dist/src/utils/external-resource-validator.js +0 -400
  606. package/dist/src/utils/external-resource-validator.js.map +0 -1
  607. package/dist/src/utils/generate-skills-index.d.ts +0 -24
  608. package/dist/src/utils/generate-skills-index.d.ts.map +0 -1
  609. package/dist/src/utils/generate-skills-index.js +0 -410
  610. package/dist/src/utils/generate-skills-index.js.map +0 -1
  611. package/dist/src/utils/model-selection.d.ts +0 -75
  612. package/dist/src/utils/model-selection.d.ts.map +0 -1
  613. package/dist/src/utils/model-selection.js +0 -204
  614. package/dist/src/utils/model-selection.js.map +0 -1
  615. package/dist/src/utils/plugin-validator.d.ts +0 -161
  616. package/dist/src/utils/plugin-validator.d.ts.map +0 -1
  617. package/dist/src/utils/plugin-validator.js +0 -558
  618. package/dist/src/utils/plugin-validator.js.map +0 -1
  619. package/dist/src/utils/pricing-constants.d.ts +0 -70
  620. package/dist/src/utils/pricing-constants.d.ts.map +0 -1
  621. package/dist/src/utils/pricing-constants.js +0 -71
  622. package/dist/src/utils/pricing-constants.js.map +0 -1
  623. package/dist/src/utils/project-detection.d.ts +0 -141
  624. package/dist/src/utils/project-detection.d.ts.map +0 -1
  625. package/dist/src/utils/project-detection.js +0 -321
  626. package/dist/src/utils/project-detection.js.map +0 -1
  627. package/dist/src/utils/string-utils.d.ts +0 -40
  628. package/dist/src/utils/string-utils.d.ts.map +0 -1
  629. package/dist/src/utils/string-utils.js +0 -58
  630. package/dist/src/utils/string-utils.js.map +0 -1
  631. package/dist/src/utils/translation.d.ts +0 -187
  632. package/dist/src/utils/translation.d.ts.map +0 -1
  633. package/dist/src/utils/translation.js +0 -414
  634. package/dist/src/utils/translation.js.map +0 -1
  635. package/dist/utils/docs-preview.bak/config-generator.d.ts +0 -46
  636. package/dist/utils/docs-preview.bak/config-generator.d.ts.map +0 -1
  637. package/dist/utils/docs-preview.bak/config-generator.js +0 -377
  638. package/dist/utils/docs-preview.bak/config-generator.js.map +0 -1
  639. package/dist/utils/docs-preview.bak/package-installer.d.ts +0 -42
  640. package/dist/utils/docs-preview.bak/package-installer.d.ts.map +0 -1
  641. package/dist/utils/docs-preview.bak/package-installer.js +0 -182
  642. package/dist/utils/docs-preview.bak/package-installer.js.map +0 -1
  643. package/dist/utils/docs-preview.bak/server-manager.d.ts +0 -30
  644. package/dist/utils/docs-preview.bak/server-manager.d.ts.map +0 -1
  645. package/dist/utils/docs-preview.bak/server-manager.js +0 -207
  646. package/dist/utils/docs-preview.bak/server-manager.js.map +0 -1
  647. package/dist/utils/docs-preview.bak/sidebar-builder.d.ts +0 -31
  648. package/dist/utils/docs-preview.bak/sidebar-builder.d.ts.map +0 -1
  649. package/dist/utils/docs-preview.bak/sidebar-builder.js +0 -202
  650. package/dist/utils/docs-preview.bak/sidebar-builder.js.map +0 -1
  651. package/dist/utils/docs-preview.bak/types.d.ts +0 -60
  652. package/dist/utils/docs-preview.bak/types.d.ts.map +0 -1
  653. package/dist/utils/docs-preview.bak/types.js +0 -5
  654. package/dist/utils/docs-preview.bak/types.js.map +0 -1
  655. package/dist/utils/plugin-detection.d.ts +0 -50
  656. package/dist/utils/plugin-detection.d.ts.map +0 -1
  657. package/dist/utils/secrets-loader.d.ts +0 -88
  658. package/dist/utils/secrets-loader.d.ts.map +0 -1
  659. package/dist/utils/secrets-loader.js +0 -271
  660. package/dist/utils/secrets-loader.js.map +0 -1
  661. package/src/templates/environments/minimal/.env.production +0 -16
  662. package/src/templates/environments/standard/.env.production +0 -30
@@ -0,0 +1,656 @@
1
+ /**
2
+ * GitHub Spec Sync
3
+ *
4
+ * CORRECT ARCHITECTURE:
5
+ * - Syncs .specweave/docs/internal/specs/spec-*.md ↔ GitHub Projects
6
+ * - NOT increments ↔ GitHub Issues (that was wrong!)
7
+ *
8
+ * Mapping:
9
+ * - Spec → GitHub Project
10
+ * - User Story → GitHub Project Card/Issue
11
+ * - Acceptance Criteria → Checklist in Issue
12
+ *
13
+ * @module github-spec-sync
14
+ */
15
+
16
+ import { SpecMetadataManager } from '../../../src/core/specs/spec-metadata-manager.js';
17
+ import { SpecParser } from '../../../src/core/specs/spec-parser.js';
18
+ import {
19
+ SpecContent,
20
+ UserStory,
21
+ SpecSyncResult,
22
+ SpecSyncConflict
23
+ } from '../../../src/core/types/spec-metadata.js';
24
+ import { execFileNoThrow } from '../../../src/utils/execFileNoThrow.js';
25
+
26
+ export interface GitHubProject {
27
+ id: number;
28
+ title: string;
29
+ number: number;
30
+ url: string;
31
+ state: 'open' | 'closed';
32
+ owner: string;
33
+ repo: string;
34
+ }
35
+
36
+ export interface GitHubProjectCard {
37
+ id: number;
38
+ note?: string;
39
+ state: string;
40
+ column_id: number;
41
+ content_url?: string; // Link to issue if card is linked
42
+ }
43
+
44
+ export interface GitHubIssue {
45
+ number: number;
46
+ title: string;
47
+ body: string;
48
+ state: 'open' | 'closed';
49
+ labels: string[];
50
+ assignees: string[];
51
+ }
52
+
53
+ export class GitHubSpecSync {
54
+ private specManager: SpecMetadataManager;
55
+
56
+ constructor(projectRoot: string = process.cwd()) {
57
+ this.specManager = new SpecMetadataManager(projectRoot);
58
+ }
59
+
60
+ /**
61
+ * Sync spec to GitHub Project (CREATE or UPDATE)
62
+ */
63
+ async syncSpecToGitHub(specId: string): Promise<SpecSyncResult> {
64
+ console.log(`\n🔄 Syncing spec ${specId} to GitHub Project...`);
65
+
66
+ try {
67
+ // 1. Load spec
68
+ const spec = await this.specManager.loadSpec(specId);
69
+ if (!spec) {
70
+ return {
71
+ success: false,
72
+ specId,
73
+ provider: 'github',
74
+ error: `Spec ${specId} not found`
75
+ };
76
+ }
77
+
78
+ // 2. Detect repository
79
+ const repoInfo = await this.detectRepo();
80
+ if (!repoInfo) {
81
+ return {
82
+ success: false,
83
+ specId,
84
+ provider: 'github',
85
+ error: 'Could not detect GitHub repository'
86
+ };
87
+ }
88
+
89
+ const { owner, repo } = repoInfo;
90
+
91
+ // 3. Check if spec already linked to GitHub Project
92
+ const existingLink = spec.metadata.externalLinks?.github;
93
+
94
+ let project: GitHubProject;
95
+
96
+ if (existingLink?.projectId) {
97
+ // UPDATE existing project
98
+ console.log(` Found existing GitHub Project #${existingLink.projectId}`);
99
+ project = await this.updateGitHubProject(
100
+ owner,
101
+ repo,
102
+ existingLink.projectId,
103
+ spec
104
+ );
105
+ } else {
106
+ // CREATE new project
107
+ console.log(' Creating new GitHub Project...');
108
+ project = await this.createGitHubProject(owner, repo, spec);
109
+
110
+ // Link spec to project
111
+ await this.specManager.linkToExternal(specId, 'github', {
112
+ id: project.id,
113
+ url: project.url,
114
+ owner,
115
+ repo
116
+ });
117
+ }
118
+
119
+ // 4. Sync user stories as issues/cards
120
+ const changes = await this.syncUserStories(owner, repo, project.number, spec);
121
+
122
+ console.log('✅ Sync complete!');
123
+
124
+ return {
125
+ success: true,
126
+ specId,
127
+ provider: 'github',
128
+ externalId: project.id.toString(),
129
+ url: project.url,
130
+ changes
131
+ };
132
+
133
+ } catch (error) {
134
+ console.error('❌ Error syncing to GitHub:', error);
135
+ return {
136
+ success: false,
137
+ specId,
138
+ provider: 'github',
139
+ error: error instanceof Error ? error.message : 'Unknown error'
140
+ };
141
+ }
142
+ }
143
+
144
+ /**
145
+ * Sync FROM GitHub Project to spec (bidirectional)
146
+ */
147
+ async syncFromGitHub(specId: string): Promise<SpecSyncResult> {
148
+ console.log(`\n🔄 Syncing FROM GitHub to spec ${specId}...`);
149
+
150
+ try {
151
+ // 1. Load spec
152
+ const spec = await this.specManager.loadSpec(specId);
153
+ if (!spec) {
154
+ return {
155
+ success: false,
156
+ specId,
157
+ provider: 'github',
158
+ error: `Spec ${specId} not found`
159
+ };
160
+ }
161
+
162
+ // 2. Get GitHub Project link
163
+ const githubLink = spec.metadata.externalLinks?.github;
164
+ if (!githubLink?.projectId) {
165
+ return {
166
+ success: false,
167
+ specId,
168
+ provider: 'github',
169
+ error: 'Spec not linked to GitHub Project'
170
+ };
171
+ }
172
+
173
+ const { owner, repo } = await this.detectRepo() || { owner: '', repo: '' };
174
+
175
+ // 3. Fetch GitHub Project state
176
+ const project = await this.fetchGitHubProject(owner, repo, githubLink.projectId);
177
+
178
+ // 4. Detect conflicts
179
+ const conflicts = await this.detectConflicts(spec, project);
180
+
181
+ if (conflicts.length === 0) {
182
+ console.log('✅ No conflicts - spec and GitHub in sync');
183
+ return {
184
+ success: true,
185
+ specId,
186
+ provider: 'github',
187
+ externalId: project.id.toString(),
188
+ url: project.url
189
+ };
190
+ }
191
+
192
+ console.log(`⚠️ Detected ${conflicts.length} conflict(s)`);
193
+
194
+ // 5. Resolve conflicts (GitHub wins by default for now)
195
+ await this.resolveConflicts(spec, conflicts);
196
+
197
+ console.log('✅ Sync FROM GitHub complete!');
198
+
199
+ return {
200
+ success: true,
201
+ specId,
202
+ provider: 'github',
203
+ externalId: project.id.toString(),
204
+ url: project.url,
205
+ conflicts
206
+ };
207
+
208
+ } catch (error) {
209
+ console.error('❌ Error syncing FROM GitHub:', error);
210
+ return {
211
+ success: false,
212
+ specId,
213
+ provider: 'github',
214
+ error: error instanceof Error ? error.message : 'Unknown error'
215
+ };
216
+ }
217
+ }
218
+
219
+ /**
220
+ * Create new GitHub Project for spec
221
+ */
222
+ private async createGitHubProject(
223
+ owner: string,
224
+ repo: string,
225
+ spec: SpecContent
226
+ ): Promise<GitHubProject> {
227
+ const projectTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
228
+ const projectBody = this.generateProjectDescription(spec);
229
+
230
+ // Use GraphQL to create project
231
+ const query = `
232
+ mutation CreateProject($ownerId: ID!, $title: String!, $body: String!) {
233
+ createProjectV2(input: {
234
+ ownerId: $ownerId,
235
+ title: $title,
236
+ body: $body
237
+ }) {
238
+ projectV2 {
239
+ id
240
+ title
241
+ number
242
+ url
243
+ }
244
+ }
245
+ }
246
+ `;
247
+
248
+ // Get owner ID first
249
+ const ownerId = await this.getOwnerId(owner);
250
+
251
+ const result = await this.executeGraphQL(query, {
252
+ ownerId,
253
+ title: projectTitle,
254
+ body: projectBody
255
+ });
256
+
257
+ const project = result.data.createProjectV2.projectV2;
258
+
259
+ console.log(` ✅ Created GitHub Project #${project.number}: ${project.url}`);
260
+
261
+ return {
262
+ id: parseInt(project.id, 10),
263
+ title: project.title,
264
+ number: project.number,
265
+ url: project.url,
266
+ state: 'open',
267
+ owner,
268
+ repo
269
+ };
270
+ }
271
+
272
+ /**
273
+ * Update existing GitHub Project
274
+ */
275
+ private async updateGitHubProject(
276
+ owner: string,
277
+ repo: string,
278
+ projectId: number,
279
+ spec: SpecContent
280
+ ): Promise<GitHubProject> {
281
+ const projectTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
282
+ const projectBody = this.generateProjectDescription(spec);
283
+
284
+ // Use GraphQL to update project
285
+ const query = `
286
+ mutation UpdateProject($projectId: ID!, $title: String, $body: String) {
287
+ updateProjectV2(input: {
288
+ projectId: $projectId,
289
+ title: $title,
290
+ body: $body
291
+ }) {
292
+ projectV2 {
293
+ id
294
+ title
295
+ number
296
+ url
297
+ }
298
+ }
299
+ }
300
+ `;
301
+
302
+ const result = await this.executeGraphQL(query, {
303
+ projectId: projectId.toString(),
304
+ title: projectTitle,
305
+ body: projectBody
306
+ });
307
+
308
+ const project = result.data.updateProjectV2.projectV2;
309
+
310
+ console.log(` ✅ Updated GitHub Project #${project.number}`);
311
+
312
+ return {
313
+ id: projectId,
314
+ title: project.title,
315
+ number: project.number,
316
+ url: project.url,
317
+ state: 'open',
318
+ owner,
319
+ repo
320
+ };
321
+ }
322
+
323
+ /**
324
+ * Sync user stories as GitHub Issues
325
+ */
326
+ private async syncUserStories(
327
+ owner: string,
328
+ repo: string,
329
+ projectNumber: number,
330
+ spec: SpecContent
331
+ ): Promise<{ created: string[]; updated: string[]; deleted: string[] }> {
332
+ const created: string[] = [];
333
+ const updated: string[] = [];
334
+ const deleted: string[] = [];
335
+
336
+ if (!spec.metadata.userStories || spec.metadata.userStories.length === 0) {
337
+ console.log(' ℹ️ No user stories to sync');
338
+ return { created, updated, deleted };
339
+ }
340
+
341
+ console.log(` Syncing ${spec.metadata.userStories.length} user stories...`);
342
+
343
+ for (const us of spec.metadata.userStories) {
344
+ // Create or update issue for each user story
345
+ const issueTitle = `[${us.id}] ${us.title}`;
346
+ const issueBody = this.generateIssueBody(us);
347
+
348
+ // Check if issue already exists (by title pattern)
349
+ const existingIssue = await this.findIssueByTitle(owner, repo, us.id);
350
+
351
+ if (existingIssue) {
352
+ // UPDATE existing issue
353
+ await this.updateIssue(owner, repo, existingIssue.number, {
354
+ title: issueTitle,
355
+ body: issueBody,
356
+ state: us.status === 'done' ? 'closed' : 'open'
357
+ });
358
+
359
+ updated.push(us.id);
360
+ console.log(` ✅ Updated ${us.id}`);
361
+ } else {
362
+ // CREATE new issue
363
+ const newIssue = await this.createIssue(owner, repo, {
364
+ title: issueTitle,
365
+ body: issueBody,
366
+ labels: ['user-story', `spec:${spec.metadata.id}`, `priority:${us.priority}`]
367
+ });
368
+
369
+ created.push(us.id);
370
+ console.log(` ✅ Created ${us.id} → Issue #${newIssue.number}`);
371
+ }
372
+ }
373
+
374
+ return { created, updated, deleted };
375
+ }
376
+
377
+ /**
378
+ * Generate project description from spec
379
+ */
380
+ private generateProjectDescription(spec: SpecContent): string {
381
+ const progress = spec.metadata.progress;
382
+ const progressText = progress
383
+ ? `**Progress**: ${progress.percentComplete}% (${progress.completedUserStories}/${progress.totalUserStories} user stories)`
384
+ : '**Progress**: N/A';
385
+
386
+ return `
387
+ # ${spec.metadata.title}
388
+
389
+ **Spec ID**: ${spec.metadata.id}
390
+ **Priority**: ${spec.metadata.priority}
391
+ **Status**: ${spec.metadata.status}
392
+ ${progressText}
393
+
394
+ ---
395
+
396
+ ${SpecParser.extractOverview(spec.markdown)}
397
+
398
+ ---
399
+
400
+ ## User Stories
401
+
402
+ ${spec.metadata.userStories?.length || 0} user stories tracked in this project.
403
+
404
+ ---
405
+
406
+ 🤖 **Auto-synced from SpecWeave**
407
+ Last updated: ${new Date().toISOString()}
408
+ `.trim();
409
+ }
410
+
411
+ /**
412
+ * Generate issue body from user story
413
+ */
414
+ private generateIssueBody(us: UserStory): string {
415
+ const acList = us.acceptanceCriteria
416
+ .map(ac => `- [${ac.status === 'done' ? 'x' : ' '}] ${ac.description}`)
417
+ .join('\n');
418
+
419
+ return `
420
+ ## User Story
421
+
422
+ ${us.title}
423
+
424
+ ## Acceptance Criteria
425
+
426
+ ${acList}
427
+
428
+ ---
429
+
430
+ **Priority**: ${us.priority}
431
+ **Status**: ${us.status}
432
+
433
+ 🤖 **Auto-synced from SpecWeave**
434
+ `.trim();
435
+ }
436
+
437
+ /**
438
+ * Detect conflicts between spec and GitHub
439
+ */
440
+ private async detectConflicts(
441
+ spec: SpecContent,
442
+ project: GitHubProject
443
+ ): Promise<SpecSyncConflict[]> {
444
+ const conflicts: SpecSyncConflict[] = [];
445
+
446
+ // Compare project title
447
+ const expectedTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
448
+ if (project.title !== expectedTitle) {
449
+ conflicts.push({
450
+ type: 'metadata',
451
+ field: 'title',
452
+ localValue: spec.metadata.title,
453
+ remoteValue: project.title,
454
+ resolution: 'remote-wins',
455
+ description: 'Project title differs from spec title'
456
+ });
457
+ }
458
+
459
+ // TODO: Compare user stories and their statuses
460
+
461
+ return conflicts;
462
+ }
463
+
464
+ /**
465
+ * Resolve conflicts
466
+ */
467
+ private async resolveConflicts(
468
+ spec: SpecContent,
469
+ conflicts: SpecSyncConflict[]
470
+ ): Promise<void> {
471
+ for (const conflict of conflicts) {
472
+ if (conflict.resolution === 'remote-wins') {
473
+ console.log(` 🔄 Resolving: ${conflict.description} (GitHub wins)`);
474
+ // Update spec metadata from GitHub
475
+ if (conflict.field === 'title') {
476
+ await this.specManager.saveMetadata(spec.metadata.id, {
477
+ title: conflict.remoteValue
478
+ });
479
+ }
480
+ }
481
+ }
482
+ }
483
+
484
+ /**
485
+ * Execute GraphQL query against GitHub API
486
+ */
487
+ private async executeGraphQL(query: string, variables: any): Promise<any> {
488
+ const result = await execFileNoThrow('gh', [
489
+ 'api',
490
+ 'graphql',
491
+ '-f',
492
+ `query=${query}`,
493
+ ...Object.entries(variables).flatMap(([key, value]) => ['-F', `${key}=${value}`])
494
+ ]);
495
+
496
+ if (result.error) {
497
+ throw new Error(`GraphQL query failed: ${result.error}`);
498
+ }
499
+
500
+ return JSON.parse(result.stdout);
501
+ }
502
+
503
+ /**
504
+ * Get owner ID (user or organization)
505
+ */
506
+ private async getOwnerId(owner: string): Promise<string> {
507
+ const query = `
508
+ query GetOwner($login: String!) {
509
+ repositoryOwner(login: $login) {
510
+ id
511
+ }
512
+ }
513
+ `;
514
+
515
+ const result = await this.executeGraphQL(query, { login: owner });
516
+ return result.data.repositoryOwner.id;
517
+ }
518
+
519
+ /**
520
+ * Fetch GitHub Project details
521
+ */
522
+ private async fetchGitHubProject(
523
+ owner: string,
524
+ repo: string,
525
+ projectId: number
526
+ ): Promise<GitHubProject> {
527
+ // Placeholder - would use GraphQL to fetch project
528
+ return {
529
+ id: projectId,
530
+ title: 'Project Title',
531
+ number: 1,
532
+ url: 'https://github.com/...',
533
+ state: 'open',
534
+ owner,
535
+ repo
536
+ };
537
+ }
538
+
539
+ /**
540
+ * Find issue by title pattern
541
+ */
542
+ private async findIssueByTitle(
543
+ owner: string,
544
+ repo: string,
545
+ usId: string
546
+ ): Promise<GitHubIssue | null> {
547
+ const result = await execFileNoThrow('gh', [
548
+ 'issue',
549
+ 'list',
550
+ '--repo',
551
+ `${owner}/${repo}`,
552
+ '--search',
553
+ `"[${usId}]" in:title`,
554
+ '--json',
555
+ 'number,title,body,state,labels',
556
+ '--limit',
557
+ '1'
558
+ ]);
559
+
560
+ if (result.error || !result.stdout) {
561
+ return null;
562
+ }
563
+
564
+ const issues = JSON.parse(result.stdout);
565
+ return issues.length > 0 ? issues[0] : null;
566
+ }
567
+
568
+ /**
569
+ * Create GitHub issue
570
+ */
571
+ private async createIssue(
572
+ owner: string,
573
+ repo: string,
574
+ issue: { title: string; body: string; labels: string[] }
575
+ ): Promise<GitHubIssue> {
576
+ const result = await execFileNoThrow('gh', [
577
+ 'issue',
578
+ 'create',
579
+ '--repo',
580
+ `${owner}/${repo}`,
581
+ '--title',
582
+ issue.title,
583
+ '--body',
584
+ issue.body,
585
+ '--label',
586
+ issue.labels.join(','),
587
+ '--json',
588
+ 'number,title,body,state'
589
+ ]);
590
+
591
+ if (result.error) {
592
+ throw new Error(`Failed to create issue: ${result.error}`);
593
+ }
594
+
595
+ return JSON.parse(result.stdout);
596
+ }
597
+
598
+ /**
599
+ * Update GitHub issue
600
+ */
601
+ private async updateIssue(
602
+ owner: string,
603
+ repo: string,
604
+ issueNumber: number,
605
+ updates: { title?: string; body?: string; state?: 'open' | 'closed' }
606
+ ): Promise<void> {
607
+ const args = ['issue', 'edit', issueNumber.toString(), '--repo', `${owner}/${repo}`];
608
+
609
+ if (updates.title) {
610
+ args.push('--title', updates.title);
611
+ }
612
+
613
+ if (updates.body) {
614
+ args.push('--body', updates.body);
615
+ }
616
+
617
+ if (updates.state === 'closed') {
618
+ args.push('--state', 'closed');
619
+ } else if (updates.state === 'open') {
620
+ args.push('--state', 'open');
621
+ }
622
+
623
+ const result = await execFileNoThrow('gh', args);
624
+
625
+ if (result.error) {
626
+ throw new Error(`Failed to update issue #${issueNumber}: ${result.error}`);
627
+ }
628
+ }
629
+
630
+ /**
631
+ * Detect GitHub repository from git remote
632
+ */
633
+ private async detectRepo(): Promise<{ owner: string; repo: string } | null> {
634
+ const result = await execFileNoThrow('git', ['remote', 'get-url', 'origin']);
635
+
636
+ if (result.error || !result.stdout) {
637
+ return null;
638
+ }
639
+
640
+ const remoteUrl = result.stdout.trim();
641
+
642
+ // Parse GitHub URL
643
+ // Examples:
644
+ // - https://github.com/owner/repo.git
645
+ // - git@github.com:owner/repo.git
646
+ const httpsMatch = remoteUrl.match(/github\.com[/:]([\w-]+)\/([\w-]+?)(\.git)?$/);
647
+ if (httpsMatch) {
648
+ return {
649
+ owner: httpsMatch[1],
650
+ repo: httpsMatch[2]
651
+ };
652
+ }
653
+
654
+ return null;
655
+ }
656
+ }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: github-sync
3
- description: Bidirectional synchronization between SpecWeave increments and GitHub Issues (two-way sync by default). Creates issues from increments, tracks progress via comments, updates increment status from issue state, syncs changes in both directions automatically. Activates for GitHub sync, issue creation, increment tracking, GitHub integration, issue management, sync to GitHub, bidirectional sync.
3
+ description: Bidirectional synchronization between SpecWeave increments and GitHub Issues (two-way sync by default). Activates ONLY when user asks questions about GitHub integration or needs help configuring GitHub sync. Does NOT activate for slash commands. For syncing, use /specweave-github:sync command instead.
4
4
  ---
5
5
 
6
6
  # GitHub Sync - Bidirectional Increment ↔ Issue Synchronization
@@ -9,14 +9,22 @@ description: Bidirectional synchronization between SpecWeave increments and GitH
9
9
 
10
10
  **Default Behavior**: **Bidirectional (two-way) sync** - Changes in either system are automatically synchronized
11
11
 
12
- **When to Use**:
13
- - Creating new increments (auto-create GitHub issue)
14
- - Syncing increment progress to GitHub (comments with task completion %)
15
- - Closing increments (auto-close GitHub issue)
16
- - Importing GitHub issues as increments
17
- - Manual sync operations
12
+ **⚠️ IMPORTANT**: This skill provides HELP and GUIDANCE about GitHub sync. For actual syncing, users should use the `/specweave-github:sync` command directly. This skill should NOT auto-activate when the command is being invoked.
18
13
 
19
- **Integration**: Works with `/specweave:github:sync` command
14
+ ## When to Activate
15
+
16
+ ✅ **Do activate when**:
17
+ - User asks: "How do I set up GitHub sync?"
18
+ - User asks: "What GitHub credentials do I need?"
19
+ - User asks: "How does the GitHub integration work?"
20
+ - User needs help configuring GitHub integration
21
+
22
+ ❌ **Do NOT activate when**:
23
+ - User invokes `/specweave-github:sync` command (command handles it)
24
+ - Command is already running (avoid duplicate invocation)
25
+ - Task completion hook is syncing (automatic process)
26
+
27
+ **Integration**: Works with `/specweave-github:sync` command
20
28
 
21
29
  ---
22
30