specweave 0.33.5 → 0.34.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 (683) hide show
  1. package/.claude-plugin/README.md +13 -13
  2. package/.claude-plugin/marketplace.json +26 -37
  3. package/CLAUDE.md +427 -70
  4. package/README.md +34 -31
  5. package/bin/fix-marketplace-errors.sh +1 -1
  6. package/bin/install-commands.sh +2 -2
  7. package/bin/specweave.js +58 -1
  8. package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.d.ts +5 -0
  9. package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.d.ts.map +1 -1
  10. package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.js +14 -4
  11. package/dist/plugins/specweave-github/lib/ThreeLayerSyncManager.js.map +1 -1
  12. package/dist/plugins/specweave-github/lib/completion-calculator.d.ts +1 -0
  13. package/dist/plugins/specweave-github/lib/completion-calculator.d.ts.map +1 -1
  14. package/dist/plugins/specweave-github/lib/completion-calculator.js +2 -0
  15. package/dist/plugins/specweave-github/lib/completion-calculator.js.map +1 -1
  16. package/dist/plugins/specweave-github/lib/duplicate-detector.d.ts.map +1 -1
  17. package/dist/plugins/specweave-github/lib/duplicate-detector.js +20 -6
  18. package/dist/plugins/specweave-github/lib/duplicate-detector.js.map +1 -1
  19. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +9 -0
  20. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +1 -1
  21. package/dist/plugins/specweave-github/lib/github-client-v2.js +31 -18
  22. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
  23. package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts +7 -0
  24. package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +1 -1
  25. package/dist/plugins/specweave-github/lib/github-feature-sync.js +47 -11
  26. package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -1
  27. package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js +39 -13
  28. package/dist/plugins/specweave-github/lib/github-increment-sync-cli.js.map +1 -1
  29. package/dist/plugins/specweave-github/lib/github-issue-updater.d.ts.map +1 -1
  30. package/dist/plugins/specweave-github/lib/github-issue-updater.js +15 -3
  31. package/dist/plugins/specweave-github/lib/github-issue-updater.js.map +1 -1
  32. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts +7 -0
  33. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts.map +1 -1
  34. package/dist/plugins/specweave-github/lib/github-spec-sync.js +17 -4
  35. package/dist/plugins/specweave-github/lib/github-spec-sync.js.map +1 -1
  36. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.d.ts.map +1 -1
  37. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js +13 -3
  38. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js.map +1 -1
  39. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.d.ts.map +1 -1
  40. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js +14 -4
  41. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js.map +1 -1
  42. package/dist/plugins/specweave-github/lib/increment-issue-builder.d.ts.map +1 -1
  43. package/dist/plugins/specweave-github/lib/increment-issue-builder.js +24 -8
  44. package/dist/plugins/specweave-github/lib/increment-issue-builder.js.map +1 -1
  45. package/dist/plugins/specweave-github/lib/user-story-content-builder.d.ts.map +1 -1
  46. package/dist/plugins/specweave-github/lib/user-story-content-builder.js +21 -18
  47. package/dist/plugins/specweave-github/lib/user-story-content-builder.js.map +1 -1
  48. package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts +3 -0
  49. package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts.map +1 -1
  50. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js +20 -19
  51. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js.map +1 -1
  52. package/dist/src/cli/cleanup-zombies.js +34 -18
  53. package/dist/src/cli/cleanup-zombies.js.map +1 -1
  54. package/dist/src/cli/commands/discrepancies.js +6 -6
  55. package/dist/src/cli/commands/discrepancies.js.map +1 -1
  56. package/dist/src/cli/commands/docs.js +1 -1
  57. package/dist/src/cli/commands/docs.js.map +1 -1
  58. package/dist/src/cli/commands/import-docs.d.ts +1 -1
  59. package/dist/src/cli/commands/import-docs.js +2 -2
  60. package/dist/src/cli/commands/import-docs.js.map +1 -1
  61. package/dist/src/cli/commands/import-external.d.ts +1 -1
  62. package/dist/src/cli/commands/import-external.js +1 -1
  63. package/dist/src/cli/commands/init-multiproject.d.ts +1 -1
  64. package/dist/src/cli/commands/init-multiproject.js +3 -3
  65. package/dist/src/cli/commands/init-multiproject.js.map +1 -1
  66. package/dist/src/cli/commands/init.js +2 -2
  67. package/dist/src/cli/commands/init.js.map +1 -1
  68. package/dist/src/cli/commands/living-docs.d.ts +1 -0
  69. package/dist/src/cli/commands/living-docs.d.ts.map +1 -1
  70. package/dist/src/cli/commands/living-docs.js +18 -2
  71. package/dist/src/cli/commands/living-docs.js.map +1 -1
  72. package/dist/src/cli/commands/migrate-to-multiproject.js +1 -1
  73. package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -1
  74. package/dist/src/cli/commands/migrate-to-profiles.js +1 -1
  75. package/dist/src/cli/commands/migrate-to-profiles.js.map +1 -1
  76. package/dist/src/cli/commands/next-command.d.ts +1 -1
  77. package/dist/src/cli/commands/next-command.js +9 -9
  78. package/dist/src/cli/commands/next-command.js.map +1 -1
  79. package/dist/src/cli/commands/notifications.js +3 -3
  80. package/dist/src/cli/commands/notifications.js.map +1 -1
  81. package/dist/src/cli/commands/plan/increment-detector.js +2 -2
  82. package/dist/src/cli/commands/plan/increment-detector.js.map +1 -1
  83. package/dist/src/cli/commands/plan/plan-orchestrator.d.ts +2 -2
  84. package/dist/src/cli/commands/plan/plan-orchestrator.js +2 -2
  85. package/dist/src/cli/commands/plan/plan-validator.js +2 -2
  86. package/dist/src/cli/commands/plan/plan-validator.js.map +1 -1
  87. package/dist/src/cli/commands/plan/types.d.ts +1 -1
  88. package/dist/src/cli/commands/plan/types.js +1 -1
  89. package/dist/src/cli/commands/plan-command.d.ts +3 -3
  90. package/dist/src/cli/commands/plan-command.js +12 -12
  91. package/dist/src/cli/commands/plan-command.js.map +1 -1
  92. package/dist/src/cli/commands/project.d.ts +77 -0
  93. package/dist/src/cli/commands/project.d.ts.map +1 -0
  94. package/dist/src/cli/commands/project.js +526 -0
  95. package/dist/src/cli/commands/project.js.map +1 -0
  96. package/dist/src/cli/commands/save.d.ts +49 -0
  97. package/dist/src/cli/commands/save.d.ts.map +1 -0
  98. package/dist/src/cli/commands/save.js +583 -0
  99. package/dist/src/cli/commands/save.js.map +1 -0
  100. package/dist/src/cli/commands/sync-spec-commits.js +15 -6
  101. package/dist/src/cli/commands/sync-spec-commits.js.map +1 -1
  102. package/dist/src/cli/commands/sync-spec-content.js +15 -6
  103. package/dist/src/cli/commands/sync-spec-content.js.map +1 -1
  104. package/dist/src/cli/helpers/init/ado-repo-cloning.js +2 -2
  105. package/dist/src/cli/helpers/init/ado-repo-cloning.js.map +1 -1
  106. package/dist/src/cli/helpers/init/bitbucket-repo-cloning.d.ts +1 -1
  107. package/dist/src/cli/helpers/init/bitbucket-repo-cloning.js +3 -3
  108. package/dist/src/cli/helpers/init/bitbucket-repo-cloning.js.map +1 -1
  109. package/dist/src/cli/helpers/init/brownfield-analysis.js +18 -18
  110. package/dist/src/cli/helpers/init/brownfield-analysis.js.map +1 -1
  111. package/dist/src/cli/helpers/init/directory-structure.d.ts.map +1 -1
  112. package/dist/src/cli/helpers/init/directory-structure.js +3 -0
  113. package/dist/src/cli/helpers/init/directory-structure.js.map +1 -1
  114. package/dist/src/cli/helpers/init/external-import.js +18 -18
  115. package/dist/src/cli/helpers/init/external-import.js.map +1 -1
  116. package/dist/src/cli/helpers/init/github-repo-cloning.d.ts +1 -1
  117. package/dist/src/cli/helpers/init/github-repo-cloning.js +3 -3
  118. package/dist/src/cli/helpers/init/github-repo-cloning.js.map +1 -1
  119. package/dist/src/cli/helpers/init/initial-increment-generator.js +12 -12
  120. package/dist/src/cli/helpers/init/living-docs-preflight.js +5 -5
  121. package/dist/src/cli/helpers/init/living-docs-preflight.js.map +1 -1
  122. package/dist/src/cli/helpers/init/next-steps.js +9 -9
  123. package/dist/src/cli/helpers/init/next-steps.js.map +1 -1
  124. package/dist/src/cli/helpers/init/plugin-installer.js +3 -3
  125. package/dist/src/cli/helpers/init/plugin-installer.js.map +1 -1
  126. package/dist/src/cli/helpers/init/translation-config.js +9 -9
  127. package/dist/src/cli/helpers/init/translation-config.js.map +1 -1
  128. package/dist/src/cli/helpers/init/types.d.ts +1 -1
  129. package/dist/src/cli/helpers/init/types.d.ts.map +1 -1
  130. package/dist/src/cli/helpers/issue-tracker/ado.js +1 -1
  131. package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -1
  132. package/dist/src/cli/helpers/issue-tracker/github.js +1 -1
  133. package/dist/src/cli/helpers/issue-tracker/github.js.map +1 -1
  134. package/dist/src/cli/helpers/issue-tracker/index.js +2 -2
  135. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  136. package/dist/src/cli/helpers/issue-tracker/jira.js +1 -1
  137. package/dist/src/cli/helpers/issue-tracker/jira.js.map +1 -1
  138. package/dist/src/cli/update-status-line.js +1 -1
  139. package/dist/src/cli/update-status-line.js.map +1 -1
  140. package/dist/src/cli/workers/brownfield-worker.js +1 -1
  141. package/dist/src/cli/workers/brownfield-worker.js.map +1 -1
  142. package/dist/src/cli/workers/import-worker.js +1 -1
  143. package/dist/src/cli/workers/import-worker.js.map +1 -1
  144. package/dist/src/core/background/brownfield-launcher.js +4 -4
  145. package/dist/src/core/background/brownfield-launcher.js.map +1 -1
  146. package/dist/src/core/background/index.d.ts +3 -3
  147. package/dist/src/core/background/index.js +3 -3
  148. package/dist/src/core/background/job-launcher.d.ts +1 -1
  149. package/dist/src/core/background/job-launcher.js +3 -3
  150. package/dist/src/core/background/job-launcher.js.map +1 -1
  151. package/dist/src/core/brownfield/importer.js +1 -1
  152. package/dist/src/core/brownfield/importer.js.map +1 -1
  153. package/dist/src/core/config/config-manager.d.ts +7 -1
  154. package/dist/src/core/config/config-manager.d.ts.map +1 -1
  155. package/dist/src/core/config/config-manager.js +24 -2
  156. package/dist/src/core/config/config-manager.js.map +1 -1
  157. package/dist/src/core/config/single-project-migrator.d.ts +110 -0
  158. package/dist/src/core/config/single-project-migrator.d.ts.map +1 -0
  159. package/dist/src/core/config/single-project-migrator.js +179 -0
  160. package/dist/src/core/config/single-project-migrator.js.map +1 -0
  161. package/dist/src/core/config/types.d.ts +3 -3
  162. package/dist/src/core/credentials/credentials-manager.d.ts +25 -4
  163. package/dist/src/core/credentials/credentials-manager.d.ts.map +1 -1
  164. package/dist/src/core/credentials/credentials-manager.js +54 -15
  165. package/dist/src/core/credentials/credentials-manager.js.map +1 -1
  166. package/dist/src/core/deduplication/command-deduplicator.d.ts +4 -4
  167. package/dist/src/core/deduplication/command-deduplicator.d.ts.map +1 -1
  168. package/dist/src/core/deduplication/command-deduplicator.js +3 -3
  169. package/dist/src/core/external-tools/external-items-counter.d.ts +4 -4
  170. package/dist/src/core/external-tools/external-items-counter.js +4 -4
  171. package/dist/src/core/external-tools/external-items-display.js +4 -4
  172. package/dist/src/core/external-tools/external-items-display.js.map +1 -1
  173. package/dist/src/core/increment/completion-validator.js +3 -3
  174. package/dist/src/core/increment/completion-validator.js.map +1 -1
  175. package/dist/src/core/increment/conflict-resolver.js +2 -2
  176. package/dist/src/core/increment/conflict-resolver.js.map +1 -1
  177. package/dist/src/core/increment/desync-detector.d.ts +1 -1
  178. package/dist/src/core/increment/desync-detector.js +3 -3
  179. package/dist/src/core/increment/desync-detector.js.map +1 -1
  180. package/dist/src/core/increment/discipline-checker.js +2 -2
  181. package/dist/src/core/increment/discipline-checker.js.map +1 -1
  182. package/dist/src/core/increment/increment-archiver.js +4 -4
  183. package/dist/src/core/increment/increment-archiver.js.map +1 -1
  184. package/dist/src/core/increment/increment-utils.d.ts +53 -2
  185. package/dist/src/core/increment/increment-utils.d.ts.map +1 -1
  186. package/dist/src/core/increment/increment-utils.js +78 -7
  187. package/dist/src/core/increment/increment-utils.js.map +1 -1
  188. package/dist/src/core/increment/metadata-manager.js +6 -6
  189. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  190. package/dist/src/core/increment/metadata-validator.js +1 -1
  191. package/dist/src/core/increment/metadata-validator.js.map +1 -1
  192. package/dist/src/core/increment/recent-work-scanner.js +2 -2
  193. package/dist/src/core/increment/recent-work-scanner.js.map +1 -1
  194. package/dist/src/core/increment/spec-sync-manager.js +1 -1
  195. package/dist/src/core/increment/spec-sync-manager.js.map +1 -1
  196. package/dist/src/core/increment/status-auto-transition.d.ts +68 -1
  197. package/dist/src/core/increment/status-auto-transition.d.ts.map +1 -1
  198. package/dist/src/core/increment/status-auto-transition.js +141 -1
  199. package/dist/src/core/increment/status-auto-transition.js.map +1 -1
  200. package/dist/src/core/increment/status-change-sync-trigger.d.ts +1 -1
  201. package/dist/src/core/increment/status-change-sync-trigger.js +3 -3
  202. package/dist/src/core/increment/status-change-sync-trigger.js.map +1 -1
  203. package/dist/src/core/living-docs/cross-project-sync.d.ts +12 -0
  204. package/dist/src/core/living-docs/cross-project-sync.d.ts.map +1 -1
  205. package/dist/src/core/living-docs/cross-project-sync.js +33 -0
  206. package/dist/src/core/living-docs/cross-project-sync.js.map +1 -1
  207. package/dist/src/core/living-docs/feature-archiver.d.ts +3 -3
  208. package/dist/src/core/living-docs/feature-archiver.js +3 -3
  209. package/dist/src/core/living-docs/feature-consistency-validator.js +1 -1
  210. package/dist/src/core/living-docs/feature-consistency-validator.js.map +1 -1
  211. package/dist/src/core/living-docs/feature-id-manager.d.ts +5 -0
  212. package/dist/src/core/living-docs/feature-id-manager.d.ts.map +1 -1
  213. package/dist/src/core/living-docs/feature-id-manager.js +19 -1
  214. package/dist/src/core/living-docs/feature-id-manager.js.map +1 -1
  215. package/dist/src/core/living-docs/governance/standards-generator.js +1 -1
  216. package/dist/src/core/living-docs/governance/standards-generator.js.map +1 -1
  217. package/dist/src/core/living-docs/hierarchy-mapper.d.ts +5 -0
  218. package/dist/src/core/living-docs/hierarchy-mapper.d.ts.map +1 -1
  219. package/dist/src/core/living-docs/hierarchy-mapper.js +22 -2
  220. package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
  221. package/dist/src/core/living-docs/living-docs-sync.d.ts +1 -0
  222. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  223. package/dist/src/core/living-docs/living-docs-sync.js +77 -8
  224. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  225. package/dist/src/core/living-docs/project-detector.d.ts +9 -0
  226. package/dist/src/core/living-docs/project-detector.d.ts.map +1 -1
  227. package/dist/src/core/living-docs/project-detector.js +38 -3
  228. package/dist/src/core/living-docs/project-detector.js.map +1 -1
  229. package/dist/src/core/living-docs/suggestions-generator.js +1 -1
  230. package/dist/src/core/living-docs/suggestions-generator.js.map +1 -1
  231. package/dist/src/core/notifications/command-integration.js +1 -1
  232. package/dist/src/core/notifications/command-integration.js.map +1 -1
  233. package/dist/src/core/project/adapters/ado-project-adapter.d.ts +73 -0
  234. package/dist/src/core/project/adapters/ado-project-adapter.d.ts.map +1 -0
  235. package/dist/src/core/project/adapters/ado-project-adapter.js +304 -0
  236. package/dist/src/core/project/adapters/ado-project-adapter.js.map +1 -0
  237. package/dist/src/core/project/adapters/github-project-adapter.d.ts +76 -0
  238. package/dist/src/core/project/adapters/github-project-adapter.d.ts.map +1 -0
  239. package/dist/src/core/project/adapters/github-project-adapter.js +315 -0
  240. package/dist/src/core/project/adapters/github-project-adapter.js.map +1 -0
  241. package/dist/src/core/project/adapters/jira-project-adapter.d.ts +69 -0
  242. package/dist/src/core/project/adapters/jira-project-adapter.d.ts.map +1 -0
  243. package/dist/src/core/project/adapters/jira-project-adapter.js +241 -0
  244. package/dist/src/core/project/adapters/jira-project-adapter.js.map +1 -0
  245. package/dist/src/core/project/project-event-bus.d.ts +72 -0
  246. package/dist/src/core/project/project-event-bus.d.ts.map +1 -0
  247. package/dist/src/core/project/project-event-bus.js +150 -0
  248. package/dist/src/core/project/project-event-bus.js.map +1 -0
  249. package/dist/src/core/project/project-manager.d.ts +0 -22
  250. package/dist/src/core/project/project-manager.d.ts.map +1 -1
  251. package/dist/src/core/project/project-manager.js +5 -275
  252. package/dist/src/core/project/project-manager.js.map +1 -1
  253. package/dist/src/core/project/project-registry.d.ts +93 -0
  254. package/dist/src/core/project/project-registry.d.ts.map +1 -0
  255. package/dist/src/core/project/project-registry.js +448 -0
  256. package/dist/src/core/project/project-registry.js.map +1 -0
  257. package/dist/src/core/project/project-resolution.d.ts +229 -0
  258. package/dist/src/core/project/project-resolution.d.ts.map +1 -0
  259. package/dist/src/core/project/project-resolution.js +633 -0
  260. package/dist/src/core/project/project-resolution.js.map +1 -0
  261. package/dist/src/core/project/types/project-types.d.ts +214 -0
  262. package/dist/src/core/project/types/project-types.d.ts.map +1 -0
  263. package/dist/src/core/project/types/project-types.js +9 -0
  264. package/dist/src/core/project/types/project-types.js.map +1 -0
  265. package/dist/src/core/repo-structure/setup-summary.js +2 -2
  266. package/dist/src/core/repo-structure/setup-summary.js.map +1 -1
  267. package/dist/src/core/specs/spec-identifier-detector.d.ts.map +1 -1
  268. package/dist/src/core/specs/spec-identifier-detector.js +8 -5
  269. package/dist/src/core/specs/spec-identifier-detector.js.map +1 -1
  270. package/dist/src/core/status-line/status-line-updater.js +1 -1
  271. package/dist/src/core/status-line/status-line-updater.js.map +1 -1
  272. package/dist/src/core/types/increment-metadata.d.ts +3 -3
  273. package/dist/src/core/types/increment-metadata.js +3 -3
  274. package/dist/src/core/types/increment-metadata.js.map +1 -1
  275. package/dist/src/core/types/sync-profile.d.ts +1 -0
  276. package/dist/src/core/types/sync-profile.d.ts.map +1 -1
  277. package/dist/src/core/types/sync-profile.js.map +1 -1
  278. package/dist/src/core/validators/ac-presence-validator.d.ts +4 -4
  279. package/dist/src/core/validators/ac-presence-validator.js +3 -3
  280. package/dist/src/core/validators/ac-presence-validator.js.map +1 -1
  281. package/dist/src/core/workflow/backlog-scanner.d.ts +5 -0
  282. package/dist/src/core/workflow/backlog-scanner.d.ts.map +1 -1
  283. package/dist/src/core/workflow/backlog-scanner.js +14 -2
  284. package/dist/src/core/workflow/backlog-scanner.js.map +1 -1
  285. package/dist/src/core/workflow/phase-detector.js +17 -17
  286. package/dist/src/core/workflow/phase-detector.js.map +1 -1
  287. package/dist/src/core/workflow/types.d.ts +1 -1
  288. package/dist/src/core/workflow/types.d.ts.map +1 -1
  289. package/dist/src/core/workflow/workflow-orchestrator.d.ts +1 -1
  290. package/dist/src/core/workflow/workflow-orchestrator.js +9 -9
  291. package/dist/src/core/workflow/workflow-orchestrator.js.map +1 -1
  292. package/dist/src/hooks/scheduler-startup.js +1 -1
  293. package/dist/src/hooks/scheduler-startup.js.map +1 -1
  294. package/dist/src/importers/item-converter.js +1 -1
  295. package/dist/src/importers/item-converter.js.map +1 -1
  296. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +17 -1
  297. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -1
  298. package/dist/src/integrations/jira/jira-incremental-mapper.js +20 -12
  299. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -1
  300. package/dist/src/integrations/jira/jira-mapper.d.ts +17 -1
  301. package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -1
  302. package/dist/src/integrations/jira/jira-mapper.js +13 -5
  303. package/dist/src/integrations/jira/jira-mapper.js.map +1 -1
  304. package/dist/src/living-docs/enterprise-analyzer.js +1 -1
  305. package/dist/src/living-docs/enterprise-analyzer.js.map +1 -1
  306. package/dist/src/sync/ado-reconciler.d.ts +5 -0
  307. package/dist/src/sync/ado-reconciler.d.ts.map +1 -1
  308. package/dist/src/sync/ado-reconciler.js +16 -4
  309. package/dist/src/sync/ado-reconciler.js.map +1 -1
  310. package/dist/src/sync/jira-reconciler.d.ts +3 -0
  311. package/dist/src/sync/jira-reconciler.d.ts.map +1 -1
  312. package/dist/src/sync/jira-reconciler.js +12 -5
  313. package/dist/src/sync/jira-reconciler.js.map +1 -1
  314. package/dist/src/types/dashboard-cache.d.ts +4 -2
  315. package/dist/src/types/dashboard-cache.d.ts.map +1 -1
  316. package/dist/src/types/dashboard-cache.js +1 -1
  317. package/dist/src/types/dashboard-cache.js.map +1 -1
  318. package/dist/src/utils/ac-embedder.d.ts +1 -1
  319. package/dist/src/utils/docs-preview/docusaurus-setup.js +2 -2
  320. package/dist/src/utils/docs-preview/docusaurus-setup.js.map +1 -1
  321. package/dist/src/utils/docs-preview/sidebar-builder.js +1 -1
  322. package/dist/src/utils/env-multi-project-parser.d.ts +17 -0
  323. package/dist/src/utils/env-multi-project-parser.d.ts.map +1 -1
  324. package/dist/src/utils/env-multi-project-parser.js +26 -1
  325. package/dist/src/utils/env-multi-project-parser.js.map +1 -1
  326. package/dist/src/utils/external-tool-drift-detector.d.ts +2 -2
  327. package/dist/src/utils/external-tool-drift-detector.js +6 -6
  328. package/dist/src/utils/external-tool-drift-detector.js.map +1 -1
  329. package/dist/src/utils/notification-constants.js +2 -2
  330. package/dist/src/utils/notification-constants.js.map +1 -1
  331. package/dist/src/utils/notification-manager.d.ts +12 -3
  332. package/dist/src/utils/notification-manager.d.ts.map +1 -1
  333. package/dist/src/utils/notification-manager.js +51 -49
  334. package/dist/src/utils/notification-manager.js.map +1 -1
  335. package/dist/src/utils/platform-utils.d.ts +12 -3
  336. package/dist/src/utils/platform-utils.d.ts.map +1 -1
  337. package/dist/src/utils/platform-utils.js +35 -16
  338. package/dist/src/utils/platform-utils.js.map +1 -1
  339. package/dist/src/utils/plugin-validator.js +11 -11
  340. package/dist/src/utils/plugin-validator.js.map +1 -1
  341. package/dist/src/validators/ac-coverage-validator.d.ts +1 -1
  342. package/dist/src/validators/ac-coverage-validator.js +1 -1
  343. package/package.json +3 -1
  344. package/plugins/PLUGINS-INDEX.md +1 -2
  345. package/plugins/specweave/.claude-plugin/plugin.json +1 -1
  346. package/plugins/specweave/COMMANDS.md +49 -49
  347. package/plugins/specweave/agents/pm/AGENT.md +18 -18
  348. package/plugins/specweave/agents/test-aware-planner/AGENT.md +7 -7
  349. package/plugins/specweave/agents/translator/AGENT.md +2 -2
  350. package/plugins/specweave/commands/{specweave-abandon.md → abandon.md} +20 -20
  351. package/plugins/specweave/commands/{specweave-analyze-standards.sh → analyze-standards.sh} +4 -4
  352. package/plugins/specweave/commands/{specweave-archive-features.md → archive-features.md} +7 -7
  353. package/plugins/specweave/commands/{specweave-archive.md → archive.md} +36 -36
  354. package/plugins/specweave/commands/{specweave-backlog.md → backlog.md} +24 -24
  355. package/plugins/specweave/commands/{specweave-check-hooks.md → check-hooks.md} +10 -10
  356. package/plugins/specweave/commands/{specweave-check-tests.md → check-tests.md} +14 -14
  357. package/plugins/specweave/commands/{specweave-costs.md → costs.md} +8 -8
  358. package/plugins/specweave/commands/{specweave-discrepancies.md → discrepancies.md} +15 -15
  359. package/plugins/specweave/commands/{specweave-discrepancy-to-increment.md → discrepancy-to-increment.md} +10 -10
  360. package/plugins/specweave/commands/{specweave-do.md → do.md} +37 -39
  361. package/plugins/specweave/commands/{specweave-done.md → done.md} +23 -23
  362. package/plugins/specweave/commands/{specweave-embed-acs.md → embed-acs.md} +21 -21
  363. package/plugins/specweave/commands/{specweave-external.md → external.md} +11 -11
  364. package/plugins/specweave/commands/{specweave-fix-duplicates.md → fix-duplicates.md} +16 -16
  365. package/plugins/specweave/commands/{specweave-import-docs.md → import-docs.md} +7 -7
  366. package/plugins/specweave/commands/{specweave-import-external.md → import-external.md} +9 -9
  367. package/plugins/specweave/commands/{specweave-increment.md → increment.md} +17 -17
  368. package/plugins/specweave/commands/{specweave-jobs.md → jobs.md} +28 -28
  369. package/plugins/specweave/commands/{specweave-judge-llm.md → judge-llm.md} +19 -19
  370. package/plugins/specweave/commands/{specweave-living-docs.md → living-docs.md} +72 -29
  371. package/plugins/specweave/commands/migrate-config.md +2 -2
  372. package/plugins/specweave/commands/{specweave-next.md → next.md} +20 -20
  373. package/plugins/specweave/commands/{specweave-notifications.md → notifications.md} +11 -11
  374. package/plugins/specweave/commands/{specweave-organize-docs.md → organize-docs.md} +9 -9
  375. package/plugins/specweave/commands/{specweave-pause.md → pause.md} +19 -19
  376. package/plugins/specweave/commands/{specweave-plan.md → plan.md} +19 -19
  377. package/plugins/specweave/commands/{specweave-progress.md → progress.md} +6 -6
  378. package/plugins/specweave/commands/{specweave-qa.md → qa.md} +15 -15
  379. package/plugins/specweave/commands/{specweave-reopen.md → reopen.md} +41 -41
  380. package/plugins/specweave/commands/{specweave-restore-feature.md → restore-feature.md} +6 -6
  381. package/plugins/specweave/commands/{specweave-restore.md → restore.md} +26 -26
  382. package/plugins/specweave/commands/{specweave-resume.md → resume.md} +33 -33
  383. package/plugins/specweave/commands/revert-wip-limit.md +4 -4
  384. package/plugins/specweave/commands/{specweave-save.md → save.md} +34 -34
  385. package/plugins/specweave/commands/{specweave-status.md → status.md} +29 -29
  386. package/plugins/specweave/commands/{specweave.md → sw.md} +28 -28
  387. package/plugins/specweave/commands/{specweave-sync-acs.md → sync-acs.md} +12 -12
  388. package/plugins/specweave/commands/sync-diagnostics.md +5 -5
  389. package/plugins/specweave/commands/{specweave-sync-docs.md → sync-docs.md} +7 -7
  390. package/plugins/specweave/commands/{specweave-sync-logs.md → sync-logs.md} +14 -14
  391. package/plugins/specweave/commands/{specweave-sync-monitor.md → sync-monitor.md} +5 -5
  392. package/plugins/specweave/commands/{specweave-sync-progress.md → sync-progress.md} +38 -38
  393. package/plugins/specweave/commands/{specweave-sync-specs.md → sync-specs.md} +17 -17
  394. package/plugins/specweave/commands/{specweave-sync-status.md → sync-status.md} +16 -16
  395. package/plugins/specweave/commands/{specweave-sync-tasks.md → sync-tasks.md} +13 -13
  396. package/plugins/specweave/commands/{specweave-tdd-cycle.md → tdd-cycle.md} +1 -1
  397. package/plugins/specweave/commands/{specweave-tdd-green.md → tdd-green.md} +1 -1
  398. package/plugins/specweave/commands/{specweave-tdd-red.md → tdd-red.md} +1 -1
  399. package/plugins/specweave/commands/{specweave-tdd-refactor.md → tdd-refactor.md} +1 -1
  400. package/plugins/specweave/commands/{specweave-translate.md → translate.md} +17 -17
  401. package/plugins/specweave/commands/{specweave-update-scope.md → update-scope.md} +8 -8
  402. package/plugins/specweave/commands/{specweave-update-status.md → update-status.md} +6 -6
  403. package/plugins/specweave/commands/{specweave-validate-features.md → validate-features.md} +8 -8
  404. package/plugins/specweave/commands/{specweave-validate.md → validate.md} +20 -20
  405. package/plugins/specweave/commands/{specweave-workflow.md → workflow.md} +40 -40
  406. package/plugins/specweave/hooks/README.md +5 -5
  407. package/plugins/specweave/hooks/config-env-separator.sh +99 -0
  408. package/plugins/specweave/hooks/github-metadata-guard.sh +73 -0
  409. package/plugins/specweave/hooks/hooks.json +32 -2
  410. package/plugins/specweave/hooks/post-first-increment.sh +2 -2
  411. package/plugins/specweave/hooks/post-increment-completion.sh +7 -7
  412. package/plugins/specweave/hooks/post-increment-planning.sh +11 -11
  413. package/plugins/specweave/hooks/post-increment-status-change.sh +1 -1
  414. package/plugins/specweave/hooks/post-metadata-change.sh +1 -1
  415. package/plugins/specweave/hooks/post-spec-update.sh +2 -2
  416. package/plugins/specweave/hooks/post-task-completion.sh +2 -2
  417. package/plugins/specweave/hooks/pre-increment-start.sh +7 -7
  418. package/plugins/specweave/hooks/project-folder-guard.sh +272 -0
  419. package/plugins/specweave/hooks/spec-project-validator.sh +68 -47
  420. package/plugins/specweave/hooks/user-prompt-submit.sh +27 -27
  421. package/plugins/specweave/hooks/v2/guards/completion-guard.sh +2 -2
  422. package/plugins/specweave/hooks/v2/guards/metadata-json-guard.sh +1 -1
  423. package/plugins/specweave/hooks/v2/handlers/github-sync-handler.sh +1 -1
  424. package/plugins/specweave/lib/hooks/consolidated-sync.js +35 -5
  425. package/plugins/specweave/lib/hooks/invoke-translator-skill.js +2 -2
  426. package/plugins/specweave/lib/hooks/invoke-translator-skill.ts +2 -2
  427. package/plugins/specweave/lib/hooks/prepare-reflection-context.js +1 -1
  428. package/plugins/specweave/lib/hooks/prepare-reflection-context.ts +1 -1
  429. package/plugins/specweave/lib/hooks/sync-living-docs.js +5 -5
  430. package/plugins/specweave/lib/hooks/translate-file.d.ts +1 -1
  431. package/plugins/specweave/lib/hooks/translate-file.js +2 -2
  432. package/plugins/specweave/lib/hooks/translate-file.ts +3 -3
  433. package/plugins/specweave/lib/hooks/us-completion-orchestrator.js +1 -1
  434. package/plugins/specweave/lib/hooks/us-completion-orchestrator.ts +2 -2
  435. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +6 -6
  436. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
  437. package/plugins/specweave/lib/vendor/core/increment/status-auto-transition.d.ts +113 -0
  438. package/plugins/specweave/lib/vendor/core/increment/status-auto-transition.js +318 -0
  439. package/plugins/specweave/lib/vendor/core/increment/status-auto-transition.js.map +1 -0
  440. package/plugins/specweave/lib/vendor/core/types/increment-metadata.d.ts +3 -3
  441. package/plugins/specweave/lib/vendor/core/types/increment-metadata.js +3 -3
  442. package/plugins/specweave/lib/vendor/core/types/increment-metadata.js.map +1 -1
  443. package/plugins/specweave/scripts/README.md +9 -9
  444. package/plugins/specweave/scripts/cleanup-state.sh +1 -1
  445. package/plugins/specweave/scripts/jobs.js +2 -2
  446. package/plugins/specweave/scripts/progress.js +6 -6
  447. package/plugins/specweave/scripts/read-costs.sh +3 -3
  448. package/plugins/specweave/scripts/read-jobs.sh +8 -8
  449. package/plugins/specweave/scripts/read-progress.sh +17 -10
  450. package/plugins/specweave/scripts/read-status.sh +7 -7
  451. package/plugins/specweave/scripts/read-workflow.sh +18 -18
  452. package/plugins/specweave/scripts/rebuild-dashboard-cache.sh +6 -5
  453. package/plugins/specweave/scripts/session-watchdog.sh +4 -4
  454. package/plugins/specweave/scripts/status.js +7 -7
  455. package/plugins/specweave/scripts/update-dashboard-cache.sh +28 -10
  456. package/plugins/specweave/skills/SKILLS-INDEX.md +4 -4
  457. package/plugins/specweave/skills/archive-increments/SKILL.md +15 -15
  458. package/plugins/specweave/skills/brownfield-analyzer/SKILL.md +5 -5
  459. package/plugins/specweave/skills/code-standards-analyzer/SKILL.md +4 -4
  460. package/plugins/specweave/skills/context-loader/SKILL.md +1 -1
  461. package/plugins/specweave/skills/{specweave-detector → detector}/SKILL.md +5 -5
  462. package/plugins/specweave/skills/discrepancy-viewer.md +4 -4
  463. package/plugins/specweave/skills/external-sync-wizard/SKILL.md +24 -24
  464. package/plugins/specweave/skills/{specweave-framework → framework}/SKILL.md +33 -33
  465. package/plugins/specweave/skills/increment-planner/SKILL.md +25 -24
  466. package/plugins/specweave/skills/increment-planner/templates/spec-multi-project.md +6 -16
  467. package/plugins/specweave/skills/increment-planner/templates/spec-single-project.md +6 -12
  468. package/plugins/specweave/skills/increment-quality-judge-v2/SKILL.md +6 -6
  469. package/plugins/specweave/skills/increment-work-router/SKILL.md +23 -23
  470. package/plugins/specweave/skills/instant-status/SKILL.md +7 -7
  471. package/plugins/specweave/skills/plugin-validator/SKILL.md +9 -9
  472. package/plugins/specweave/skills/pm-closure-validation/SKILL.md +4 -4
  473. package/plugins/specweave/skills/progress-sync/SKILL.md +51 -51
  474. package/plugins/specweave/skills/project-kickstarter/SKILL.md +11 -11
  475. package/plugins/specweave/skills/role-orchestrator/README.md +1 -1
  476. package/plugins/specweave/skills/role-orchestrator/SKILL.md +4 -4
  477. package/plugins/specweave/skills/smart-reopen-detector/SKILL.md +17 -17
  478. package/plugins/specweave/skills/spec-generator/SKILL.md +6 -6
  479. package/plugins/specweave/skills/tdd-workflow/SKILL.md +21 -21
  480. package/plugins/specweave/skills/translator/SKILL.md +4 -4
  481. package/plugins/specweave/skills/umbrella-repo-detector/SKILL.md +5 -5
  482. package/plugins/specweave-ado/.claude-plugin/plugin.json +1 -1
  483. package/plugins/specweave-ado/agents/ado-manager/AGENT.md +4 -4
  484. package/plugins/specweave-ado/agents/ado-sync-judge/AGENT.md +4 -4
  485. package/plugins/specweave-ado/commands/cleanup-duplicates.md +9 -9
  486. package/plugins/specweave-ado/commands/clone.md +17 -17
  487. package/plugins/specweave-ado/commands/close.md +10 -10
  488. package/plugins/specweave-ado/commands/create.md +8 -8
  489. package/plugins/specweave-ado/commands/import-areas.md +15 -15
  490. package/plugins/specweave-ado/commands/import-projects.md +12 -12
  491. package/plugins/specweave-ado/commands/pull.md +25 -25
  492. package/plugins/specweave-ado/commands/push.md +20 -20
  493. package/plugins/specweave-ado/commands/reconcile.md +7 -7
  494. package/plugins/specweave-ado/commands/status.md +7 -7
  495. package/plugins/specweave-ado/commands/sync.md +17 -17
  496. package/plugins/specweave-ado/hooks/post-living-docs-update.sh +2 -2
  497. package/plugins/specweave-ado/lib/ado-project-detector.js +1 -1
  498. package/plugins/specweave-ado/lib/ado-project-detector.ts +1 -1
  499. package/plugins/specweave-ado/skills/{specweave-ado-mapper → ado-mapper}/SKILL.md +2 -2
  500. package/plugins/specweave-ado/skills/ado-multi-project/SKILL.md +6 -6
  501. package/plugins/specweave-ado/skills/ado-resource-validator/SKILL.md +5 -5
  502. package/plugins/specweave-ado/skills/ado-sync/SKILL.md +19 -19
  503. package/plugins/specweave-alternatives/.claude-plugin/plugin.json +1 -1
  504. package/plugins/specweave-alternatives/commands/alternatives-analyze.md +14 -14
  505. package/plugins/specweave-backend/.claude-plugin/plugin.json +1 -1
  506. package/plugins/specweave-confluent/.claude-plugin/plugin.json +1 -1
  507. package/plugins/specweave-cost-optimizer/.claude-plugin/plugin.json +1 -1
  508. package/plugins/specweave-cost-optimizer/commands/cost-analyze.md +1 -1
  509. package/plugins/specweave-cost-optimizer/commands/cost-optimize.md +1 -1
  510. package/plugins/specweave-diagrams/.claude-plugin/plugin.json +1 -1
  511. package/plugins/specweave-diagrams/commands/diagrams-generate.md +1 -1
  512. package/plugins/specweave-docs/.claude-plugin/plugin.json +1 -1
  513. package/plugins/specweave-docs/commands/build.md +8 -8
  514. package/plugins/specweave-docs/commands/generate.md +22 -22
  515. package/plugins/specweave-docs/commands/health.md +10 -10
  516. package/plugins/specweave-docs/commands/init.md +9 -9
  517. package/plugins/specweave-docs/commands/organize.md +10 -10
  518. package/plugins/specweave-docs/commands/validate.md +9 -9
  519. package/plugins/specweave-docs/commands/view.md +14 -14
  520. package/plugins/specweave-docs/skills/preview/SKILL.md +11 -11
  521. package/plugins/specweave-figma/.claude-plugin/plugin.json +1 -1
  522. package/plugins/specweave-figma/commands/figma-import.md +1 -1
  523. package/plugins/specweave-figma/commands/figma-to-react.md +1 -1
  524. package/plugins/specweave-figma/commands/figma-tokens.md +1 -1
  525. package/plugins/specweave-frontend/.claude-plugin/plugin.json +1 -1
  526. package/plugins/specweave-frontend/agents/frontend-architect/README.md +5 -5
  527. package/plugins/specweave-frontend/commands/component-generate.md +1 -1
  528. package/plugins/specweave-frontend/commands/design-system-init.md +1 -1
  529. package/plugins/specweave-frontend/commands/frontend-scaffold.md +1 -1
  530. package/plugins/specweave-frontend/commands/nextjs-setup.md +1 -1
  531. package/plugins/specweave-github/.claude-plugin/plugin.json +1 -1
  532. package/plugins/specweave-github/MULTI-PROJECT-SYNC-ARCHITECTURE.md +4 -4
  533. package/plugins/specweave-github/SYNC-ARCHITECTURE-FIX-SUMMARY.md +18 -18
  534. package/plugins/specweave-github/agents/github-manager/AGENT.md +8 -8
  535. package/plugins/specweave-github/commands/cleanup-duplicates.md +8 -8
  536. package/plugins/specweave-github/commands/close.md +25 -25
  537. package/plugins/specweave-github/commands/create.md +17 -17
  538. package/plugins/specweave-github/commands/pull.md +12 -12
  539. package/plugins/specweave-github/commands/push.md +12 -12
  540. package/plugins/specweave-github/commands/reconcile.md +7 -7
  541. package/plugins/specweave-github/commands/status.md +24 -24
  542. package/plugins/specweave-github/commands/sync.md +34 -34
  543. package/plugins/specweave-github/commands/update-user-story.md +6 -6
  544. package/plugins/specweave-github/hooks/README.md +8 -8
  545. package/plugins/specweave-github/hooks/post-task-completion.sh +2 -2
  546. package/plugins/specweave-github/lib/ThreeLayerSyncManager.js +12 -4
  547. package/plugins/specweave-github/lib/ThreeLayerSyncManager.ts +16 -4
  548. package/plugins/specweave-github/lib/completion-calculator.js +3 -1
  549. package/plugins/specweave-github/lib/completion-calculator.ts +6 -0
  550. package/plugins/specweave-github/lib/duplicate-detector.js +12 -6
  551. package/plugins/specweave-github/lib/duplicate-detector.ts +22 -6
  552. package/plugins/specweave-github/lib/github-board-resolver.js +7 -2
  553. package/plugins/specweave-github/lib/github-board-resolver.ts +13 -2
  554. package/plugins/specweave-github/lib/github-client-v2.js +29 -18
  555. package/plugins/specweave-github/lib/github-client-v2.ts +33 -18
  556. package/plugins/specweave-github/lib/github-feature-sync.js +41 -11
  557. package/plugins/specweave-github/lib/github-feature-sync.ts +52 -11
  558. package/plugins/specweave-github/lib/github-hierarchical-sync.js +6 -1
  559. package/plugins/specweave-github/lib/github-hierarchical-sync.ts +12 -1
  560. package/plugins/specweave-github/lib/github-increment-sync-cli.js +35 -17
  561. package/plugins/specweave-github/lib/github-increment-sync-cli.ts +44 -16
  562. package/plugins/specweave-github/lib/github-issue-updater.js +8 -3
  563. package/plugins/specweave-github/lib/github-issue-updater.ts +16 -3
  564. package/plugins/specweave-github/lib/github-spec-sync.js +14 -4
  565. package/plugins/specweave-github/lib/github-spec-sync.ts +19 -4
  566. package/plugins/specweave-github/lib/github-sync-bidirectional.js +8 -3
  567. package/plugins/specweave-github/lib/github-sync-bidirectional.ts +14 -3
  568. package/plugins/specweave-github/lib/github-sync-increment-changes.js +9 -4
  569. package/plugins/specweave-github/lib/github-sync-increment-changes.ts +15 -4
  570. package/plugins/specweave-github/lib/increment-issue-builder.js +23 -10
  571. package/plugins/specweave-github/lib/increment-issue-builder.ts +29 -11
  572. package/plugins/specweave-github/lib/user-story-content-builder.js +19 -16
  573. package/plugins/specweave-github/lib/user-story-content-builder.ts +24 -19
  574. package/plugins/specweave-github/lib/user-story-issue-builder.js +10 -13
  575. package/plugins/specweave-github/lib/user-story-issue-builder.ts +20 -19
  576. package/plugins/specweave-github/reference/github-specweave-mapping.md +1 -1
  577. package/plugins/specweave-github/skills/github-issue-standard/SKILL.md +3 -3
  578. package/plugins/specweave-github/skills/github-issue-tracker/SKILL.md +8 -8
  579. package/plugins/specweave-github/skills/github-sync/SKILL.md +14 -14
  580. package/plugins/specweave-infrastructure/.claude-plugin/plugin.json +1 -1
  581. package/plugins/specweave-infrastructure/commands/{specweave-infrastructure-monitor-setup.md → monitor-setup.md} +1 -1
  582. package/plugins/specweave-infrastructure/commands/{specweave-infrastructure-slo-implement.md → slo-implement.md} +1 -1
  583. package/plugins/specweave-jira/.claude-plugin/plugin.json +1 -1
  584. package/plugins/specweave-jira/agents/jira-sync-judge/AGENT.md +3 -3
  585. package/plugins/specweave-jira/commands/cleanup-duplicates.md +9 -9
  586. package/plugins/specweave-jira/commands/close.md +13 -13
  587. package/plugins/specweave-jira/commands/create.md +8 -8
  588. package/plugins/specweave-jira/commands/import-boards.md +15 -15
  589. package/plugins/specweave-jira/commands/import-projects-full.md +15 -15
  590. package/plugins/specweave-jira/commands/import-projects.md +10 -10
  591. package/plugins/specweave-jira/commands/pull.md +10 -10
  592. package/plugins/specweave-jira/commands/push.md +11 -11
  593. package/plugins/specweave-jira/commands/reconcile.md +7 -7
  594. package/plugins/specweave-jira/commands/status.md +16 -16
  595. package/plugins/specweave-jira/commands/sync.md +27 -27
  596. package/plugins/specweave-jira/skills/{specweave-jira-mapper → jira-mapper}/SKILL.md +2 -2
  597. package/plugins/specweave-jira/skills/jira-resource-validator/SKILL.md +4 -4
  598. package/plugins/specweave-jira/skills/jira-sync/SKILL.md +5 -5
  599. package/plugins/specweave-kafka/.claude-plugin/plugin.json +1 -1
  600. package/plugins/specweave-kafka/IMPLEMENTATION-COMPLETE.md +10 -10
  601. package/plugins/specweave-kafka/README.md +12 -12
  602. package/plugins/specweave-kafka/commands/deploy.md +5 -5
  603. package/plugins/specweave-kafka/commands/dev-env.md +2 -2
  604. package/plugins/specweave-kafka/commands/mcp-configure.md +3 -3
  605. package/plugins/specweave-kafka/commands/monitor-setup.md +3 -3
  606. package/plugins/specweave-kafka/skills/kafka-architecture/SKILL.md +4 -4
  607. package/plugins/specweave-kafka/skills/kafka-cli-tools/SKILL.md +5 -5
  608. package/plugins/specweave-kafka/skills/kafka-mcp-integration/SKILL.md +6 -6
  609. package/plugins/specweave-kafka-streams/.claude-plugin/plugin.json +1 -1
  610. package/plugins/specweave-kafka-streams/commands/topology.md +4 -4
  611. package/plugins/specweave-kubernetes/.claude-plugin/plugin.json +1 -1
  612. package/plugins/specweave-ml/.claude-plugin/plugin.json +1 -1
  613. package/plugins/specweave-ml/README.md +9 -9
  614. package/plugins/specweave-ml/commands/{specweave-ml-deploy.md → deploy.md} +1 -1
  615. package/plugins/specweave-ml/commands/{specweave-ml-evaluate.md → evaluate.md} +1 -1
  616. package/plugins/specweave-ml/commands/{specweave-ml-explain.md → explain.md} +1 -1
  617. package/plugins/specweave-ml/commands/{specweave-ml-pipeline.md → pipeline.md} +1 -1
  618. package/plugins/specweave-ml/skills/automl-optimizer/SKILL.md +1 -1
  619. package/plugins/specweave-ml/skills/data-visualizer/SKILL.md +1 -1
  620. package/plugins/specweave-ml/skills/experiment-tracker/SKILL.md +4 -4
  621. package/plugins/specweave-ml/skills/feature-engineer/SKILL.md +1 -1
  622. package/plugins/specweave-ml/skills/ml-deployment-helper/SKILL.md +2 -2
  623. package/plugins/specweave-ml/skills/ml-pipeline-orchestrator/SKILL.md +10 -10
  624. package/plugins/specweave-ml/skills/model-registry/SKILL.md +1 -1
  625. package/plugins/specweave-ml/skills/time-series-forecaster/SKILL.md +1 -1
  626. package/plugins/specweave-mobile/.claude-plugin/plugin.json +1 -1
  627. package/plugins/specweave-mobile/README.md +2 -2
  628. package/plugins/specweave-mobile/agents/mobile-architect/AGENT.md +2 -2
  629. package/plugins/specweave-mobile/skills/react-native-setup/SKILL.md +1 -1
  630. package/plugins/specweave-n8n/.claude-plugin/plugin.json +1 -1
  631. package/plugins/specweave-n8n/commands/workflow-template.md +4 -4
  632. package/plugins/specweave-payments/.claude-plugin/plugin.json +1 -1
  633. package/plugins/specweave-payments/commands/stripe-setup.md +1 -1
  634. package/plugins/specweave-payments/commands/subscription-flow.md +1 -1
  635. package/plugins/specweave-plugin-dev/.claude-plugin/plugin.json +1 -1
  636. package/plugins/specweave-plugin-dev/commands/plugin-create.md +1 -1
  637. package/plugins/specweave-plugin-dev/commands/plugin-publish.md +1 -1
  638. package/plugins/specweave-plugin-dev/commands/plugin-test.md +1 -1
  639. package/plugins/specweave-release/.claude-plugin/plugin.json +1 -1
  640. package/plugins/specweave-release/IMPLEMENTATION.md +14 -14
  641. package/plugins/specweave-release/README.md +33 -33
  642. package/plugins/specweave-release/agents/release-manager/AGENT.md +18 -18
  643. package/plugins/specweave-release/commands/{specweave-release-align.md → align.md} +19 -19
  644. package/plugins/specweave-release/commands/{specweave-release-init.md → init.md} +19 -19
  645. package/plugins/specweave-release/commands/{specweave-release-npm.md → npm.md} +14 -14
  646. package/plugins/specweave-release/commands/{specweave-release-platform.md → platform.md} +17 -17
  647. package/plugins/specweave-release/commands/{specweave-release-rc.md → rc.md} +37 -37
  648. package/plugins/specweave-release/hooks/post-task-completion.sh +1 -1
  649. package/plugins/specweave-release/skills/rc-manager/SKILL.md +12 -12
  650. package/plugins/specweave-release/skills/release-coordinator/SKILL.md +11 -11
  651. package/plugins/specweave-release/skills/release-strategy-advisor/SKILL.md +4 -4
  652. package/plugins/specweave-release/skills/version-aligner/SKILL.md +7 -7
  653. package/plugins/specweave-testing/.claude-plugin/plugin.json +1 -1
  654. package/plugins/specweave-testing/agents/qa-engineer/README.md +5 -5
  655. package/plugins/specweave-testing/commands/e2e-setup.md +1 -1
  656. package/plugins/specweave-testing/commands/test-coverage.md +1 -1
  657. package/plugins/specweave-testing/commands/test-generate.md +1 -1
  658. package/plugins/specweave-testing/commands/test-init.md +1 -1
  659. package/plugins/specweave-tooling/.claude-plugin/plugin.json +1 -1
  660. package/plugins/specweave-tooling/commands/{specweave-tooling-skill-create.md → skill-create.md} +1 -1
  661. package/plugins/specweave-tooling/commands/{specweave-tooling-skill-package.md → skill-package.md} +1 -1
  662. package/plugins/specweave-tooling/commands/{specweave-tooling-skill-validate.md → skill-validate.md} +1 -1
  663. package/plugins/specweave-ui/.claude-plugin/plugin.json +1 -1
  664. package/plugins/specweave-ui/commands/ui-automate.md +9 -9
  665. package/plugins/specweave-ui/commands/ui-inspect.md +6 -6
  666. package/src/templates/AGENTS.md.template +49 -49
  667. package/src/templates/CLAUDE.md.template +11 -11
  668. package/dist/src/cli/commands/switch-project.d.ts +0 -13
  669. package/dist/src/cli/commands/switch-project.d.ts.map +0 -1
  670. package/dist/src/cli/commands/switch-project.js +0 -78
  671. package/dist/src/cli/commands/switch-project.js.map +0 -1
  672. package/plugins/specweave/commands/specweave-init-multiproject.md +0 -146
  673. package/plugins/specweave-core/.claude-plugin/plugin.json +0 -21
  674. package/plugins/specweave-core/commands/architecture-review.md +0 -288
  675. package/plugins/specweave-core/commands/code-review.md +0 -213
  676. package/plugins/specweave-core/commands/refactor-plan.md +0 -249
  677. package/plugins/specweave-core/skills/code-quality/SKILL.md +0 -158
  678. package/plugins/specweave-core/skills/design-patterns/SKILL.md +0 -245
  679. package/plugins/specweave-core/skills/software-architecture/SKILL.md +0 -84
  680. /package/plugins/specweave/skills/{specweave-framework → framework}/test-cases/test-1-increment-naming.yaml +0 -0
  681. /package/plugins/specweave/skills/{specweave-framework → framework}/test-cases/test-2-source-of-truth.yaml +0 -0
  682. /package/plugins/specweave/skills/{specweave-framework → framework}/test-cases/test-3-increment-discipline.yaml +0 -0
  683. /package/plugins/specweave/skills/{specweave-framework → framework}/test-cases/test-4-file-placement.yaml +0 -0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: specweave-github:sync
