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
@@ -154,14 +154,30 @@ class IncrementIssueBuilder {
154
154
  const incrementId = incrementData.frontmatter.increment;
155
155
  const title = `[${featureId}][${story.id}] ${story.title}`;
156
156
  let body = "";
157
- body += `**Feature**: ${featureId}
157
+ const completedACs = story.acceptanceCriteria.filter((ac) => ac.completed).length;
158
+ const totalACs = story.acceptanceCriteria.length;
159
+ const storyTasks = incrementData.tasks.filter(
160
+ (t) => t.userStories.includes(story.id) || t.userStories.some((us) => us.toUpperCase() === story.id.toUpperCase())
161
+ );
162
+ const completedTasks = storyTasks.filter((t) => t.completed).length;
163
+ const totalTasks = storyTasks.length;
164
+ const overallPercentage = totalACs + totalTasks > 0 ? Math.round((completedACs + completedTasks) / (totalACs + totalTasks) * 100) : 0;
165
+ body += `## Progress
166
+
158
167
  `;
159
- body += `**Status**: ${incrementData.frontmatter.status || "planning"}
168
+ body += `**Acceptance Criteria**: ${completedACs}/${totalACs} (${totalACs > 0 ? Math.round(completedACs / totalACs * 100) : 0}%)
160
169
  `;
161
- body += `**Priority**: P1
170
+ body += `**Tasks**: ${completedTasks}/${totalTasks} (${totalTasks > 0 ? Math.round(completedTasks / totalTasks * 100) : 0}%)
162
171
  `;
163
- body += `
164
- ---
172
+ body += `**Overall**: ${overallPercentage}%
173
+
174
+ `;
175
+ const filledBlocks = Math.floor(overallPercentage / 5);
176
+ const emptyBlocks = 20 - filledBlocks;
177
+ body += `${"\u2588".repeat(filledBlocks)}${"\u2591".repeat(emptyBlocks)} ${overallPercentage}%
178
+
179
+ `;
180
+ body += `---
165
181
 
166
182
  `;
167
183
  body += `## User Story
@@ -207,15 +223,12 @@ class IncrementIssueBuilder {
207
223
  body += `---
208
224
 
209
225
  `;
210
- const storyTasks = incrementData.tasks.filter(
211
- (t) => t.userStories.includes(story.id) || t.userStories.some((us) => us.toUpperCase() === story.id.toUpperCase())
212
- );
213
226
  if (storyTasks.length > 0) {
214
227
  body += `## Tasks
215
228
 
216
229
  `;
217
- const completedTasks = storyTasks.filter((t) => t.completed).length;
218
- body += `Progress: ${completedTasks}/${storyTasks.length} tasks
230
+ const completedTasks2 = storyTasks.filter((t) => t.completed).length;
231
+ body += `Progress: ${completedTasks2}/${storyTasks.length} tasks
219
232
 
220
233
  `;
221
234
  for (const task of storyTasks) {
@@ -287,11 +287,34 @@ export class IncrementIssueBuilder {
287
287
  // Build body
288
288
  let body = '';
289
289
 
290
- // Header with metadata
291
- body += `**Feature**: ${featureId}\n`;
292
- body += `**Status**: ${incrementData.frontmatter.status || 'planning'}\n`;
293
- body += `**Priority**: P1\n`;
294
- body += `\n---\n\n`;
290
+ // REMOVED: Metadata header (Feature, Status, Priority)
291
+ // WHY: GitHub has NATIVE fields for this (labels, milestones)
292
+ // Body should contain ONLY actual work content (ACs, tasks, user story)
293
+ // See: .specweave/docs/internal/troubleshooting/CRITICAL-remove-metadata-header-from-github-issues.md
294
+
295
+ // Progress section (consistency with user-story-issue-builder.ts)
296
+ const completedACs = story.acceptanceCriteria.filter(ac => ac.completed).length;
297
+ const totalACs = story.acceptanceCriteria.length;
298
+ const storyTasks = incrementData.tasks.filter(t =>
299
+ t.userStories.includes(story.id) ||
300
+ t.userStories.some(us => us.toUpperCase() === story.id.toUpperCase())
301
+ );
302
+ const completedTasks = storyTasks.filter(t => t.completed).length;
303
+ const totalTasks = storyTasks.length;
304
+ const overallPercentage = (totalACs + totalTasks) > 0
305
+ ? Math.round(((completedACs + completedTasks) / (totalACs + totalTasks)) * 100)
306
+ : 0;
307
+
308
+ body += `## Progress\n\n`;
309
+ body += `**Acceptance Criteria**: ${completedACs}/${totalACs} (${totalACs > 0 ? Math.round((completedACs / totalACs) * 100) : 0}%)\n`;
310
+ body += `**Tasks**: ${completedTasks}/${totalTasks} (${totalTasks > 0 ? Math.round((completedTasks / totalTasks) * 100) : 0}%)\n`;
311
+ body += `**Overall**: ${overallPercentage}%\n\n`;
312
+
313
+ // Progress bar
314
+ const filledBlocks = Math.floor(overallPercentage / 5);
315
+ const emptyBlocks = 20 - filledBlocks;
316
+ body += `${'█'.repeat(filledBlocks)}${'░'.repeat(emptyBlocks)} ${overallPercentage}%\n\n`;
317
+ body += `---\n\n`;
295
318
 
296
319
  // User Story description
297
320
  body += `## User Story\n\n`;
@@ -324,12 +347,7 @@ export class IncrementIssueBuilder {
324
347
 
325
348
  body += `---\n\n`;
326
349
 
327
- // Tasks for this user story
328
- const storyTasks = incrementData.tasks.filter(t =>
329
- t.userStories.includes(story.id) ||
330
- t.userStories.some(us => us.toUpperCase() === story.id.toUpperCase())
331
- );
332
-
350
+ // Tasks for this user story (already calculated above for Progress section)
333
351
  if (storyTasks.length > 0) {
334
352
  body += `## Tasks\n\n`;
335
353
  const completedTasks = storyTasks.filter(t => t.completed).length;
@@ -40,25 +40,28 @@ class UserStoryContentBuilder {
40
40
  async buildIssueBody(githubRepo) {
41
41
  const content = await this.parse();
42
42
  let body = "";
43
- const priority = this.extractPriorityFromACs(content.acceptanceCriteria);
44
43
  const repo = githubRepo || await this.detectGitHubRepo();
45
- if (repo) {
46
- const pathMatch = this.userStoryPath.match(/specs\/([^/]+)\/FS-\d+\//);
47
- const projectFolder = pathMatch ? pathMatch[1] : "default";
48
- body += `**Feature**: [${content.featureId}](https://github.com/${repo}/tree/develop/.specweave/docs/internal/specs/${projectFolder}/${content.featureId})
44
+ const completedACs = content.acceptanceCriteria.filter((ac) => ac.completed).length;
45
+ const totalACs = content.acceptanceCriteria.length;
46
+ const completedTasks = content.tasks.filter((t) => t.status).length;
47
+ const totalTasks = content.tasks.length;
48
+ const overallPercentage = totalACs + totalTasks > 0 ? Math.round((completedACs + completedTasks) / (totalACs + totalTasks) * 100) : 0;
49
+ body += `## Progress
50
+
49
51
  `;
50
- } else {
51
- body += `**Feature**: ${content.featureId}
52
+ body += `**Acceptance Criteria**: ${completedACs}/${totalACs} (${totalACs > 0 ? Math.round(completedACs / totalACs * 100) : 0}%)
52
53
  `;
53
- }
54
- body += `**Status**: ${content.frontmatter.status}
54
+ body += `**Tasks**: ${completedTasks}/${totalTasks} (${totalTasks > 0 ? Math.round(completedTasks / totalTasks * 100) : 0}%)
55
55
  `;
56
- if (priority) {
57
- body += `**Priority**: ${priority}
56
+ body += `**Overall**: ${overallPercentage}%
57
+
58
58
  `;
59
- }
60
- body += `
61
- ---
59
+ const filledBlocks = Math.floor(overallPercentage / 5);
60
+ const emptyBlocks = 20 - filledBlocks;
61
+ body += `${"\u2588".repeat(filledBlocks)}${"\u2591".repeat(emptyBlocks)} ${overallPercentage}%
62
+
63
+ `;
64
+ body += `---
62
65
 
63
66
  `;
64
67
  body += `## User Story
@@ -99,9 +102,9 @@ class UserStoryContentBuilder {
99
102
  `;
100
103
  for (const ac of content.acceptanceCriteria) {
101
104
  const checkbox = ac.completed ? "[x]" : "[ ]";
102
- const priority2 = ac.priority ? ` (${ac.priority})` : "";
105
+ const priority = ac.priority ? ` (${ac.priority})` : "";
103
106
  const testable = ac.testable ? " [testable]" : "";
104
- body += `- ${checkbox} **${ac.id}**: ${ac.description}${priority2}${testable}
107
+ body += `- ${checkbox} **${ac.id}**: ${ac.description}${priority}${testable}
105
108
  `;
106
109
  }
107
110
  body += "\n";
@@ -116,28 +116,33 @@ export class UserStoryContentBuilder {
116
116
 
117
117
  let body = '';
118
118
 
119
- // Extract priority from ACs (highest priority wins)
120
- const priority = this.extractPriorityFromACs(content.acceptanceCriteria);
121
-
122
119
  // Detect GitHub repo from git remote if not provided
123
120
  const repo = githubRepo || await this.detectGitHubRepo();
124
121
 
125
- // Header with metadata
126
- // v5.0.0+: Features live in project folders, NOT _features
127
- // Extract project from path: specs/{project}/FS-XXX/us-*.md
128
- if (repo) {
129
- const pathMatch = this.userStoryPath.match(/specs\/([^/]+)\/FS-\d+\//);
130
- const projectFolder = pathMatch ? pathMatch[1] : 'default';
131
- body += `**Feature**: [${content.featureId}](https://github.com/${repo}/tree/develop/.specweave/docs/internal/specs/${projectFolder}/${content.featureId})\n`;
132
- } else {
133
- body += `**Feature**: ${content.featureId}\n`;
134
- }
135
- body += `**Status**: ${content.frontmatter.status}\n`;
136
- if (priority) {
137
- body += `**Priority**: ${priority}\n`;
138
- }
139
-
140
- body += `\n---\n\n`;
122
+ // REMOVED: Metadata header (Feature, Status, Priority)
123
+ // WHY: GitHub has NATIVE fields for this (labels, milestones)
124
+ // Body should contain ONLY actual work content (ACs, tasks, user story)
125
+ // See: .specweave/docs/internal/troubleshooting/CRITICAL-remove-metadata-header-from-github-issues.md
126
+
127
+ // Progress section (consistency with user-story-issue-builder.ts)
128
+ const completedACs = content.acceptanceCriteria.filter(ac => ac.completed).length;
129
+ const totalACs = content.acceptanceCriteria.length;
130
+ const completedTasks = content.tasks.filter(t => t.status).length;
131
+ const totalTasks = content.tasks.length;
132
+ const overallPercentage = (totalACs + totalTasks) > 0
133
+ ? Math.round(((completedACs + completedTasks) / (totalACs + totalTasks)) * 100)
134
+ : 0;
135
+
136
+ body += `## Progress\n\n`;
137
+ body += `**Acceptance Criteria**: ${completedACs}/${totalACs} (${totalACs > 0 ? Math.round((completedACs / totalACs) * 100) : 0}%)\n`;
138
+ body += `**Tasks**: ${completedTasks}/${totalTasks} (${totalTasks > 0 ? Math.round((completedTasks / totalTasks) * 100) : 0}%)\n`;
139
+ body += `**Overall**: ${overallPercentage}%\n\n`;
140
+
141
+ // Progress bar
142
+ const filledBlocks = Math.floor(overallPercentage / 5);
143
+ const emptyBlocks = 20 - filledBlocks;
144
+ body += `${'█'.repeat(filledBlocks)}${'░'.repeat(emptyBlocks)} ${overallPercentage}%\n\n`;
145
+ body += `---\n\n`;
141
146
 
142
147
  // User Story description
143
148
  body += `## User Story\n\n`;
@@ -12,10 +12,10 @@ This prevents incorrect issue titles like [undefined][US-XXX] or [SP-US-XXX].
12
12
  Provide the correct Feature ID (e.g., "FS-047") when constructing this builder.`
13
13
  );
14
14
  }
15
- if (!/^FS-\d{3,}$/.test(featureId)) {
15
+ if (!/^FS-\d{3,}E?$/.test(featureId)) {
16
16
  throw new Error(
17
17
  `UserStoryIssueBuilder: Invalid featureId format "${featureId}".
18
- Expected format: FS-XXX (e.g., "FS-047", "FS-123", "FS-1000").
18
+ Expected format: FS-XXX or FS-XXXE (e.g., "FS-047", "FS-123E", "FS-1000").
19
19
  This prevents incorrect issue titles like [SP-US-XXX] or [${featureId}][US-XXX].`
20
20
  );
21
21
  }
@@ -43,11 +43,11 @@ This prevents incorrect issue titles like [SP-US-XXX] or [${featureId}][US-XXX].
43
43
  const acceptanceCriteria = this.extractAcceptanceCriteria(bodyContent);
44
44
  const tasks = await this.extractTasks(bodyContent, frontmatter.id);
45
45
  const title = `[${this.featureId}][${frontmatter.id}] ${frontmatter.title}`;
46
- const titlePattern = /^\[FS-\d{3,}\]\[US-\d{3,}\] .+$/;
46
+ const titlePattern = /^\[FS-\d{3,}E?\]\[US-\d{3,}E?\] .+$/;
47
47
  if (!titlePattern.test(title)) {
48
48
  throw new Error(
49
49
  `Generated issue title has incorrect format: "${title}"
50
- Expected: [FS-XXX][US-YYY] Title (3+ digits each)
50
+ Expected: [FS-XXX][US-YYY] or [FS-XXXE][US-YYYE] Title (3+ digits each, E-suffix for external)
51
51
  This indicates a bug in UserStoryIssueBuilder or invalid frontmatter.
52
52
  Feature ID: ${this.featureId}
53
53
  User Story ID: ${frontmatter.id}`
@@ -235,13 +235,6 @@ User Story ID: ${frontmatter.id}`
235
235
  data.acceptanceCriteria,
236
236
  data.tasks
237
237
  );
238
- sections.push(`**Feature**: ${this.featureId}`);
239
- sections.push(`**Status**: ${this.capitalize(data.frontmatter.status)}`);
240
- sections.push(`**Priority**: ${data.frontmatter.priority || "P2"}`);
241
- if (data.frontmatter.project && data.frontmatter.project !== "default") {
242
- sections.push(`**Project**: ${data.frontmatter.project}`);
243
- }
244
- sections.push("");
245
238
  sections.push(IssueStateManager.formatProgressMarkdown(progress));
246
239
  sections.push("");
247
240
  if (data.userStoryStatement) {
@@ -356,6 +349,9 @@ User Story ID: ${frontmatter.id}`
356
349
  *
357
350
  * CRITICAL: Label names must match repository labels exactly!
358
351
  * Repository uses: status:complete, status:active, status:not_started
352
+ *
353
+ * v0.35.0: Project derived from frontmatter.project in us-*.md files.
354
+ * Living docs sync transforms spec.md **Project**: → us-*.md frontmatter project:
359
355
  */
360
356
  buildLabels(frontmatter) {
361
357
  const labels = ["user-story", "specweave"];
@@ -382,8 +378,9 @@ User Story ID: ${frontmatter.id}`
382
378
  if (frontmatter.priority) {
383
379
  labels.push(frontmatter.priority.toLowerCase());
384
380
  }
385
- if (frontmatter.project && frontmatter.project !== "default") {
386
- labels.push(`project:${frontmatter.project}`);
381
+ const project = frontmatter.project?.toLowerCase();
382
+ if (project && project !== "default") {
383
+ labels.push(`project:${project}`);
387
384
  }
388
385
  return labels;
389
386
  }
@@ -65,11 +65,11 @@ export class UserStoryIssueBuilder {
65
65
  );
66
66
  }
67
67
 
68
- // ✅ VALIDATION: Ensure featureId matches expected pattern (FS-XXX, 3+ digits)
69
- if (!/^FS-\d{3,}$/.test(featureId)) {
68
+ // ✅ VALIDATION: Ensure featureId matches expected pattern (FS-XXX or FS-XXXE for external)
69
+ if (!/^FS-\d{3,}E?$/.test(featureId)) {
70
70
  throw new Error(
71
71
  `UserStoryIssueBuilder: Invalid featureId format "${featureId}".\n` +
72
- `Expected format: FS-XXX (e.g., "FS-047", "FS-123", "FS-1000").\n` +
72
+ `Expected format: FS-XXX or FS-XXXE (e.g., "FS-047", "FS-123E", "FS-1000").\n` +
73
73
  `This prevents incorrect issue titles like [SP-US-XXX] or [${featureId}][US-XXX].`
74
74
  );
75
75
  }
@@ -115,11 +115,11 @@ export class UserStoryIssueBuilder {
115
115
  const title = `[${this.featureId}][${frontmatter.id}] ${frontmatter.title}`;
116
116
 
117
117
  // ✅ SAFETY CHECK: Ensure title matches expected pattern (3+ digits)
118
- const titlePattern = /^\[FS-\d{3,}\]\[US-\d{3,}\] .+$/;
118
+ const titlePattern = /^\[FS-\d{3,}E?\]\[US-\d{3,}E?\] .+$/;
119
119
  if (!titlePattern.test(title)) {
120
120
  throw new Error(
121
121
  `Generated issue title has incorrect format: "${title}"\n` +
122
- `Expected: [FS-XXX][US-YYY] Title (3+ digits each)\n` +
122
+ `Expected: [FS-XXX][US-YYY] or [FS-XXXE][US-YYYE] Title (3+ digits each, E-suffix for external)\n` +
123
123
  `This indicates a bug in UserStoryIssueBuilder or invalid frontmatter.\n` +
124
124
  `Feature ID: ${this.featureId}\n` +
125
125
  `User Story ID: ${frontmatter.id}`
@@ -135,7 +135,7 @@ export class UserStoryIssueBuilder {
135
135
  bodyContent
136
136
  });
137
137
 
138
- // 5. Determine labels
138
+ // 5. Determine labels (v0.35.0: project from frontmatter, not body)
139
139
  const labels = this.buildLabels(frontmatter);
140
140
 
141
141
  return {
@@ -397,17 +397,12 @@ export class UserStoryIssueBuilder {
397
397
  data.tasks
398
398
  );
399
399
 
400
- // Header with metadata
401
- sections.push(`**Feature**: ${this.featureId}`);
402
- sections.push(`**Status**: ${this.capitalize(data.frontmatter.status)}`);
403
- sections.push(`**Priority**: ${data.frontmatter.priority || 'P2'}`);
404
- // ✅ FIX: Only output Project if defined and not "default"
405
- if (data.frontmatter.project && data.frontmatter.project !== 'default') {
406
- sections.push(`**Project**: ${data.frontmatter.project}`);
407
- }
408
- sections.push('');
400
+ // REMOVED: Metadata header (Feature, Status, Priority, Project)
401
+ // WHY: GitHub has NATIVE fields for this (labels, milestones)
402
+ // Body should contain ONLY actual work content (ACs, tasks, user story)
403
+ // See: .specweave/docs/internal/troubleshooting/CRITICAL-remove-metadata-header-from-github-issues.md
409
404
 
410
- // Progress section (NEW)
405
+ // Progress section
411
406
  sections.push(IssueStateManager.formatProgressMarkdown(progress));
412
407
  sections.push('');
413
408
 
@@ -568,6 +563,9 @@ export class UserStoryIssueBuilder {
568
563
  *
569
564
  * CRITICAL: Label names must match repository labels exactly!
570
565
  * Repository uses: status:complete, status:active, status:not_started
566
+ *
567
+ * v0.35.0: Project derived from frontmatter.project in us-*.md files.
568
+ * Living docs sync transforms spec.md **Project**: → us-*.md frontmatter project:
571
569
  */
572
570
  private buildLabels(frontmatter: UserStoryFrontmatter): string[] {
573
571
  const labels: string[] = ['user-story', 'specweave'];
@@ -607,9 +605,12 @@ export class UserStoryIssueBuilder {
607
605
  labels.push(frontmatter.priority.toLowerCase());
608
606
  }
609
607
 
610
- // Add project label
611
- if (frontmatter.project && frontmatter.project !== 'default') {
612
- labels.push(`project:${frontmatter.project}`);
608
+ // Add project label (v0.35.0: extract from frontmatter.project in us-*.md files)
609
+ // Living docs sync transforms spec.md **Project**: us-*.md frontmatter project:
610
+ // See CLAUDE.md "Two File Formats for Project Field" for architecture
611
+ const project = frontmatter.project?.toLowerCase();
612
+ if (project && project !== 'default') {
613
+ labels.push(`project:${project}`);
613
614
  }
614
615
 
615
616
  return labels;
@@ -295,7 +295,7 @@ Body: We need OAuth2 authentication with Google and GitHub providers...
295
295
 
296
296
  ### Example 3: Close Increment → Close Issue
297
297
 
298
- **SpecWeave**: `/specweave:done 0004` (all 48 tasks complete)
298
+ **SpecWeave**: `/sw:done 0004` (all 48 tasks complete)
299
299
 
300
300
  **GitHub**: Close issue #130 with comment:
301
301
  ```markdown
@@ -190,9 +190,9 @@ All GitHub issue content is generated by these builders:
190
190
 
191
191
  All GitHub sync commands use the Universal Hierarchy:
192
192
 
193
- - `/specweave-github:sync` - Sync increments via Feature/UserStory hierarchy
194
- - `/specweave-github:create-issue` - Create issue using standard format
195
- - `/specweave-github:update-user-story` - Update user story issue
193
+ - `/sw-github:sync` - Sync increments via Feature/UserStory hierarchy
194
+ - `/sw-github:create-issue` - Create issue using standard format
195
+ - `/sw-github:update-user-story` - Update user story issue
196
196
 
197
197
  ## Validation Checklist
198
198
 
@@ -14,7 +14,7 @@ description: Task-level GitHub issue tracking for SpecWeave increments. Provides
14
14
  - Blocking issue tracking
15
15
  - Task-level comments and discussions
16
16
 
17
- **Integration**: Works with `github-sync` skill and `/specweave:github:*` commands
17
+ **Integration**: Works with `github-sync` skill and `/sw:github:*` commands
18
18
 
19
19
  ---
20
20
 
@@ -171,7 +171,7 @@ plugins:
171
171
  ### Check Task Status
172
172
 
173
173
  ```bash
174
- /specweave:github:status 0004
174
+ /sw:github:status 0004
175
175
  ```
176
176
 
177
177
  Output:
@@ -196,7 +196,7 @@ Week 1: Foundation
196
196
  ### Sync Task Checklist
197
197
 
198
198
  ```bash
199
- /specweave:github:sync 0004 --tasks
199
+ /sw:github:sync 0004 --tasks
200
200
  ```
201
201
 
202
202
  Updates GitHub issue checklist to match current increment progress.
@@ -204,7 +204,7 @@ Updates GitHub issue checklist to match current increment progress.
204
204
  ### Comment on Task
205
205
 
206
206
  ```bash
207
- /specweave:github:comment 0004 T-008 "Cursor adapter completed, moving to testing phase"
207
+ /sw:github:comment 0004 T-008 "Cursor adapter completed, moving to testing phase"
208
208
  ```
209
209
 
210
210
  Posts custom comment to GitHub issue for specific task.
@@ -308,7 +308,7 @@ tasks:
308
308
  Generate time reports:
309
309
 
310
310
  ```bash
311
- /specweave:github:time-report 0004
311
+ /sw:github:time-report 0004
312
312
  ```
313
313
 
314
314
  Output:
@@ -458,7 +458,7 @@ Warn when tasks are behind schedule:
458
458
  **Checklist not updating?**
459
459
  - Verify `update_checklist: true` in config
460
460
  - Check GitHub API permissions (repo write access)
461
- - Manually sync: `/specweave:github:sync 0004 --tasks`
461
+ - Manually sync: `/sw:github:sync 0004 --tasks`
462
462
 
463
463
  **Comments not posting?**
464
464
  - Check `post_task_comments: true`
@@ -468,7 +468,7 @@ Warn when tasks are behind schedule:
468
468
  **Time tracking inaccurate?**
469
469
  - Verify task timestamps in `.metadata.yaml`
470
470
  - Check for manual edits to metadata
471
- - Re-sync: `/specweave:github:sync 0004 --force`
471
+ - Re-sync: `/sw:github:sync 0004 --force`
472
472
 
473
473
  ---
474
474
 
@@ -488,7 +488,7 @@ Warn when tasks are behind schedule:
488
488
 
489
489
  - **github-sync**: High-level increment ↔ issue synchronization
490
490
  - **github-manager agent**: AI agent for GitHub operations
491
- - **Commands**: All `/specweave:github:*` commands
491
+ - **Commands**: All `/sw:github:*` commands
492
492
 
493
493
  ---
494
494
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: github-sync
3
- description: Two-way synchronization between SpecWeave specs and GitHub Projects (push & pull 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-spec command instead.
3
+ description: Two-way synchronization between SpecWeave specs and GitHub Projects (push & pull 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 /sw-github:sync-spec command instead.
4
4
  ---
5
5
 
6
6
  # GitHub Sync - Two-way Spec ↔ Project Synchronization
@@ -9,7 +9,7 @@ description: Two-way synchronization between SpecWeave specs and GitHub Projects
9
9
 
10
10
  **Default Behavior**: **Two-way sync** (push & pull) - Changes in either system are automatically synchronized
11
11
 
12
- **⚠️ IMPORTANT**: This skill provides HELP and GUIDANCE about GitHub sync. For actual syncing, users should use the `/specweave-github:sync-spec` command directly. This skill should NOT auto-activate when the command is being invoked.
12
+ **⚠️ IMPORTANT**: This skill provides HELP and GUIDANCE about GitHub sync. For actual syncing, users should use the `/sw-github:sync-spec` command directly. This skill should NOT auto-activate when the command is being invoked.
13
13
 
14
14
  ## When to Activate
15
15
 
@@ -20,11 +20,11 @@ description: Two-way synchronization between SpecWeave specs and GitHub Projects
20
20
  - User needs help configuring GitHub integration
21
21
 
22
22
  ❌ **Do NOT activate when**:
23
- - User invokes `/specweave-github:sync-spec` command (command handles it)
23
+ - User invokes `/sw-github:sync-spec` command (command handles it)
24
24
  - Command is already running (avoid duplicate invocation)
25
25
  - Task completion hook is syncing (automatic process)
26
26
 
27
- **Integration**: Works with `/specweave-github:sync-spec` command
27
+ **Integration**: Works with `/sw-github:sync-spec` command
28
28
 
29
29
  ---
30
30
 
@@ -176,7 +176,7 @@ As a developer, I want to install SpecWeave via NPM so that I can use it in my p
176
176
 
177
177
  **Use Case**: Import existing GitHub Projects as SpecWeave specs
178
178
 
179
- **Command**: `/specweave-github:import-project <project-number>`
179
+ **Command**: `/sw-github:import-project <project-number>`
180
180
 
181
181
  **Actions**:
182
182
  1. Fetch project via GitHub GraphQL API
@@ -238,7 +238,7 @@ gh auth status
238
238
  ### Sync Spec to GitHub
239
239
 
240
240
  ```bash
241
- /specweave-github:sync-spec spec-001
241
+ /sw-github:sync-spec spec-001
242
242
  ```
243
243
 
244
244
  Creates or updates GitHub Project for spec-001.
@@ -246,7 +246,7 @@ Creates or updates GitHub Project for spec-001.
246
246
  ### Sync All Specs
247
247
 
248
248
  ```bash
249
- /specweave-github:sync-spec --all
249
+ /sw-github:sync-spec --all
250
250
  ```
251
251
 
252
252
  Syncs all specs to GitHub Projects.
@@ -254,7 +254,7 @@ Syncs all specs to GitHub Projects.
254
254
  ### Import Project
255
255
 
256
256
  ```bash
257
- /specweave-github:import-project 123
257
+ /sw-github:import-project 123
258
258
  ```
259
259
 
260
260
  Imports GitHub Project #123 as a SpecWeave spec.
@@ -262,7 +262,7 @@ Imports GitHub Project #123 as a SpecWeave spec.
262
262
  ### Check Status
263
263
 
264
264
  ```bash
265
- /specweave-github:status spec-001
265
+ /sw-github:status spec-001
266
266
  ```
267
267
 
268
268
  Shows sync status (project ID, last sync time, progress %).
@@ -283,11 +283,11 @@ PM: Creates .specweave/docs/internal/specs/spec-005-user-auth.md
283
283
  → Issues created for each user story
284
284
 
285
285
  # 3. Implement increments
286
- /specweave:increment "Add login flow"
286
+ /sw:increment "Add login flow"
287
287
  → Increment 0010 created (implements US-001, US-002)
288
288
 
289
289
  # 4. Work on tasks
290
- /specweave:do
290
+ /sw:do
291
291
  → Task completed
292
292
  → Hook fires
293
293
  → Spec updated (AC marked complete)
@@ -328,7 +328,7 @@ The spec is always the source of truth. GitHub Projects are a mirror for visibil
328
328
  2. Manual edits to project/issue body/title
329
329
 
330
330
  **Resolution**:
331
- - Run `/specweave-github:sync-spec spec-001 --force` to overwrite project from spec
331
+ - Run `/sw-github:sync-spec spec-001 --force` to overwrite project from spec
332
332
  - Or manually update spec metadata to match project
333
333
 
334
334
  ---
@@ -386,7 +386,7 @@ The spec is always the source of truth. GitHub Projects are a mirror for visibil
386
386
  **Progress not updating?**
387
387
  - Check `autoSyncSpecs: true` in config
388
388
  - Verify hook execution: `.specweave/logs/hooks-debug.log`
389
- - Manually sync: `/specweave-github:sync-spec spec-001`
389
+ - Manually sync: `/sw-github:sync-spec spec-001`
390
390
 
391
391
  ---
392
392
 
@@ -462,7 +462,7 @@ For monorepos with multiple GitHub repositories:
462
462
 
463
463
  - **github-issue-tracker**: Track individual tasks as issue comments (DEPRECATED - use spec sync instead)
464
464
  - **github-manager agent**: AI agent for GitHub operations
465
- - **Commands**: `/specweave-github:sync-spec`, `/specweave-github:import-project`, `/specweave-github:status`
465
+ - **Commands**: `/sw-github:sync-spec`, `/sw-github:import-project`, `/sw-github:status`
466
466
 
467
467
  ---
468
468
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "specweave-infrastructure",
2
+ "name": "sw-infra",
3
3
  "description": "Cloud infrastructure provisioning and monitoring. Includes Hetzner Cloud provisioning, Prometheus/Grafana setup, distributed tracing (Jaeger/Tempo), and SLO implementation. Focus on cost-effective, production-ready infrastructure.",
4
4
  "version": "0.24.0",
5
5
  "author": {
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: specweave-infrastructure:monitor-setup
2
+ name: sw-infra:monitor-setup
3
3
  description: Set up comprehensive monitoring and observability with Prometheus, Grafana, distributed tracing, and log aggregation
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: specweave-infrastructure:slo-implement
2
+ name: sw-infra:slo-implement
3
3
  description: Implement Service Level Objectives (SLOs) with reliability standards, SLIs, and error budget-based engineering practices
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "specweave-jira",
2
+ "name": "sw-jira",
3
3
  "description": "JIRA integration for SpecWeave increments. Bidirectional sync between SpecWeave increments and JIRA epics/stories. Automatically creates JIRA issues from increments, tracks progress, and updates status.",
4
4
  "version": "0.24.0",
5
5
  "author": {
@@ -58,7 +58,7 @@ if (localStatus !== externalStatus) {
58
58
  - MUST be 100% complete to close
59
59
  - All tasks completed
60
60
  - All tests passing
61
- - `/specweave:done` validates strictly
61
+ - `/sw:done` validates strictly
62
62
  - Can be deleted after completion
63
63
 
64
64
  2. **Spec Lifecycle** (Flexible):
@@ -85,7 +85,7 @@ Verify hooks fire correctly:
85
85
 
86
86
  ```bash
87
87
  # Check 1: Post-increment completion
88
- Event: /specweave:done completes
88
+ Event: /sw:done completes
89
89
  Expected: Living docs updated → Sync triggered
90
90
  Validate:
91
91
  - Hook fires within 5 seconds
@@ -294,7 +294,7 @@ Timeline:
294
294
  Day 3:
295
295
  - All tasks complete
296
296
  - Tests passing
297
- - /specweave:done executed
297
+ - /sw:done executed
298
298
  - Increment: closed
299
299
  - JIRA status: In Progress (from JIRA)
300
300
  - Spec status: in_progress (from JIRA)