2
+ name: sw-github:sync
3
3
  description: Synchronize SpecWeave increment with GitHub issue (Multi-Project Support). Select profile, configure time range, and sync with rate limit protection.
4
4
  ---
5
5
 
@@ -67,7 +67,7 @@ Synchronize the current state of a SpecWeave increment with its GitHub issue acr
67
67
  ## Usage
68
68
 
69
69
  ```bash
70
- /specweave-github:sync <increment-id> [options]
70
+ /sw-github:sync <increment-id> [options]
71
71
  ```
72
72
 
73
73
  ## Arguments
@@ -112,36 +112,36 @@ SpecWeave syncs changes in **both directions** by default:
112
112
  **Override if needed:**
113
113
  ```bash
114
114
  # Push only (one-way to GitHub)
115
- /specweave-github:sync 0004 --direction to-github
115
+ /sw-github:sync 0004 --direction to-github
116
116
 
117
117
  # Pull only (one-way from GitHub)
118
- /specweave-github:sync 0004 --direction from-github
118
+ /sw-github:sync 0004 --direction from-github
119
119
  ```
120
120
 
121
121
  ## Examples
122
122
 
123
123
  ```bash
124
124
  # Interactive two-way sync (default - both directions)
125
- /specweave-github:sync 0004
125
+ /sw-github:sync 0004
126
126
 
127
127
  # Use specific profile (still two-way by default)
128
- /specweave-github:sync 0004 --profile specweave-dev
128
+ /sw-github:sync 0004 --profile specweave-dev
129
129
 
130
130
  # Specify time range (two-way)
131
- /specweave-github:sync 0004 --time-range 1M
131
+ /sw-github:sync 0004 --time-range 1M
132
132
 
133
133
  # Full two-way sync with all options
134
- /specweave-github:sync 0004 --profile main --time-range 1M --tasks --labels
134
+ /sw-github:sync 0004 --profile main --time-range 1M --tasks --labels
135
135
 
136
136
  # One-way sync examples (override default)
137
- /specweave-github:sync 0004 --direction to-github # Push only
138
- /specweave-github:sync 0004 --direction from-github # Pull only
137
+ /sw-github:sync 0004 --direction to-github # Push only
138
+ /sw-github:sync 0004 --direction from-github # Pull only
139
139
 
140
140
  # Dry run to preview changes
141
- /specweave-github:sync 0004 --dry-run
141
+ /sw-github:sync 0004 --dry-run
142
142
 
143
143
  # Force sync all increments (two-way)
144
- /specweave-github:sync --all --force
144
+ /sw-github:sync --all --force
145
145
  ```
146
146
 
147
147
  ## Interactive Workflow
@@ -431,8 +431,8 @@ Available profiles:
431
431
  • specweave-dev (GitHub: anton-abyzov/specweave)
432
432
  • another-repo (GitHub: myorg/another-project)
433
433
 
434
- Create profile: /specweave:sync-profile create
435
- List profiles: /specweave:sync-profile list
434
+ Create profile: /sw:sync-profile create
435
+ List profiles: /sw:sync-profile list
436
436
  ```
437
437
 
438
438
  ### No Profiles Configured
@@ -441,7 +441,7 @@ List profiles: /specweave:sync-profile list
441
441
  āŒ Error: No GitHub sync profiles configured
442
442
 
443
443
  Create your first profile:
444
- /specweave:sync-profile create
444
+ /sw:sync-profile create
445
445
 
446
446
  Or migrate from old configuration:
447
447
  specweave migrate-to-profiles
@@ -459,7 +459,7 @@ Rate limit resets: 2025-11-04 15:00:00 (12 minutes)
459
459
  What would you like to do?
460
460
 
461
461
  1. Wait and resume (auto-resume in 12 min)
462
- 2. Resume manually later (/specweave-github:sync 0004 --resume)
462
+ 2. Resume manually later (/sw-github:sync 0004 --resume)
463
463
  3. Cancel sync (partial data saved)
464
464
 
465
465
  Your choice: [1]
@@ -518,8 +518,8 @@ Output:
518
518
  āœ… Migration completed successfully!
519
519
 
520
520
  Next steps:
521
- 1. Review profiles: /specweave:sync-profile list
522
- 2. Test sync: /specweave-github:sync 0004
521
+ 1. Review profiles: /sw:sync-profile list
522
+ 2. Test sync: /sw-github:sync 0004
523
523
  3. Keep backup: .specweave/config.json.backup (until confirmed working)
524
524
  ```
525
525
 
@@ -529,7 +529,7 @@ If automatic profile creation fails:
529
529
 
530
530
  1. Create profile manually:
531
531
  ```bash
532
- /specweave:sync-profile create
532
+ /sw:sync-profile create
533
533
  ```
534
534
 
535
535
  2. Update increment metadata:
@@ -544,7 +544,7 @@ If automatic profile creation fails:
544
544
 
545
545
  3. Test sync:
546
546
  ```bash
547
- /specweave-github:sync 0004
547
+ /sw-github:sync 0004
548
548
  ```
549
549
 
550
550
  ## Simpler Alternatives
@@ -553,21 +553,21 @@ For most use cases, use the git-style commands:
553
553
 
554
554
  | Command | Purpose |
555
555
  |---------|---------|
556
- | `/specweave-github:pull` | Pull changes from GitHub (read-only) |
557
- | `/specweave-github:push` | Push progress to GitHub |
556
+ | `/sw-github:pull` | Pull changes from GitHub (read-only) |
557
+ | `/sw-github:push` | Push progress to GitHub |
558
558
 
559
- Use `/specweave-github:sync` for advanced operations with time ranges and rate limit control.
559
+ Use `/sw-github:sync` for advanced operations with time ranges and rate limit control.
560
560
 
561
561
  ## Related Commands
562
562
 
563
563
  | Command | Purpose |
564
564
  |---------|---------|
565
- | `/specweave-github:pull` | Pull from GitHub (git-style) |
566
- | `/specweave-github:push` | Push to GitHub (git-style) |
567
- | `/specweave-github:create` | Create GitHub issue |
568
- | `/specweave-github:close` | Close GitHub issue |
569
- | `/specweave-github:status` | Check sync status |
570
- | `/specweave:sync-profile create` | Create new sync profile |
565
+ | `/sw-github:pull` | Pull from GitHub (git-style) |
566
+ | `/sw-github:push` | Push to GitHub (git-style) |
567
+ | `/sw-github:create` | Create GitHub issue |
568
+ | `/sw-github:close` | Close GitHub issue |
569
+ | `/sw-github:status` | Check sync status |
570
+ | `/sw:sync-profile create` | Create new sync profile |
571
571
 
572
572
  ## Tips & Best Practices
573
573
 
@@ -632,7 +632,7 @@ For active development:
632
632
 
633
633
  Before large syncs:
634
634
  ```bash
635
- /specweave-github:sync 0004 --dry-run --time-range 6M
635
+ /sw-github:sync 0004 --dry-run --time-range 6M
636
636
  ```
637
637
 
638
638
  This shows what would happen without actually executing.
@@ -643,10 +643,10 @@ This shows what would happen without actually executing.
643
643
 
644
644
  ```bash
645
645
  # Sync all active increments (respects rate limits)
646
- /specweave-github:sync --all --time-range 1M
646
+ /sw-github:sync --all --time-range 1M
647
647
 
648
648
  # Sync specific increments
649
- /specweave-github:sync 0001,0002,0003 --time-range 2W
649
+ /sw-github:sync 0001,0002,0003 --time-range 2W
650
650
  ```
651
651
 
652
652
  ### Custom Rate Limit Thresholds
@@ -671,7 +671,7 @@ Override default thresholds:
671
671
 
672
672
  If sync fails mid-operation:
673
673
  ```bash
674
- /specweave-github:sync 0004 --resume
674
+ /sw-github:sync 0004 --resume
675
675
  ```
676
676
 
677
677
  System will:
@@ -681,7 +681,7 @@ System will:
681
681
 
682
682
  ---
683
683
 
684
- **Command**: `/specweave-github:sync`
684
+ **Command**: `/sw-github:sync`
685
685
  **Plugin**: specweave-github
686
686
  **Version**: 1.0.0 (Multi-Project)
687
687
  **Last Updated**: 2025-11-05
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: specweave-github:update-user-story
2
+ name: sw-github:update-user-story
3
3
  description: Update GitHub issue for user story with proper ACs and tasks
4
4
  ---
5
5
 
@@ -12,7 +12,7 @@ description: Update GitHub issue for user story with proper ACs and tasks
12
12
 
13
13
  **Usage**:
14
14
  ```bash
15
- /specweave-github:update-user-story FS-031 US-004
15
+ /sw-github:update-user-story FS-031 US-004
16
16
  ```
17
17
 
18
18
  **What It Does**:
@@ -35,7 +35,7 @@ description: Update GitHub issue for user story with proper ACs and tasks
35
35
  **Example**:
36
36
  ```bash
37
37
  # Update US-004 in FS-031
38
- /specweave-github:update-user-story FS-031 US-004
38
+ /sw-github:update-user-story FS-031 US-004
39
39
 
40
40
  # Output:
41
41
  # šŸ” Finding user story: FS-031/US-004
@@ -109,9 +109,9 @@ Progress: 3/6 tasks complete (50%)
109
109
  - āœ… When you want to refresh issue content from living docs
110
110
 
111
111
  **Related Commands**:
112
- - `/specweave-github:sync-epic FS-031` - Sync entire epic (all user stories)
113
- - `/specweave-github:create-issue 0031` - Create issue for increment
114
- - `/specweave-github:sync 0031` - Two-way sync for increment
112
+ - `/sw-github:sync-epic FS-031` - Sync entire epic (all user stories)
113
+ - `/sw-github:create-issue 0031` - Create issue for increment
114
+ - `/sw-github:sync 0031` - Two-way sync for increment
115
115
 
116
116
  ---
117
117
 
@@ -71,7 +71,7 @@ Log: "[GitHub] āœ… GitHub sync complete"
71
71
  - Created performance overhead and duplicate executions
72
72
 
73
73
  **New behavior (v0.26.0+)**:
74
- - Hook must be invoked manually via `/specweave-github:sync`
74
+ - Hook must be invoked manually via `/sw-github:sync`
75
75
  - OR triggered on increment completion (not task completion)
76
76
  - Reduces API calls by 90%+
77
77
  - Eliminates duplicate hook executions
@@ -81,16 +81,16 @@ Log: "[GitHub] āœ… GitHub sync complete"
81
81
  **Manual Sync** (recommended workflow):
82
82
  ```bash
83
83
  # After completing several tasks, sync progress to GitHub
84
- /specweave-github:sync
84
+ /sw-github:sync
85
85
 
86
86
  # Or sync specific feature
87
- /specweave-github:sync FS-048
87
+ /sw-github:sync FS-048
88
88
  ```
89
89
 
90
90
  **Automatic Sync Options**:
91
91
  1. **On Increment Completion**: Add hook to specweave plugin's post-increment-completion
92
92
  2. **Periodic Sync**: Set up cron job or CI/CD trigger
93
- 3. **On Demand**: Call `/specweave-github:sync` when needed
93
+ 3. **On Demand**: Call `/sw-github:sync` when needed
94
94
 
95
95
  ### Metadata Format
96
96
 
@@ -149,10 +149,10 @@ bash -n plugins/specweave-github/hooks/post-task-completion.sh
149
149
 
150
150
  ### Test with GitHub Issue
151
151
 
152
- 1. Create increment: `/specweave:increment "test feature"`
153
- 2. Create GitHub issue: `/specweave-github:create-issue 0001`
152
+ 1. Create increment: `/sw:increment "test feature"`
153
+ 2. Create GitHub issue: `/sw-github:create-issue 0001`
154
154
  3. Complete several tasks via TodoWrite
155
- 4. **Manually trigger sync**: `/specweave-github:sync`
155
+ 4. **Manually trigger sync**: `/sw-github:sync`
156
156
  5. Check GitHub issue for updates
157
157
 
158
158
  ---
@@ -258,7 +258,7 @@ tail -f .specweave/logs/hooks-debug.log | grep '\[GitHub\]'
258
258
  ```
259
259
 
260
260
  **Common issues**:
261
- - āŒ No `metadata.json`: Create GitHub issue via `/specweave-github:create-issue`
261
+ - āŒ No `metadata.json`: Create GitHub issue via `/sw-github:create-issue`
262
262
  - āŒ Not authenticated: Run `gh auth login`
263
263
  - āŒ Invalid issue number: Check `metadata.json` has correct issue ID
264
264
  - āŒ Network error: Check internet connection
@@ -259,7 +259,7 @@ fi
259
259
  # āš ļø DEPRECATED: SpecWeave now syncs ONLY at User Story level.
260
260
  #
261
261
  # Feature/Epic-level issues are no longer updated.
262
- # Use /specweave-github:sync instead to sync User Story issues.
262
+ # Use /sw-github:sync instead to sync User Story issues.
263
263
  #
264
264
  # To re-enable (NOT recommended):
265
265
  # export SPECWEAVE_ENABLE_EPIC_SYNC=true
@@ -288,7 +288,7 @@ if [ "$SPECWEAVE_ENABLE_EPIC_SYNC" = "true" ]; then
288
288
  if [ -f "$PROJECT_ROOT/scripts/update-epic-github-issue.sh" ]; then
289
289
  echo "[$(date)] [GitHub] šŸš€ Updating Epic GitHub issue (DEPRECATED)..." >> "$DEBUG_LOG" 2>/dev/null || true
290
290
  "$PROJECT_ROOT/scripts/update-epic-github-issue.sh" "$ACTIVE_INCREMENT" >> "$DEBUG_LOG" 2>&1 || true
291
- echo "[$(date)] [GitHub] āš ļø Epic sync is deprecated. Use /specweave-github:sync instead." >> "$DEBUG_LOG" 2>/dev/null || true
291
+ echo "[$(date)] [GitHub] āš ļø Epic sync is deprecated. Use /sw-github:sync instead." >> "$DEBUG_LOG" 2>/dev/null || true
292
292
  else
293
293
  echo "[$(date)] [GitHub] āš ļø Epic sync script not found, skipping" >> "$DEBUG_LOG" 2>/dev/null || true
294
294
  fi
@@ -2,11 +2,19 @@ import * as fs from "../../../src/utils/fs-native.js";
2
2
  import path from "path";
3
3
  import { execFileNoThrow } from "../../../src/utils/execFileNoThrow.js";
4
4
  import { CodeValidator } from "./CodeValidator.js";
5
+ import { getGitHubAuthFromProject } from "../../../src/utils/auth-helpers.js";
5
6
  class ThreeLayerSyncManager {
6
7
  constructor(projectRoot = process.cwd()) {
7
8
  this.userStoryFileCache = /* @__PURE__ */ new Map();
8
9
  this.projectRoot = projectRoot;
9
10
  this.codeValidator = new CodeValidator({ projectRoot });
11
+ this.token = getGitHubAuthFromProject(projectRoot).token;
12
+ }
13
+ /**
14
+ * Get environment object with GH_TOKEN for gh CLI commands.
15
+ */
16
+ getGhEnv() {
17
+ return this.token ? { ...process.env, GH_TOKEN: this.token } : process.env;
10
18
  }
11
19
  /**
12
20
  * Clear User Story file cache
@@ -180,7 +188,7 @@ class ThreeLayerSyncManager {
180
188
  String(issueNumber),
181
189
  "--json",
182
190
  "body,state"
183
- ]);
191
+ ], { env: this.getGhEnv() });
184
192
  if (result.stderr) {
185
193
  throw new Error(`Failed to fetch GitHub issue: ${result.stderr}`);
186
194
  }
@@ -506,7 +514,7 @@ $2`);
506
514
  String(issueNumber),
507
515
  "--json",
508
516
  "body"
509
- ]);
517
+ ], { env: this.getGhEnv() });
510
518
  const { body } = JSON.parse(result.stdout);
511
519
  let updatedBody = body;
512
520
  for (const ac of acs) {
@@ -525,7 +533,7 @@ $2`);
525
533
  String(issueNumber),
526
534
  "--body",
527
535
  updatedBody
528
- ]);
536
+ ], { env: this.getGhEnv() });
529
537
  }
530
538
  /**
531
539
  * Add comment to GitHub issue
@@ -537,7 +545,7 @@ $2`);
537
545
  String(issueNumber),
538
546
  "--body",
539
547
  comment
540
- ]);
548
+ ], { env: this.getGhEnv() });
541
549
  }
542
550
  }
543
551
  export {
@@ -22,6 +22,7 @@ import * as fs from '../../../src/utils/fs-native.js';
22
22
  import path from 'path';
23
23
  import { execFileNoThrow } from '../../../src/utils/execFileNoThrow.js';
24
24
  import { CodeValidator, type TaskValidationResult } from './CodeValidator.js';
25
+ import { getGitHubAuthFromProject } from '../../../src/utils/auth-helpers.js';
25
26
 
26
27
  /**
27
28
  * Acceptance Criterion with completion state
@@ -74,10 +75,21 @@ export class ThreeLayerSyncManager {
74
75
  private codeValidator: CodeValidator;
75
76
  private userStoryFileCache: Map<string, string | null> = new Map();
76
77
  private projectRoot: string;
78
+ private token?: string;
77
79
 
78
80
  constructor(projectRoot: string = process.cwd()) {
79
81
  this.projectRoot = projectRoot;
80
82
  this.codeValidator = new CodeValidator({ projectRoot });
83
+ this.token = getGitHubAuthFromProject(projectRoot).token;
84
+ }
85
+
86
+ /**
87
+ * Get environment object with GH_TOKEN for gh CLI commands.
88
+ */
89
+ private getGhEnv(): NodeJS.ProcessEnv {
90
+ return this.token
91
+ ? { ...process.env, GH_TOKEN: this.token }
92
+ : process.env;
81
93
  }
82
94
 
83
95
  /**
@@ -334,7 +346,7 @@ export class ThreeLayerSyncManager {
334
346
  String(issueNumber),
335
347
  '--json',
336
348
  'body,state'
337
- ]);
349
+ ], { env: this.getGhEnv() });
338
350
 
339
351
  if (result.stderr) {
340
352
  throw new Error(`Failed to fetch GitHub issue: ${result.stderr}`);
@@ -765,7 +777,7 @@ export class ThreeLayerSyncManager {
765
777
  String(issueNumber),
766
778
  '--json',
767
779
  'body'
768
- ]);
780
+ ], { env: this.getGhEnv() });
769
781
 
770
782
  const { body } = JSON.parse(result.stdout);
771
783
 
@@ -791,7 +803,7 @@ export class ThreeLayerSyncManager {
791
803
  String(issueNumber),
792
804
  '--body',
793
805
  updatedBody
794
- ]);
806
+ ], { env: this.getGhEnv() });
795
807
  }
796
808
 
797
809
  /**
@@ -804,6 +816,6 @@ export class ThreeLayerSyncManager {
804
816
  String(issueNumber),
805
817
  '--body',
806
818
  comment
807
- ]);
819
+ ], { env: this.getGhEnv() });
808
820
  }
809
821
  }
@@ -34,7 +34,9 @@ class CompletionCalculator {
34
34
  tasksPercentage: tasks.length > 0 ? tasksCompleted / tasks.length * 100 : 0,
35
35
  overallComplete,
36
36
  blockingAcs: acs.filter((ac) => !ac.completed).map((ac) => ac.id),
37
- blockingTasks: tasks.filter((t) => !t.completed).map((t) => t.id)
37
+ blockingTasks: tasks.filter((t) => !t.completed).map((t) => t.id),
38
+ // v0.35.1: Include frontmatter status for external-origin USs fallback
39
+ frontmatterStatus: frontmatter.status
38
40
  };
39
41
  }
40
42
  /**
@@ -62,6 +62,10 @@ export interface CompletionStatus {
62
62
  // Blocking items (for reopen)
63
63
  blockingAcs: string[]; // List of incomplete AC-IDs
64
64
  blockingTasks: string[]; // List of incomplete Task-IDs
65
+
66
+ // Frontmatter status (fallback for external-origin USs without ACs/tasks)
67
+ // v0.35.1: Used when acsTotal=0 AND tasksTotal=0 to determine label
68
+ frontmatterStatus?: 'complete' | 'completed' | 'active' | 'planning' | 'not-started' | string;
65
69
  }
66
70
 
67
71
  /**
@@ -128,6 +132,8 @@ export class CompletionCalculator {
128
132
  overallComplete,
129
133
  blockingAcs: acs.filter((ac) => !ac.completed).map((ac) => ac.id),
130
134
  blockingTasks: tasks.filter((t) => !t.completed).map((t) => t.id),
135
+ // v0.35.1: Include frontmatter status for external-origin USs fallback
136
+ frontmatterStatus: frontmatter.status,
131
137
  };
132
138
  }
133
139
 
@@ -1,4 +1,9 @@
1
1
  import { execFileSync } from "child_process";
2
+ import { getGitHubAuthFromProject } from "../../../src/utils/auth-helpers.js";
3
+ function getGhEnv() {
4
+ const { token } = getGitHubAuthFromProject(process.cwd());
5
+ return token ? { ...process.env, GH_TOKEN: token } : process.env;
6
+ }
2
7
  class DuplicateDetector {
3
8
  /**
4
9
  * PHASE 1: Detection (Before Creating Issue)
@@ -30,7 +35,7 @@ class DuplicateDetector {
30
35
  if (repo) {
31
36
  args.push("--repo", repo);
32
37
  }
33
- const output = execFileSync("gh", args, { encoding: "utf-8" });
38
+ const output = execFileSync("gh", args, { encoding: "utf-8", env: getGhEnv() });
34
39
  const issues = JSON.parse(output);
35
40
  if (issues.length === 0) {
36
41
  console.log(" \u2705 No existing issues found (safe to create)");
@@ -76,6 +81,7 @@ class DuplicateDetector {
76
81
  static async verifyAfterCreate(titlePattern, expectedCount = 1, repo) {
77
82
  console.log(`
78
83
  \u{1F50D} VERIFICATION: Checking issue count for pattern: ${titlePattern}`);
84
+ await new Promise((resolve) => setTimeout(resolve, 2e3));
79
85
  try {
80
86
  const args = [
81
87
  "issue",
@@ -92,7 +98,7 @@ class DuplicateDetector {
92
98
  if (repo) {
93
99
  args.push("--repo", repo);
94
100
  }
95
- const output = execFileSync("gh", args, { encoding: "utf-8" });
101
+ const output = execFileSync("gh", args, { encoding: "utf-8", env: getGhEnv() });
96
102
  const issues = JSON.parse(output);
97
103
  const exactMatches = issues.filter(
98
104
  (issue) => issue.title.includes(titlePattern)
@@ -193,7 +199,7 @@ The original issue (#${keepIssueNumber}) should be used for tracking instead.
193
199
  if (repo) {
194
200
  commentArgs.push("--repo", repo);
195
201
  }
196
- execFileSync("gh", commentArgs, { encoding: "utf-8" });
202
+ execFileSync("gh", commentArgs, { encoding: "utf-8", env: getGhEnv() });
197
203
  const closeArgs = [
198
204
  "issue",
199
205
  "close",
@@ -202,7 +208,7 @@ The original issue (#${keepIssueNumber}) should be used for tracking instead.
202
208
  if (repo) {
203
209
  closeArgs.push("--repo", repo);
204
210
  }
205
- execFileSync("gh", closeArgs, { encoding: "utf-8" });
211
+ execFileSync("gh", closeArgs, { encoding: "utf-8", env: getGhEnv() });
206
212
  console.log(` \u2705 Closed #${duplicate.number}`);
207
213
  closed++;
208
214
  } catch (error) {
@@ -286,7 +292,7 @@ The original issue (#${keepIssueNumber}) should be used for tracking instead.
286
292
  assignees.forEach((assignee) => {
287
293
  args.push("--assignee", assignee);
288
294
  });
289
- const output = execFileSync("gh", args, { encoding: "utf-8" });
295
+ const output = execFileSync("gh", args, { encoding: "utf-8", env: getGhEnv() });
290
296
  const match = output.match(/\/issues\/(\d+)/);
291
297
  if (!match) {
292
298
  throw new Error("Could not extract issue number from gh CLI output");
@@ -358,7 +364,7 @@ The original issue (#${keepIssueNumber}) should be used for tracking instead.
358
364
  */
359
365
  static checkGitHubCLI() {
360
366
  try {
361
- execFileSync("gh", ["auth", "status"], { encoding: "utf-8" });
367
+ execFileSync("gh", ["auth", "status"], { encoding: "utf-8", env: getGhEnv() });
362
368
  return true;
363
369
  } catch {
364
370
  return false;
@@ -31,6 +31,19 @@
31
31
  */
32
32
 
33
33
  import { execFileSync } from 'child_process';
34
+ import { getGitHubAuthFromProject } from '../../../src/utils/auth-helpers.js';
35
+
36
+ /**
37
+ * Get environment object with GH_TOKEN for gh CLI commands.
38
+ * This ensures the token from .env is passed to all gh operations,
39
+ * regardless of `gh auth` status.
40
+ */
41
+ function getGhEnv(): NodeJS.ProcessEnv {
42
+ const { token } = getGitHubAuthFromProject(process.cwd());
43
+ return token
44
+ ? { ...process.env, GH_TOKEN: token }
45
+ : process.env;
46
+ }
34
47
 
35
48
  // ============================================================================
36
49
  // TYPE DEFINITIONS
@@ -115,7 +128,7 @@ export class DuplicateDetector {
115
128
  args.push('--repo', repo);
116
129
  }
117
130
 
118
- const output = execFileSync('gh', args, { encoding: 'utf-8' });
131
+ const output = execFileSync('gh', args, { encoding: 'utf-8', env: getGhEnv() });
119
132
  const issues = JSON.parse(output) as GitHubIssue[];
120
133
 
121
134
  if (issues.length === 0) {
@@ -179,6 +192,9 @@ export class DuplicateDetector {
179
192
  ): Promise<VerificationResult> {
180
193
  console.log(`\nšŸ” VERIFICATION: Checking issue count for pattern: ${titlePattern}`);
181
194
 
195
+ // āœ… GitHub API indexing delay: Wait 2 seconds for issue to be indexed
196
+ await new Promise(resolve => setTimeout(resolve, 2000));
197
+
182
198
  try {
183
199
  const args = [
184
200
  'issue',
@@ -193,7 +209,7 @@ export class DuplicateDetector {
193
209
  args.push('--repo', repo);
194
210
  }
195
211
 
196
- const output = execFileSync('gh', args, { encoding: 'utf-8' });
212
+ const output = execFileSync('gh', args, { encoding: 'utf-8', env: getGhEnv() });
197
213
  const issues = JSON.parse(output) as GitHubIssue[];
198
214
 
199
215
  // Filter exact matches only
@@ -318,7 +334,7 @@ The original issue (#${keepIssueNumber}) should be used for tracking instead.
318
334
  }
319
335
 
320
336
  // Add comment explaining closure
321
- execFileSync('gh', commentArgs, { encoding: 'utf-8' });
337
+ execFileSync('gh', commentArgs, { encoding: 'utf-8', env: getGhEnv() });
322
338
 
323
339
  const closeArgs = [
324
340
  'issue',
@@ -331,7 +347,7 @@ The original issue (#${keepIssueNumber}) should be used for tracking instead.
331
347
  }
332
348
 
333
349
  // Close the issue
334
- execFileSync('gh', closeArgs, { encoding: 'utf-8' });
350
+ execFileSync('gh', closeArgs, { encoding: 'utf-8', env: getGhEnv() });
335
351
 
336
352
  console.log(` āœ… Closed #${duplicate.number}`);
337
353
  closed++;
@@ -429,7 +445,7 @@ The original issue (#${keepIssueNumber}) should be used for tracking instead.
429
445
  args.push('--assignee', assignee);
430
446
  });
431
447
 
432
- const output = execFileSync('gh', args, { encoding: 'utf-8' });
448
+ const output = execFileSync('gh', args, { encoding: 'utf-8', env: getGhEnv() });
433
449
 
434
450
  // Extract issue number from output (format: "https://github.com/owner/repo/issues/123")
435
451
  const match = output.match(/\/issues\/(\d+)/);
@@ -516,7 +532,7 @@ The original issue (#${keepIssueNumber}) should be used for tracking instead.
516
532
  */
517
533
  static checkGitHubCLI(): boolean {
518
534
  try {
519
- execFileSync('gh', ['auth', 'status'], { encoding: 'utf-8' });
535
+ execFileSync('gh', ['auth', 'status'], { encoding: 'utf-8', env: getGhEnv() });
520
536
  return true;
521
537
  } catch {
522
538
  return false;
@@ -1,4 +1,9 @@
1
1
  import { execFileNoThrow } from "../../../src/utils/execFileNoThrow.js";
2
+ import { getGitHubAuthFromProject } from "../../../src/utils/auth-helpers.js";
3
+ function getGhEnv() {
4
+ const { token } = getGitHubAuthFromProject(process.cwd());
5
+ return token ? { ...process.env, GH_TOKEN: token } : process.env;
6
+ }
2
7
  async function fetchBoardsForRepo(owner, repo) {
3
8
  console.log(`\u{1F50D} Fetching project boards for repo: ${owner}/${repo}`);
4
9
  try {
@@ -9,7 +14,7 @@ async function fetchBoardsForRepo(owner, repo) {
9
14
  ".[] | {id: .id, name: .name, number: .number, state: .state, html_url: .html_url}",
10
15
  "-H",
11
16
  "Accept: application/vnd.github+json"
12
- ]);
17
+ ], { env: getGhEnv() });
13
18
  if (result.status !== 0) {
14
19
  console.error(`\u274C Failed to fetch boards for ${owner}/${repo}:`, result.stderr);
15
20
  throw new Error(`GitHub API error: ${result.status} ${result.stderr}`);
@@ -32,7 +37,7 @@ async function fetchBoardsForOrg(org) {
32
37
  ".[] | {id: .id, name: .name, number: .number, state: .state, html_url: .html_url}",
33
38
  "-H",
34
39
  "Accept: application/vnd.github+json"
35
- ]);
40
+ ], { env: getGhEnv() });
36
41
  if (result.status !== 0) {
37
42
  console.error(`\u274C Failed to fetch boards for org ${org}:`, result.stderr);
38
43
  throw new Error(`GitHub API error: ${result.status} ${result.stderr}`);
@@ -6,6 +6,17 @@
6
6
  */
7
7
 
8
8
  import { execFileNoThrow } from '../../../src/utils/execFileNoThrow.js';
9
+ import { getGitHubAuthFromProject } from '../../../src/utils/auth-helpers.js';
10
+
11
+ /**
12
+ * Get environment object with GH_TOKEN for gh CLI commands.
13
+ */
14
+ function getGhEnv(): NodeJS.ProcessEnv {
15
+ const { token } = getGitHubAuthFromProject(process.cwd());
16
+ return token
17
+ ? { ...process.env, GH_TOKEN: token }
18
+ : process.env;
19
+ }
9
20
 
10
21
  /**
11
22
  * GitHub Project Board (Classic Projects)
@@ -41,7 +52,7 @@ export async function fetchBoardsForRepo(
41
52
  '.[] | {id: .id, name: .name, number: .number, state: .state, html_url: .html_url}',
42
53
  '-H',
43
54
  'Accept: application/vnd.github+json',
44
- ]);
55
+ ], { env: getGhEnv() });
45
56
 
46
57
  if (result.status !== 0) {
47
58
  console.error(`āŒ Failed to fetch boards for ${owner}/${repo}:`, result.stderr);
@@ -85,7 +96,7 @@ export async function fetchBoardsForOrg(
85
96
  '.[] | {id: .id, name: .name, number: .number, state: .state, html_url: .html_url}',
86
97
  '-H',
87
98
  'Accept: application/vnd.github+json',
88
- ]);
99
+ ], { env: getGhEnv() });
89
100
 
90
101
  if (result.status !== 0) {
91
102
  console.error(`āŒ Failed to fetch boards for org ${org}:`, result.stderr);