specweave 0.33.4 → 0.33.6

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 (719) hide show
  1. package/.claude-plugin/README.md +13 -13
  2. package/.claude-plugin/marketplace.json +26 -37
  3. package/CLAUDE.md +445 -80
  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/jobs.js +19 -2
  69. package/dist/src/cli/commands/jobs.js.map +1 -1
  70. package/dist/src/cli/commands/living-docs.d.ts +1 -0
  71. package/dist/src/cli/commands/living-docs.d.ts.map +1 -1
  72. package/dist/src/cli/commands/living-docs.js +19 -3
  73. package/dist/src/cli/commands/living-docs.js.map +1 -1
  74. package/dist/src/cli/commands/migrate-to-multiproject.js +1 -1
  75. package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -1
  76. package/dist/src/cli/commands/migrate-to-profiles.js +1 -1
  77. package/dist/src/cli/commands/migrate-to-profiles.js.map +1 -1
  78. package/dist/src/cli/commands/next-command.d.ts +1 -1
  79. package/dist/src/cli/commands/next-command.js +9 -9
  80. package/dist/src/cli/commands/next-command.js.map +1 -1
  81. package/dist/src/cli/commands/notifications.js +3 -3
  82. package/dist/src/cli/commands/notifications.js.map +1 -1
  83. package/dist/src/cli/commands/plan/increment-detector.js +2 -2
  84. package/dist/src/cli/commands/plan/increment-detector.js.map +1 -1
  85. package/dist/src/cli/commands/plan/plan-orchestrator.d.ts +2 -2
  86. package/dist/src/cli/commands/plan/plan-orchestrator.js +2 -2
  87. package/dist/src/cli/commands/plan/plan-validator.js +2 -2
  88. package/dist/src/cli/commands/plan/plan-validator.js.map +1 -1
  89. package/dist/src/cli/commands/plan/types.d.ts +1 -1
  90. package/dist/src/cli/commands/plan/types.js +1 -1
  91. package/dist/src/cli/commands/plan-command.d.ts +3 -3
  92. package/dist/src/cli/commands/plan-command.js +12 -12
  93. package/dist/src/cli/commands/plan-command.js.map +1 -1
  94. package/dist/src/cli/commands/project.d.ts +77 -0
  95. package/dist/src/cli/commands/project.d.ts.map +1 -0
  96. package/dist/src/cli/commands/project.js +526 -0
  97. package/dist/src/cli/commands/project.js.map +1 -0
  98. package/dist/src/cli/commands/save.d.ts +49 -0
  99. package/dist/src/cli/commands/save.d.ts.map +1 -0
  100. package/dist/src/cli/commands/save.js +583 -0
  101. package/dist/src/cli/commands/save.js.map +1 -0
  102. package/dist/src/cli/commands/sync-spec-commits.js +15 -6
  103. package/dist/src/cli/commands/sync-spec-commits.js.map +1 -1
  104. package/dist/src/cli/commands/sync-spec-content.js +15 -6
  105. package/dist/src/cli/commands/sync-spec-content.js.map +1 -1
  106. package/dist/src/cli/helpers/init/ado-repo-cloning.js +2 -2
  107. package/dist/src/cli/helpers/init/ado-repo-cloning.js.map +1 -1
  108. package/dist/src/cli/helpers/init/bitbucket-repo-cloning.d.ts +1 -1
  109. package/dist/src/cli/helpers/init/bitbucket-repo-cloning.js +3 -3
  110. package/dist/src/cli/helpers/init/bitbucket-repo-cloning.js.map +1 -1
  111. package/dist/src/cli/helpers/init/brownfield-analysis.js +18 -18
  112. package/dist/src/cli/helpers/init/brownfield-analysis.js.map +1 -1
  113. package/dist/src/cli/helpers/init/directory-structure.d.ts.map +1 -1
  114. package/dist/src/cli/helpers/init/directory-structure.js +3 -0
  115. package/dist/src/cli/helpers/init/directory-structure.js.map +1 -1
  116. package/dist/src/cli/helpers/init/external-import-grouping.d.ts.map +1 -1
  117. package/dist/src/cli/helpers/init/external-import-grouping.js +11 -7
  118. package/dist/src/cli/helpers/init/external-import-grouping.js.map +1 -1
  119. package/dist/src/cli/helpers/init/external-import.js +18 -18
  120. package/dist/src/cli/helpers/init/external-import.js.map +1 -1
  121. package/dist/src/cli/helpers/init/github-repo-cloning.d.ts +1 -1
  122. package/dist/src/cli/helpers/init/github-repo-cloning.js +3 -3
  123. package/dist/src/cli/helpers/init/github-repo-cloning.js.map +1 -1
  124. package/dist/src/cli/helpers/init/initial-increment-generator.js +12 -12
  125. package/dist/src/cli/helpers/init/living-docs-preflight.js +5 -5
  126. package/dist/src/cli/helpers/init/living-docs-preflight.js.map +1 -1
  127. package/dist/src/cli/helpers/init/next-steps.js +9 -9
  128. package/dist/src/cli/helpers/init/next-steps.js.map +1 -1
  129. package/dist/src/cli/helpers/init/plugin-installer.js +3 -3
  130. package/dist/src/cli/helpers/init/plugin-installer.js.map +1 -1
  131. package/dist/src/cli/helpers/init/translation-config.js +9 -9
  132. package/dist/src/cli/helpers/init/translation-config.js.map +1 -1
  133. package/dist/src/cli/helpers/init/types.d.ts +1 -1
  134. package/dist/src/cli/helpers/init/types.d.ts.map +1 -1
  135. package/dist/src/cli/helpers/issue-tracker/ado.js +1 -1
  136. package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -1
  137. package/dist/src/cli/helpers/issue-tracker/github.js +1 -1
  138. package/dist/src/cli/helpers/issue-tracker/github.js.map +1 -1
  139. package/dist/src/cli/helpers/issue-tracker/index.js +2 -2
  140. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  141. package/dist/src/cli/helpers/issue-tracker/jira.js +1 -1
  142. package/dist/src/cli/helpers/issue-tracker/jira.js.map +1 -1
  143. package/dist/src/cli/update-status-line.js +1 -1
  144. package/dist/src/cli/update-status-line.js.map +1 -1
  145. package/dist/src/cli/workers/brownfield-worker.js +1 -1
  146. package/dist/src/cli/workers/brownfield-worker.js.map +1 -1
  147. package/dist/src/cli/workers/clone-worker.js +22 -5
  148. package/dist/src/cli/workers/clone-worker.js.map +1 -1
  149. package/dist/src/cli/workers/import-worker.js +1 -1
  150. package/dist/src/cli/workers/import-worker.js.map +1 -1
  151. package/dist/src/core/background/brownfield-launcher.js +4 -4
  152. package/dist/src/core/background/brownfield-launcher.js.map +1 -1
  153. package/dist/src/core/background/index.d.ts +3 -3
  154. package/dist/src/core/background/index.js +3 -3
  155. package/dist/src/core/background/job-dependency.d.ts.map +1 -1
  156. package/dist/src/core/background/job-dependency.js +1 -0
  157. package/dist/src/core/background/job-dependency.js.map +1 -1
  158. package/dist/src/core/background/job-launcher.d.ts +1 -1
  159. package/dist/src/core/background/job-launcher.js +5 -5
  160. package/dist/src/core/background/job-launcher.js.map +1 -1
  161. package/dist/src/core/background/job-manager.d.ts +8 -0
  162. package/dist/src/core/background/job-manager.d.ts.map +1 -1
  163. package/dist/src/core/background/job-manager.js +19 -1
  164. package/dist/src/core/background/job-manager.js.map +1 -1
  165. package/dist/src/core/background/types.d.ts +9 -1
  166. package/dist/src/core/background/types.d.ts.map +1 -1
  167. package/dist/src/core/background/types.js +8 -1
  168. package/dist/src/core/background/types.js.map +1 -1
  169. package/dist/src/core/brownfield/importer.js +1 -1
  170. package/dist/src/core/brownfield/importer.js.map +1 -1
  171. package/dist/src/core/config/config-manager.d.ts +7 -1
  172. package/dist/src/core/config/config-manager.d.ts.map +1 -1
  173. package/dist/src/core/config/config-manager.js +24 -2
  174. package/dist/src/core/config/config-manager.js.map +1 -1
  175. package/dist/src/core/config/single-project-migrator.d.ts +110 -0
  176. package/dist/src/core/config/single-project-migrator.d.ts.map +1 -0
  177. package/dist/src/core/config/single-project-migrator.js +179 -0
  178. package/dist/src/core/config/single-project-migrator.js.map +1 -0
  179. package/dist/src/core/config/types.d.ts +3 -3
  180. package/dist/src/core/credentials/credentials-manager.d.ts +25 -4
  181. package/dist/src/core/credentials/credentials-manager.d.ts.map +1 -1
  182. package/dist/src/core/credentials/credentials-manager.js +54 -15
  183. package/dist/src/core/credentials/credentials-manager.js.map +1 -1
  184. package/dist/src/core/deduplication/command-deduplicator.d.ts +4 -4
  185. package/dist/src/core/deduplication/command-deduplicator.d.ts.map +1 -1
  186. package/dist/src/core/deduplication/command-deduplicator.js +3 -3
  187. package/dist/src/core/external-tools/external-items-counter.d.ts +4 -4
  188. package/dist/src/core/external-tools/external-items-counter.js +4 -4
  189. package/dist/src/core/external-tools/external-items-display.js +4 -4
  190. package/dist/src/core/external-tools/external-items-display.js.map +1 -1
  191. package/dist/src/core/increment/completion-validator.js +3 -3
  192. package/dist/src/core/increment/completion-validator.js.map +1 -1
  193. package/dist/src/core/increment/conflict-resolver.js +2 -2
  194. package/dist/src/core/increment/conflict-resolver.js.map +1 -1
  195. package/dist/src/core/increment/desync-detector.d.ts +1 -1
  196. package/dist/src/core/increment/desync-detector.js +3 -3
  197. package/dist/src/core/increment/desync-detector.js.map +1 -1
  198. package/dist/src/core/increment/discipline-checker.js +2 -2
  199. package/dist/src/core/increment/discipline-checker.js.map +1 -1
  200. package/dist/src/core/increment/increment-archiver.js +4 -4
  201. package/dist/src/core/increment/increment-archiver.js.map +1 -1
  202. package/dist/src/core/increment/increment-utils.d.ts +53 -2
  203. package/dist/src/core/increment/increment-utils.d.ts.map +1 -1
  204. package/dist/src/core/increment/increment-utils.js +78 -7
  205. package/dist/src/core/increment/increment-utils.js.map +1 -1
  206. package/dist/src/core/increment/metadata-manager.js +6 -6
  207. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  208. package/dist/src/core/increment/metadata-validator.js +1 -1
  209. package/dist/src/core/increment/metadata-validator.js.map +1 -1
  210. package/dist/src/core/increment/recent-work-scanner.js +2 -2
  211. package/dist/src/core/increment/recent-work-scanner.js.map +1 -1
  212. package/dist/src/core/increment/spec-sync-manager.js +1 -1
  213. package/dist/src/core/increment/spec-sync-manager.js.map +1 -1
  214. package/dist/src/core/increment/status-auto-transition.d.ts +68 -1
  215. package/dist/src/core/increment/status-auto-transition.d.ts.map +1 -1
  216. package/dist/src/core/increment/status-auto-transition.js +141 -1
  217. package/dist/src/core/increment/status-auto-transition.js.map +1 -1
  218. package/dist/src/core/increment/status-change-sync-trigger.d.ts +1 -1
  219. package/dist/src/core/increment/status-change-sync-trigger.js +3 -3
  220. package/dist/src/core/increment/status-change-sync-trigger.js.map +1 -1
  221. package/dist/src/core/living-docs/cross-project-sync.d.ts +12 -0
  222. package/dist/src/core/living-docs/cross-project-sync.d.ts.map +1 -1
  223. package/dist/src/core/living-docs/cross-project-sync.js +33 -0
  224. package/dist/src/core/living-docs/cross-project-sync.js.map +1 -1
  225. package/dist/src/core/living-docs/feature-archiver.d.ts +3 -3
  226. package/dist/src/core/living-docs/feature-archiver.js +3 -3
  227. package/dist/src/core/living-docs/feature-consistency-validator.js +1 -1
  228. package/dist/src/core/living-docs/feature-consistency-validator.js.map +1 -1
  229. package/dist/src/core/living-docs/feature-id-manager.d.ts +5 -0
  230. package/dist/src/core/living-docs/feature-id-manager.d.ts.map +1 -1
  231. package/dist/src/core/living-docs/feature-id-manager.js +19 -1
  232. package/dist/src/core/living-docs/feature-id-manager.js.map +1 -1
  233. package/dist/src/core/living-docs/governance/standards-generator.js +1 -1
  234. package/dist/src/core/living-docs/governance/standards-generator.js.map +1 -1
  235. package/dist/src/core/living-docs/hierarchy-mapper.d.ts +5 -0
  236. package/dist/src/core/living-docs/hierarchy-mapper.d.ts.map +1 -1
  237. package/dist/src/core/living-docs/hierarchy-mapper.js +22 -2
  238. package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
  239. package/dist/src/core/living-docs/living-docs-sync.d.ts +1 -0
  240. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  241. package/dist/src/core/living-docs/living-docs-sync.js +77 -8
  242. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  243. package/dist/src/core/living-docs/project-detector.d.ts +9 -0
  244. package/dist/src/core/living-docs/project-detector.d.ts.map +1 -1
  245. package/dist/src/core/living-docs/project-detector.js +38 -3
  246. package/dist/src/core/living-docs/project-detector.js.map +1 -1
  247. package/dist/src/core/living-docs/suggestions-generator.js +1 -1
  248. package/dist/src/core/living-docs/suggestions-generator.js.map +1 -1
  249. package/dist/src/core/notifications/command-integration.js +1 -1
  250. package/dist/src/core/notifications/command-integration.js.map +1 -1
  251. package/dist/src/core/project/adapters/ado-project-adapter.d.ts +73 -0
  252. package/dist/src/core/project/adapters/ado-project-adapter.d.ts.map +1 -0
  253. package/dist/src/core/project/adapters/ado-project-adapter.js +304 -0
  254. package/dist/src/core/project/adapters/ado-project-adapter.js.map +1 -0
  255. package/dist/src/core/project/adapters/github-project-adapter.d.ts +76 -0
  256. package/dist/src/core/project/adapters/github-project-adapter.d.ts.map +1 -0
  257. package/dist/src/core/project/adapters/github-project-adapter.js +315 -0
  258. package/dist/src/core/project/adapters/github-project-adapter.js.map +1 -0
  259. package/dist/src/core/project/adapters/jira-project-adapter.d.ts +69 -0
  260. package/dist/src/core/project/adapters/jira-project-adapter.d.ts.map +1 -0
  261. package/dist/src/core/project/adapters/jira-project-adapter.js +241 -0
  262. package/dist/src/core/project/adapters/jira-project-adapter.js.map +1 -0
  263. package/dist/src/core/project/project-event-bus.d.ts +72 -0
  264. package/dist/src/core/project/project-event-bus.d.ts.map +1 -0
  265. package/dist/src/core/project/project-event-bus.js +150 -0
  266. package/dist/src/core/project/project-event-bus.js.map +1 -0
  267. package/dist/src/core/project/project-manager.d.ts +0 -22
  268. package/dist/src/core/project/project-manager.d.ts.map +1 -1
  269. package/dist/src/core/project/project-manager.js +5 -275
  270. package/dist/src/core/project/project-manager.js.map +1 -1
  271. package/dist/src/core/project/project-registry.d.ts +93 -0
  272. package/dist/src/core/project/project-registry.d.ts.map +1 -0
  273. package/dist/src/core/project/project-registry.js +448 -0
  274. package/dist/src/core/project/project-registry.js.map +1 -0
  275. package/dist/src/core/project/project-resolution.d.ts +229 -0
  276. package/dist/src/core/project/project-resolution.d.ts.map +1 -0
  277. package/dist/src/core/project/project-resolution.js +633 -0
  278. package/dist/src/core/project/project-resolution.js.map +1 -0
  279. package/dist/src/core/project/types/project-types.d.ts +214 -0
  280. package/dist/src/core/project/types/project-types.d.ts.map +1 -0
  281. package/dist/src/core/project/types/project-types.js +9 -0
  282. package/dist/src/core/project/types/project-types.js.map +1 -0
  283. package/dist/src/core/repo-structure/setup-summary.js +2 -2
  284. package/dist/src/core/repo-structure/setup-summary.js.map +1 -1
  285. package/dist/src/core/specs/spec-identifier-detector.d.ts.map +1 -1
  286. package/dist/src/core/specs/spec-identifier-detector.js +8 -5
  287. package/dist/src/core/specs/spec-identifier-detector.js.map +1 -1
  288. package/dist/src/core/status-line/status-line-updater.js +1 -1
  289. package/dist/src/core/status-line/status-line-updater.js.map +1 -1
  290. package/dist/src/core/types/increment-metadata.d.ts +3 -3
  291. package/dist/src/core/types/increment-metadata.js +3 -3
  292. package/dist/src/core/types/increment-metadata.js.map +1 -1
  293. package/dist/src/core/types/sync-profile.d.ts +1 -0
  294. package/dist/src/core/types/sync-profile.d.ts.map +1 -1
  295. package/dist/src/core/types/sync-profile.js.map +1 -1
  296. package/dist/src/core/validators/ac-presence-validator.d.ts +4 -4
  297. package/dist/src/core/validators/ac-presence-validator.js +3 -3
  298. package/dist/src/core/validators/ac-presence-validator.js.map +1 -1
  299. package/dist/src/core/workflow/backlog-scanner.d.ts +5 -0
  300. package/dist/src/core/workflow/backlog-scanner.d.ts.map +1 -1
  301. package/dist/src/core/workflow/backlog-scanner.js +14 -2
  302. package/dist/src/core/workflow/backlog-scanner.js.map +1 -1
  303. package/dist/src/core/workflow/phase-detector.js +17 -17
  304. package/dist/src/core/workflow/phase-detector.js.map +1 -1
  305. package/dist/src/core/workflow/types.d.ts +1 -1
  306. package/dist/src/core/workflow/types.d.ts.map +1 -1
  307. package/dist/src/core/workflow/workflow-orchestrator.d.ts +1 -1
  308. package/dist/src/core/workflow/workflow-orchestrator.js +9 -9
  309. package/dist/src/core/workflow/workflow-orchestrator.js.map +1 -1
  310. package/dist/src/hooks/scheduler-startup.js +1 -1
  311. package/dist/src/hooks/scheduler-startup.js.map +1 -1
  312. package/dist/src/importers/external-importer.d.ts +26 -5
  313. package/dist/src/importers/external-importer.d.ts.map +1 -1
  314. package/dist/src/importers/item-converter.d.ts.map +1 -1
  315. package/dist/src/importers/item-converter.js +19 -2
  316. package/dist/src/importers/item-converter.js.map +1 -1
  317. package/dist/src/importers/jira-importer.d.ts.map +1 -1
  318. package/dist/src/importers/jira-importer.js +15 -1
  319. package/dist/src/importers/jira-importer.js.map +1 -1
  320. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +17 -1
  321. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -1
  322. package/dist/src/integrations/jira/jira-incremental-mapper.js +20 -12
  323. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -1
  324. package/dist/src/integrations/jira/jira-mapper.d.ts +17 -1
  325. package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -1
  326. package/dist/src/integrations/jira/jira-mapper.js +13 -5
  327. package/dist/src/integrations/jira/jira-mapper.js.map +1 -1
  328. package/dist/src/living-docs/enterprise-analyzer.js +1 -1
  329. package/dist/src/living-docs/enterprise-analyzer.js.map +1 -1
  330. package/dist/src/living-docs/smart-doc-organizer.js +1 -1
  331. package/dist/src/living-docs/smart-doc-organizer.js.map +1 -1
  332. package/dist/src/sync/ado-reconciler.d.ts +5 -0
  333. package/dist/src/sync/ado-reconciler.d.ts.map +1 -1
  334. package/dist/src/sync/ado-reconciler.js +16 -4
  335. package/dist/src/sync/ado-reconciler.js.map +1 -1
  336. package/dist/src/sync/jira-reconciler.d.ts +3 -0
  337. package/dist/src/sync/jira-reconciler.d.ts.map +1 -1
  338. package/dist/src/sync/jira-reconciler.js +12 -5
  339. package/dist/src/sync/jira-reconciler.js.map +1 -1
  340. package/dist/src/types/dashboard-cache.d.ts +4 -2
  341. package/dist/src/types/dashboard-cache.d.ts.map +1 -1
  342. package/dist/src/types/dashboard-cache.js +1 -1
  343. package/dist/src/types/dashboard-cache.js.map +1 -1
  344. package/dist/src/utils/ac-embedder.d.ts +1 -1
  345. package/dist/src/utils/docs-preview/config-generator.d.ts.map +1 -1
  346. package/dist/src/utils/docs-preview/config-generator.js +4 -0
  347. package/dist/src/utils/docs-preview/config-generator.js.map +1 -1
  348. package/dist/src/utils/docs-preview/docusaurus-setup.js +2 -2
  349. package/dist/src/utils/docs-preview/docusaurus-setup.js.map +1 -1
  350. package/dist/src/utils/docs-preview/sidebar-builder.js +1 -1
  351. package/dist/src/utils/env-multi-project-parser.d.ts +17 -0
  352. package/dist/src/utils/env-multi-project-parser.d.ts.map +1 -1
  353. package/dist/src/utils/env-multi-project-parser.js +26 -1
  354. package/dist/src/utils/env-multi-project-parser.js.map +1 -1
  355. package/dist/src/utils/external-tool-drift-detector.d.ts +2 -2
  356. package/dist/src/utils/external-tool-drift-detector.js +6 -6
  357. package/dist/src/utils/external-tool-drift-detector.js.map +1 -1
  358. package/dist/src/utils/notification-constants.d.ts +8 -6
  359. package/dist/src/utils/notification-constants.d.ts.map +1 -1
  360. package/dist/src/utils/notification-constants.js +10 -8
  361. package/dist/src/utils/notification-constants.js.map +1 -1
  362. package/dist/src/utils/notification-manager.d.ts +36 -3
  363. package/dist/src/utils/notification-manager.d.ts.map +1 -1
  364. package/dist/src/utils/notification-manager.js +80 -49
  365. package/dist/src/utils/notification-manager.js.map +1 -1
  366. package/dist/src/utils/platform-utils.d.ts +12 -3
  367. package/dist/src/utils/platform-utils.d.ts.map +1 -1
  368. package/dist/src/utils/platform-utils.js +35 -16
  369. package/dist/src/utils/platform-utils.js.map +1 -1
  370. package/dist/src/utils/plugin-validator.js +11 -11
  371. package/dist/src/utils/plugin-validator.js.map +1 -1
  372. package/dist/src/validators/ac-coverage-validator.d.ts +1 -1
  373. package/dist/src/validators/ac-coverage-validator.js +1 -1
  374. package/package.json +3 -1
  375. package/plugins/PLUGINS-INDEX.md +1 -2
  376. package/plugins/specweave/.claude-plugin/plugin.json +1 -1
  377. package/plugins/specweave/COMMANDS.md +49 -49
  378. package/plugins/specweave/agents/pm/AGENT.md +18 -18
  379. package/plugins/specweave/agents/test-aware-planner/AGENT.md +7 -7
  380. package/plugins/specweave/agents/translator/AGENT.md +2 -2
  381. package/plugins/specweave/commands/{specweave-abandon.md → abandon.md} +20 -20
  382. package/plugins/specweave/commands/{specweave-analyze-standards.sh → analyze-standards.sh} +4 -4
  383. package/plugins/specweave/commands/{specweave-archive-features.md → archive-features.md} +7 -7
  384. package/plugins/specweave/commands/{specweave-archive.md → archive.md} +36 -36
  385. package/plugins/specweave/commands/{specweave-backlog.md → backlog.md} +24 -24
  386. package/plugins/specweave/commands/{specweave-check-hooks.md → check-hooks.md} +10 -10
  387. package/plugins/specweave/commands/{specweave-check-tests.md → check-tests.md} +14 -14
  388. package/plugins/specweave/commands/{specweave-costs.md → costs.md} +8 -8
  389. package/plugins/specweave/commands/{specweave-discrepancies.md → discrepancies.md} +15 -15
  390. package/plugins/specweave/commands/{specweave-discrepancy-to-increment.md → discrepancy-to-increment.md} +10 -10
  391. package/plugins/specweave/commands/{specweave-do.md → do.md} +37 -39
  392. package/plugins/specweave/commands/{specweave-done.md → done.md} +23 -23
  393. package/plugins/specweave/commands/{specweave-embed-acs.md → embed-acs.md} +21 -21
  394. package/plugins/specweave/commands/{specweave-external.md → external.md} +11 -11
  395. package/plugins/specweave/commands/{specweave-fix-duplicates.md → fix-duplicates.md} +16 -16
  396. package/plugins/specweave/commands/{specweave-import-docs.md → import-docs.md} +7 -7
  397. package/plugins/specweave/commands/{specweave-import-external.md → import-external.md} +9 -9
  398. package/plugins/specweave/commands/{specweave-increment.md → increment.md} +17 -17
  399. package/plugins/specweave/commands/{specweave-jobs.md → jobs.md} +28 -28
  400. package/plugins/specweave/commands/judge-llm.md +296 -0
  401. package/plugins/specweave/commands/{specweave-living-docs.md → living-docs.md} +72 -29
  402. package/plugins/specweave/commands/migrate-config.md +2 -2
  403. package/plugins/specweave/commands/{specweave-next.md → next.md} +20 -20
  404. package/plugins/specweave/commands/{specweave-notifications.md → notifications.md} +11 -11
  405. package/plugins/specweave/commands/{specweave-organize-docs.md → organize-docs.md} +9 -9
  406. package/plugins/specweave/commands/{specweave-pause.md → pause.md} +19 -19
  407. package/plugins/specweave/commands/{specweave-plan.md → plan.md} +19 -19
  408. package/plugins/specweave/commands/{specweave-progress.md → progress.md} +6 -6
  409. package/plugins/specweave/commands/{specweave-qa.md → qa.md} +15 -15
  410. package/plugins/specweave/commands/{specweave-reopen.md → reopen.md} +41 -41
  411. package/plugins/specweave/commands/{specweave-restore-feature.md → restore-feature.md} +6 -6
  412. package/plugins/specweave/commands/{specweave-restore.md → restore.md} +26 -26
  413. package/plugins/specweave/commands/{specweave-resume.md → resume.md} +33 -33
  414. package/plugins/specweave/commands/revert-wip-limit.md +4 -4
  415. package/plugins/specweave/commands/{specweave-save.md → save.md} +34 -34
  416. package/plugins/specweave/commands/{specweave-status.md → status.md} +29 -29
  417. package/plugins/specweave/commands/{specweave.md → sw.md} +28 -28
  418. package/plugins/specweave/commands/{specweave-sync-acs.md → sync-acs.md} +12 -12
  419. package/plugins/specweave/commands/sync-diagnostics.md +5 -5
  420. package/plugins/specweave/commands/{specweave-sync-docs.md → sync-docs.md} +7 -7
  421. package/plugins/specweave/commands/{specweave-sync-logs.md → sync-logs.md} +14 -14
  422. package/plugins/specweave/commands/{specweave-sync-monitor.md → sync-monitor.md} +5 -5
  423. package/plugins/specweave/commands/{specweave-sync-progress.md → sync-progress.md} +38 -38
  424. package/plugins/specweave/commands/{specweave-sync-specs.md → sync-specs.md} +17 -17
  425. package/plugins/specweave/commands/{specweave-sync-status.md → sync-status.md} +16 -16
  426. package/plugins/specweave/commands/{specweave-sync-tasks.md → sync-tasks.md} +13 -13
  427. package/plugins/specweave/commands/{specweave-tdd-cycle.md → tdd-cycle.md} +1 -1
  428. package/plugins/specweave/commands/{specweave-tdd-green.md → tdd-green.md} +1 -1
  429. package/plugins/specweave/commands/{specweave-tdd-red.md → tdd-red.md} +1 -1
  430. package/plugins/specweave/commands/{specweave-tdd-refactor.md → tdd-refactor.md} +1 -1
  431. package/plugins/specweave/commands/{specweave-translate.md → translate.md} +17 -17
  432. package/plugins/specweave/commands/{specweave-update-scope.md → update-scope.md} +8 -8
  433. package/plugins/specweave/commands/{specweave-update-status.md → update-status.md} +6 -6
  434. package/plugins/specweave/commands/{specweave-validate-features.md → validate-features.md} +8 -8
  435. package/plugins/specweave/commands/{specweave-validate.md → validate.md} +20 -20
  436. package/plugins/specweave/commands/{specweave-workflow.md → workflow.md} +40 -40
  437. package/plugins/specweave/hooks/README.md +5 -5
  438. package/plugins/specweave/hooks/config-env-separator.sh +99 -0
  439. package/plugins/specweave/hooks/github-metadata-guard.sh +73 -0
  440. package/plugins/specweave/hooks/hooks.json +41 -1
  441. package/plugins/specweave/hooks/post-first-increment.sh +2 -2
  442. package/plugins/specweave/hooks/post-increment-completion.sh +7 -7
  443. package/plugins/specweave/hooks/post-increment-planning.sh +11 -11
  444. package/plugins/specweave/hooks/post-increment-status-change.sh +1 -1
  445. package/plugins/specweave/hooks/post-metadata-change.sh +1 -1
  446. package/plugins/specweave/hooks/post-spec-update.sh +2 -2
  447. package/plugins/specweave/hooks/post-task-completion.sh +2 -2
  448. package/plugins/specweave/hooks/pre-increment-start.sh +7 -7
  449. package/plugins/specweave/hooks/project-folder-guard.sh +272 -0
  450. package/plugins/specweave/hooks/spec-project-validator.sh +68 -47
  451. package/plugins/specweave/hooks/user-prompt-submit.sh +27 -27
  452. package/plugins/specweave/hooks/v2/guards/completion-guard.sh +2 -2
  453. package/plugins/specweave/hooks/v2/guards/metadata-json-guard.sh +87 -0
  454. package/plugins/specweave/hooks/v2/guards/metadata-json-guard.test.sh +302 -0
  455. package/plugins/specweave/hooks/v2/guards/per-us-project-validator.sh +72 -18
  456. package/plugins/specweave/hooks/v2/guards/per-us-project-validator.test.sh +406 -0
  457. package/plugins/specweave/hooks/v2/handlers/github-sync-handler.sh +1 -1
  458. package/plugins/specweave/lib/hooks/consolidated-sync.js +35 -5
  459. package/plugins/specweave/lib/hooks/invoke-translator-skill.js +2 -2
  460. package/plugins/specweave/lib/hooks/invoke-translator-skill.ts +2 -2
  461. package/plugins/specweave/lib/hooks/prepare-reflection-context.js +1 -1
  462. package/plugins/specweave/lib/hooks/prepare-reflection-context.ts +1 -1
  463. package/plugins/specweave/lib/hooks/sync-living-docs.js +5 -5
  464. package/plugins/specweave/lib/hooks/translate-file.d.ts +1 -1
  465. package/plugins/specweave/lib/hooks/translate-file.js +2 -2
  466. package/plugins/specweave/lib/hooks/translate-file.ts +3 -3
  467. package/plugins/specweave/lib/hooks/us-completion-orchestrator.js +1 -1
  468. package/plugins/specweave/lib/hooks/us-completion-orchestrator.ts +2 -2
  469. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +6 -6
  470. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
  471. package/plugins/specweave/lib/vendor/core/increment/status-auto-transition.d.ts +113 -0
  472. package/plugins/specweave/lib/vendor/core/increment/status-auto-transition.js +318 -0
  473. package/plugins/specweave/lib/vendor/core/increment/status-auto-transition.js.map +1 -0
  474. package/plugins/specweave/lib/vendor/core/types/increment-metadata.d.ts +3 -3
  475. package/plugins/specweave/lib/vendor/core/types/increment-metadata.js +3 -3
  476. package/plugins/specweave/lib/vendor/core/types/increment-metadata.js.map +1 -1
  477. package/plugins/specweave/scripts/README.md +9 -9
  478. package/plugins/specweave/scripts/cleanup-state.sh +1 -1
  479. package/plugins/specweave/scripts/jobs.js +2 -2
  480. package/plugins/specweave/scripts/progress.js +6 -6
  481. package/plugins/specweave/scripts/read-costs.sh +3 -3
  482. package/plugins/specweave/scripts/read-jobs.sh +8 -8
  483. package/plugins/specweave/scripts/read-progress.sh +17 -10
  484. package/plugins/specweave/scripts/read-status.sh +7 -7
  485. package/plugins/specweave/scripts/read-workflow.sh +18 -18
  486. package/plugins/specweave/scripts/rebuild-dashboard-cache.sh +6 -5
  487. package/plugins/specweave/scripts/session-watchdog.sh +14 -8
  488. package/plugins/specweave/scripts/status.js +7 -7
  489. package/plugins/specweave/scripts/update-dashboard-cache.sh +28 -10
  490. package/plugins/specweave/skills/SKILLS-INDEX.md +4 -4
  491. package/plugins/specweave/skills/archive-increments/SKILL.md +15 -15
  492. package/plugins/specweave/skills/brownfield-analyzer/SKILL.md +5 -5
  493. package/plugins/specweave/skills/code-standards-analyzer/SKILL.md +4 -4
  494. package/plugins/specweave/skills/context-loader/SKILL.md +1 -1
  495. package/plugins/specweave/skills/{specweave-detector → detector}/SKILL.md +5 -5
  496. package/plugins/specweave/skills/discrepancy-viewer.md +4 -4
  497. package/plugins/specweave/skills/external-sync-wizard/SKILL.md +24 -24
  498. package/plugins/specweave/skills/{specweave-framework → framework}/SKILL.md +33 -33
  499. package/plugins/specweave/skills/increment-planner/SKILL.md +25 -24
  500. package/plugins/specweave/skills/increment-planner/templates/spec-multi-project.md +6 -16
  501. package/plugins/specweave/skills/increment-planner/templates/spec-single-project.md +6 -12
  502. package/plugins/specweave/skills/increment-quality-judge-v2/SKILL.md +6 -6
  503. package/plugins/specweave/skills/increment-work-router/SKILL.md +23 -23
  504. package/plugins/specweave/skills/instant-status/SKILL.md +7 -7
  505. package/plugins/specweave/skills/plugin-validator/SKILL.md +9 -9
  506. package/plugins/specweave/skills/pm-closure-validation/SKILL.md +4 -4
  507. package/plugins/specweave/skills/progress-sync/SKILL.md +51 -51
  508. package/plugins/specweave/skills/project-kickstarter/SKILL.md +11 -11
  509. package/plugins/specweave/skills/role-orchestrator/README.md +1 -1
  510. package/plugins/specweave/skills/role-orchestrator/SKILL.md +4 -4
  511. package/plugins/specweave/skills/smart-reopen-detector/SKILL.md +17 -17
  512. package/plugins/specweave/skills/spec-generator/SKILL.md +6 -6
  513. package/plugins/specweave/skills/tdd-workflow/SKILL.md +21 -21
  514. package/plugins/specweave/skills/translator/SKILL.md +4 -4
  515. package/plugins/specweave/skills/umbrella-repo-detector/SKILL.md +5 -5
  516. package/plugins/specweave-ado/.claude-plugin/plugin.json +1 -1
  517. package/plugins/specweave-ado/agents/ado-manager/AGENT.md +4 -4
  518. package/plugins/specweave-ado/agents/ado-sync-judge/AGENT.md +4 -4
  519. package/plugins/specweave-ado/commands/cleanup-duplicates.md +9 -9
  520. package/plugins/specweave-ado/commands/clone.md +17 -17
  521. package/plugins/specweave-ado/commands/close.md +10 -10
  522. package/plugins/specweave-ado/commands/create.md +8 -8
  523. package/plugins/specweave-ado/commands/import-areas.md +15 -15
  524. package/plugins/specweave-ado/commands/import-projects.md +12 -12
  525. package/plugins/specweave-ado/commands/pull.md +25 -25
  526. package/plugins/specweave-ado/commands/push.md +20 -20
  527. package/plugins/specweave-ado/commands/reconcile.md +7 -7
  528. package/plugins/specweave-ado/commands/status.md +7 -7
  529. package/plugins/specweave-ado/commands/sync.md +17 -17
  530. package/plugins/specweave-ado/hooks/post-living-docs-update.sh +2 -2
  531. package/plugins/specweave-ado/lib/ado-project-detector.js +1 -1
  532. package/plugins/specweave-ado/lib/ado-project-detector.ts +1 -1
  533. package/plugins/specweave-ado/skills/{specweave-ado-mapper → ado-mapper}/SKILL.md +2 -2
  534. package/plugins/specweave-ado/skills/ado-multi-project/SKILL.md +6 -6
  535. package/plugins/specweave-ado/skills/ado-resource-validator/SKILL.md +5 -5
  536. package/plugins/specweave-ado/skills/ado-sync/SKILL.md +19 -19
  537. package/plugins/specweave-alternatives/.claude-plugin/plugin.json +1 -1
  538. package/plugins/specweave-alternatives/commands/alternatives-analyze.md +14 -14
  539. package/plugins/specweave-backend/.claude-plugin/plugin.json +1 -1
  540. package/plugins/specweave-confluent/.claude-plugin/plugin.json +1 -1
  541. package/plugins/specweave-cost-optimizer/.claude-plugin/plugin.json +1 -1
  542. package/plugins/specweave-cost-optimizer/commands/cost-analyze.md +1 -1
  543. package/plugins/specweave-cost-optimizer/commands/cost-optimize.md +1 -1
  544. package/plugins/specweave-diagrams/.claude-plugin/plugin.json +1 -1
  545. package/plugins/specweave-diagrams/commands/diagrams-generate.md +1 -1
  546. package/plugins/specweave-docs/.claude-plugin/plugin.json +1 -1
  547. package/plugins/specweave-docs/commands/build.md +9 -9
  548. package/plugins/specweave-docs/commands/generate.md +22 -22
  549. package/plugins/specweave-docs/commands/health.md +10 -10
  550. package/plugins/specweave-docs/commands/init.md +9 -9
  551. package/plugins/specweave-docs/commands/organize.md +10 -10
  552. package/plugins/specweave-docs/commands/validate.md +9 -9
  553. package/plugins/specweave-docs/commands/view.md +391 -0
  554. package/plugins/specweave-docs/skills/preview/SKILL.md +60 -21
  555. package/plugins/specweave-figma/.claude-plugin/plugin.json +1 -1
  556. package/plugins/specweave-figma/commands/figma-import.md +1 -1
  557. package/plugins/specweave-figma/commands/figma-to-react.md +1 -1
  558. package/plugins/specweave-figma/commands/figma-tokens.md +1 -1
  559. package/plugins/specweave-frontend/.claude-plugin/plugin.json +1 -1
  560. package/plugins/specweave-frontend/agents/frontend-architect/README.md +5 -5
  561. package/plugins/specweave-frontend/commands/component-generate.md +1 -1
  562. package/plugins/specweave-frontend/commands/design-system-init.md +1 -1
  563. package/plugins/specweave-frontend/commands/frontend-scaffold.md +1 -1
  564. package/plugins/specweave-frontend/commands/nextjs-setup.md +1 -1
  565. package/plugins/specweave-github/.claude-plugin/plugin.json +1 -1
  566. package/plugins/specweave-github/MULTI-PROJECT-SYNC-ARCHITECTURE.md +4 -4
  567. package/plugins/specweave-github/SYNC-ARCHITECTURE-FIX-SUMMARY.md +18 -18
  568. package/plugins/specweave-github/agents/github-manager/AGENT.md +8 -8
  569. package/plugins/specweave-github/commands/cleanup-duplicates.md +8 -8
  570. package/plugins/specweave-github/commands/close.md +25 -25
  571. package/plugins/specweave-github/commands/create.md +17 -17
  572. package/plugins/specweave-github/commands/pull.md +12 -12
  573. package/plugins/specweave-github/commands/push.md +12 -12
  574. package/plugins/specweave-github/commands/reconcile.md +7 -7
  575. package/plugins/specweave-github/commands/status.md +24 -24
  576. package/plugins/specweave-github/commands/sync.md +34 -34
  577. package/plugins/specweave-github/commands/update-user-story.md +6 -6
  578. package/plugins/specweave-github/hooks/README.md +8 -8
  579. package/plugins/specweave-github/hooks/post-task-completion.sh +2 -2
  580. package/plugins/specweave-github/lib/ThreeLayerSyncManager.js +12 -4
  581. package/plugins/specweave-github/lib/ThreeLayerSyncManager.ts +16 -4
  582. package/plugins/specweave-github/lib/completion-calculator.js +3 -1
  583. package/plugins/specweave-github/lib/completion-calculator.ts +6 -0
  584. package/plugins/specweave-github/lib/duplicate-detector.js +12 -6
  585. package/plugins/specweave-github/lib/duplicate-detector.ts +22 -6
  586. package/plugins/specweave-github/lib/github-board-resolver.js +7 -2
  587. package/plugins/specweave-github/lib/github-board-resolver.ts +13 -2
  588. package/plugins/specweave-github/lib/github-client-v2.js +29 -18
  589. package/plugins/specweave-github/lib/github-client-v2.ts +33 -18
  590. package/plugins/specweave-github/lib/github-feature-sync.js +41 -11
  591. package/plugins/specweave-github/lib/github-feature-sync.ts +52 -11
  592. package/plugins/specweave-github/lib/github-hierarchical-sync.js +6 -1
  593. package/plugins/specweave-github/lib/github-hierarchical-sync.ts +12 -1
  594. package/plugins/specweave-github/lib/github-increment-sync-cli.js +35 -17
  595. package/plugins/specweave-github/lib/github-increment-sync-cli.ts +44 -16
  596. package/plugins/specweave-github/lib/github-issue-updater.js +8 -3
  597. package/plugins/specweave-github/lib/github-issue-updater.ts +16 -3
  598. package/plugins/specweave-github/lib/github-spec-sync.js +14 -4
  599. package/plugins/specweave-github/lib/github-spec-sync.ts +19 -4
  600. package/plugins/specweave-github/lib/github-sync-bidirectional.js +8 -3
  601. package/plugins/specweave-github/lib/github-sync-bidirectional.ts +14 -3
  602. package/plugins/specweave-github/lib/github-sync-increment-changes.js +9 -4
  603. package/plugins/specweave-github/lib/github-sync-increment-changes.ts +15 -4
  604. package/plugins/specweave-github/lib/increment-issue-builder.js +23 -10
  605. package/plugins/specweave-github/lib/increment-issue-builder.ts +29 -11
  606. package/plugins/specweave-github/lib/user-story-content-builder.js +19 -16
  607. package/plugins/specweave-github/lib/user-story-content-builder.ts +24 -19
  608. package/plugins/specweave-github/lib/user-story-issue-builder.js +10 -13
  609. package/plugins/specweave-github/lib/user-story-issue-builder.ts +20 -19
  610. package/plugins/specweave-github/reference/github-specweave-mapping.md +1 -1
  611. package/plugins/specweave-github/skills/github-issue-standard/SKILL.md +3 -3
  612. package/plugins/specweave-github/skills/github-issue-tracker/SKILL.md +8 -8
  613. package/plugins/specweave-github/skills/github-sync/SKILL.md +14 -14
  614. package/plugins/specweave-infrastructure/.claude-plugin/plugin.json +1 -1
  615. package/plugins/specweave-infrastructure/commands/{specweave-infrastructure-monitor-setup.md → monitor-setup.md} +1 -1
  616. package/plugins/specweave-infrastructure/commands/{specweave-infrastructure-slo-implement.md → slo-implement.md} +1 -1
  617. package/plugins/specweave-jira/.claude-plugin/plugin.json +1 -1
  618. package/plugins/specweave-jira/agents/jira-sync-judge/AGENT.md +3 -3
  619. package/plugins/specweave-jira/commands/cleanup-duplicates.md +9 -9
  620. package/plugins/specweave-jira/commands/close.md +13 -13
  621. package/plugins/specweave-jira/commands/create.md +8 -8
  622. package/plugins/specweave-jira/commands/import-boards.md +15 -15
  623. package/plugins/specweave-jira/commands/import-projects-full.md +15 -15
  624. package/plugins/specweave-jira/commands/import-projects.md +10 -10
  625. package/plugins/specweave-jira/commands/pull.md +10 -10
  626. package/plugins/specweave-jira/commands/push.md +11 -11
  627. package/plugins/specweave-jira/commands/reconcile.md +7 -7
  628. package/plugins/specweave-jira/commands/status.md +16 -16
  629. package/plugins/specweave-jira/commands/sync.md +27 -27
  630. package/plugins/specweave-jira/skills/{specweave-jira-mapper → jira-mapper}/SKILL.md +2 -2
  631. package/plugins/specweave-jira/skills/jira-resource-validator/SKILL.md +4 -4
  632. package/plugins/specweave-jira/skills/jira-sync/SKILL.md +5 -5
  633. package/plugins/specweave-kafka/.claude-plugin/plugin.json +1 -1
  634. package/plugins/specweave-kafka/IMPLEMENTATION-COMPLETE.md +10 -10
  635. package/plugins/specweave-kafka/README.md +12 -12
  636. package/plugins/specweave-kafka/commands/deploy.md +5 -5
  637. package/plugins/specweave-kafka/commands/dev-env.md +2 -2
  638. package/plugins/specweave-kafka/commands/mcp-configure.md +3 -3
  639. package/plugins/specweave-kafka/commands/monitor-setup.md +3 -3
  640. package/plugins/specweave-kafka/skills/kafka-architecture/SKILL.md +4 -4
  641. package/plugins/specweave-kafka/skills/kafka-cli-tools/SKILL.md +5 -5
  642. package/plugins/specweave-kafka/skills/kafka-mcp-integration/SKILL.md +6 -6
  643. package/plugins/specweave-kafka-streams/.claude-plugin/plugin.json +1 -1
  644. package/plugins/specweave-kafka-streams/commands/topology.md +4 -4
  645. package/plugins/specweave-kubernetes/.claude-plugin/plugin.json +1 -1
  646. package/plugins/specweave-ml/.claude-plugin/plugin.json +1 -1
  647. package/plugins/specweave-ml/README.md +9 -9
  648. package/plugins/specweave-ml/commands/{specweave-ml-deploy.md → deploy.md} +1 -1
  649. package/plugins/specweave-ml/commands/{specweave-ml-evaluate.md → evaluate.md} +1 -1
  650. package/plugins/specweave-ml/commands/{specweave-ml-explain.md → explain.md} +1 -1
  651. package/plugins/specweave-ml/commands/{specweave-ml-pipeline.md → pipeline.md} +1 -1
  652. package/plugins/specweave-ml/skills/automl-optimizer/SKILL.md +1 -1
  653. package/plugins/specweave-ml/skills/data-visualizer/SKILL.md +1 -1
  654. package/plugins/specweave-ml/skills/experiment-tracker/SKILL.md +4 -4
  655. package/plugins/specweave-ml/skills/feature-engineer/SKILL.md +1 -1
  656. package/plugins/specweave-ml/skills/ml-deployment-helper/SKILL.md +2 -2
  657. package/plugins/specweave-ml/skills/ml-pipeline-orchestrator/SKILL.md +10 -10
  658. package/plugins/specweave-ml/skills/model-registry/SKILL.md +1 -1
  659. package/plugins/specweave-ml/skills/time-series-forecaster/SKILL.md +1 -1
  660. package/plugins/specweave-mobile/.claude-plugin/plugin.json +1 -1
  661. package/plugins/specweave-mobile/README.md +2 -2
  662. package/plugins/specweave-mobile/agents/mobile-architect/AGENT.md +2 -2
  663. package/plugins/specweave-mobile/skills/react-native-setup/SKILL.md +1 -1
  664. package/plugins/specweave-n8n/.claude-plugin/plugin.json +1 -1
  665. package/plugins/specweave-n8n/commands/workflow-template.md +4 -4
  666. package/plugins/specweave-payments/.claude-plugin/plugin.json +1 -1
  667. package/plugins/specweave-payments/commands/stripe-setup.md +1 -1
  668. package/plugins/specweave-payments/commands/subscription-flow.md +1 -1
  669. package/plugins/specweave-plugin-dev/.claude-plugin/plugin.json +1 -1
  670. package/plugins/specweave-plugin-dev/commands/plugin-create.md +1 -1
  671. package/plugins/specweave-plugin-dev/commands/plugin-publish.md +1 -1
  672. package/plugins/specweave-plugin-dev/commands/plugin-test.md +1 -1
  673. package/plugins/specweave-release/.claude-plugin/plugin.json +1 -1
  674. package/plugins/specweave-release/IMPLEMENTATION.md +14 -14
  675. package/plugins/specweave-release/README.md +33 -33
  676. package/plugins/specweave-release/agents/release-manager/AGENT.md +18 -18
  677. package/plugins/specweave-release/commands/{specweave-release-align.md → align.md} +19 -19
  678. package/plugins/specweave-release/commands/{specweave-release-init.md → init.md} +19 -19
  679. package/plugins/specweave-release/commands/{specweave-release-npm.md → npm.md} +14 -14
  680. package/plugins/specweave-release/commands/{specweave-release-platform.md → platform.md} +17 -17
  681. package/plugins/specweave-release/commands/{specweave-release-rc.md → rc.md} +37 -37
  682. package/plugins/specweave-release/hooks/post-task-completion.sh +1 -1
  683. package/plugins/specweave-release/skills/rc-manager/SKILL.md +12 -12
  684. package/plugins/specweave-release/skills/release-coordinator/SKILL.md +11 -11
  685. package/plugins/specweave-release/skills/release-strategy-advisor/SKILL.md +4 -4
  686. package/plugins/specweave-release/skills/version-aligner/SKILL.md +7 -7
  687. package/plugins/specweave-testing/.claude-plugin/plugin.json +1 -1
  688. package/plugins/specweave-testing/agents/qa-engineer/README.md +5 -5
  689. package/plugins/specweave-testing/commands/e2e-setup.md +1 -1
  690. package/plugins/specweave-testing/commands/test-coverage.md +1 -1
  691. package/plugins/specweave-testing/commands/test-generate.md +1 -1
  692. package/plugins/specweave-testing/commands/test-init.md +1 -1
  693. package/plugins/specweave-tooling/.claude-plugin/plugin.json +1 -1
  694. package/plugins/specweave-tooling/commands/{specweave-tooling-skill-create.md → skill-create.md} +1 -1
  695. package/plugins/specweave-tooling/commands/{specweave-tooling-skill-package.md → skill-package.md} +1 -1
  696. package/plugins/specweave-tooling/commands/{specweave-tooling-skill-validate.md → skill-validate.md} +1 -1
  697. package/plugins/specweave-ui/.claude-plugin/plugin.json +1 -1
  698. package/plugins/specweave-ui/commands/ui-automate.md +9 -9
  699. package/plugins/specweave-ui/commands/ui-inspect.md +6 -6
  700. package/src/templates/AGENTS.md.template +73 -77
  701. package/src/templates/CLAUDE.md.template +23 -19
  702. package/dist/src/cli/commands/switch-project.d.ts +0 -13
  703. package/dist/src/cli/commands/switch-project.d.ts.map +0 -1
  704. package/dist/src/cli/commands/switch-project.js +0 -78
  705. package/dist/src/cli/commands/switch-project.js.map +0 -1
  706. package/plugins/specweave/commands/specweave-init-multiproject.md +0 -146
  707. package/plugins/specweave/commands/specweave-judge.md +0 -276
  708. package/plugins/specweave-core/.claude-plugin/plugin.json +0 -21
  709. package/plugins/specweave-core/commands/architecture-review.md +0 -288
  710. package/plugins/specweave-core/commands/code-review.md +0 -213
  711. package/plugins/specweave-core/commands/refactor-plan.md +0 -249
  712. package/plugins/specweave-core/skills/code-quality/SKILL.md +0 -158
  713. package/plugins/specweave-core/skills/design-patterns/SKILL.md +0 -245
  714. package/plugins/specweave-core/skills/software-architecture/SKILL.md +0 -84
  715. package/plugins/specweave-docs/commands/preview.md +0 -274
  716. /package/plugins/specweave/skills/{specweave-framework → framework}/test-cases/test-1-increment-naming.yaml +0 -0
  717. /package/plugins/specweave/skills/{specweave-framework → framework}/test-cases/test-2-source-of-truth.yaml +0 -0
  718. /package/plugins/specweave/skills/{specweave-framework → framework}/test-cases/test-3-increment-discipline.yaml +0 -0
  719. /package/plugins/specweave/skills/{specweave-framework → framework}/test-cases/test-4-file-placement.yaml +0 -0
@@ -1,276 +0,0 @@
1
- ---
2
- name: specweave:judge
3
- description: Validate completed work using LLM-as-Judge pattern. Works on any files, not just increments.
4
- ---
5
-
6
- # /specweave:judge - Work Validation via Judge LLM
7
-
8
- Validate any completed work using the LLM-as-Judge pattern with deep reasoning.
9
-
10
- ## Purpose
11
-
12
- Use when you've completed work (files, git changes, any code) and want AI-powered validation:
13
- - Works on **any files** (not just SpecWeave increments)
14
- - Uses **chain-of-thought reasoning** for thorough analysis
15
- - Returns **clear verdict** with detailed reasoning
16
-
17
- ## Usage
18
-
19
- ```bash
20
- # Validate specific files
21
- /specweave:judge src/file.ts
22
- /specweave:judge "src/**/*.ts"
23
-
24
- # Validate git changes
25
- /specweave:judge --staged # Staged changes
26
- /specweave:judge --last-commit # Last commit
27
- /specweave:judge --diff main # Diff vs branch
28
-
29
- # Validation modes
30
- /specweave:judge src/file.ts --quick # Fast (~10s)
31
- /specweave:judge src/file.ts --deep # Thorough (~60s)
32
- /specweave:judge src/file.ts --strict # Fail on any concern
33
-
34
- # Additional options
35
- /specweave:judge src/file.ts --fix # Include fix suggestions
36
- /specweave:judge src/file.ts --export # Export report to markdown
37
- ```
38
-
39
- ## How It Works
40
-
41
- When you invoke `/specweave:judge`, Claude will:
42
-
43
- ### Step 1: Gather Input
44
-
45
- Determine what to validate:
46
- - If file paths provided → read those files
47
- - If `--staged` → get staged git changes
48
- - If `--last-commit` → get files from last commit
49
- - If `--diff <branch>` → get diff against branch
50
-
51
- ### Step 2: Analyze with Judge LLM Pattern
52
-
53
- Use chain-of-thought reasoning to evaluate:
54
-
55
- ```markdown
56
- <thinking>
57
- 1. **Read**: Understand what the code does
58
- 2. **Analyze**: Check for issues across dimensions:
59
- - Correctness: Does it work as intended?
60
- - Completeness: Are edge cases handled?
61
- - Security: Any vulnerabilities?
62
- - Performance: Any obvious issues?
63
- - Maintainability: Is it clean and clear?
64
- 3. **Evaluate**: Weigh findings by severity
65
- 4. **Decide**: Form verdict based on analysis
66
- </thinking>
67
- ```
68
-
69
- ### Step 3: Return Verdict
70
-
71
- ```
72
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
73
- JUDGE VERDICT: APPROVED | CONCERNS | REJECTED
74
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
75
-
76
- Confidence: 0.XX
77
- Files Analyzed: N
78
-
79
- REASONING:
80
- [Chain-of-thought explanation of findings]
81
-
82
- ISSUES (if any):
83
- 🔴 CRITICAL: [title]
84
- [description]
85
- 📍 [file:line]
86
- 💡 [suggestion]
87
-
88
- 🟡 HIGH: [title]
89
- ...
90
-
91
- 🟢 LOW: [title]
92
- ...
93
-
94
- VERDICT: [summary sentence]
95
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
96
- ```
97
-
98
- ## Verdict Meanings
99
-
100
- | Verdict | Meaning | Action |
101
- |---------|---------|--------|
102
- | **APPROVED** | Work looks good, no significant issues | Safe to proceed |
103
- | **CONCERNS** | Some issues found, worth addressing | Review and fix if time permits |
104
- | **REJECTED** | Critical issues found | Must fix before proceeding |
105
-
106
- ## Validation Modes
107
-
108
- ### Quick Mode (`--quick`)
109
- - Fast validation (~10 seconds)
110
- - Focuses on obvious issues
111
- - Good for frequent checks during development
112
- - Cost: ~$0.02-0.05
113
-
114
- ### Default Mode
115
- - Balanced validation (~30 seconds)
116
- - Thorough analysis of all dimensions
117
- - Good for pre-commit validation
118
- - Cost: ~$0.05-0.10
119
-
120
- ### Deep Mode (`--deep`)
121
- - Most thorough validation (~60 seconds)
122
- - Extended thinking for complex reasoning
123
- - Good for critical code or security review
124
- - Cost: ~$0.10-0.20
125
-
126
- ### Strict Mode (`--strict`)
127
- - Any concern results in REJECTED
128
- - Use for critical paths, security code, or CI gates
129
-
130
- ## Examples
131
-
132
- ### Example 1: Validate a new feature
133
-
134
- ```
135
- User: /specweave:judge src/core/auth/login.ts
136
-
137
- Claude:
138
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
139
- JUDGE VERDICT: APPROVED
140
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
141
-
142
- Confidence: 0.85
143
- Files Analyzed: 1
144
-
145
- REASONING:
146
- The login implementation follows security best practices:
147
- - Password hashing uses bcrypt with appropriate cost factor
148
- - Rate limiting is implemented (5 attempts, 15 min lockout)
149
- - Input validation prevents injection attacks
150
- - Error messages don't leak user existence
151
-
152
- No critical or high-severity issues found.
153
-
154
- VERDICT: Implementation is solid and ready for use.
155
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
156
- ```
157
-
158
- ### Example 2: Validate staged changes
159
-
160
- ```
161
- User: /specweave:judge --staged
162
-
163
- Claude:
164
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
165
- JUDGE VERDICT: CONCERNS
166
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
167
-
168
- Confidence: 0.78
169
- Files Analyzed: 3
170
-
171
- REASONING:
172
- Changes add new API endpoint but have some issues:
173
- - Missing input validation on user-provided data
174
- - Error messages could leak internal paths
175
- - No rate limiting on new endpoint
176
-
177
- 🟡 HIGH: Missing Input Validation
178
- User input passed directly to database query
179
- 📍 src/api/users.ts:45
180
- 💡 Add Zod schema validation before processing
181
-
182
- 🟡 HIGH: Information Disclosure
183
- Stack traces exposed in error responses
184
- 📍 src/api/users.ts:62
185
- 💡 Use production error handler that sanitizes output
186
-
187
- VERDICT: Address the input validation before merging.
188
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
189
- ```
190
-
191
- ### Example 3: Deep validation with fixes
192
-
193
- ```
194
- User: /specweave:judge src/payments/checkout.ts --deep --fix
195
-
196
- Claude:
197
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
198
- JUDGE VERDICT: REJECTED
199
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
200
-
201
- Confidence: 0.92
202
- Files Analyzed: 1
203
-
204
- REASONING:
205
- Critical security issue found in payment processing:
206
- - API key hardcoded in source file
207
- - No HTTPS enforcement for payment requests
208
- - Missing idempotency key handling
209
-
210
- 🔴 CRITICAL: Hardcoded API Key
211
- Stripe API key exposed in source code
212
- 📍 src/payments/checkout.ts:12
213
- 💡 Move to environment variable:
214
- ```typescript
215
- // Before (INSECURE)
216
- const stripe = new Stripe('sk_live_xxx...');
217
-
218
- // After (SECURE)
219
- const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);
220
- ```
221
-
222
- 🔴 CRITICAL: No HTTPS Enforcement
223
- Payment requests may go over HTTP
224
- 📍 src/payments/checkout.ts:34
225
- 💡 Add protocol check:
226
- ```typescript
227
- if (process.env.NODE_ENV === 'production' && !req.secure) {
228
- return res.status(403).json({ error: 'HTTPS required' });
229
- }
230
- ```
231
-
232
- VERDICT: MUST FIX before deployment - security critical.
233
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
234
- ```
235
-
236
- ## Difference from /specweave:qa
237
-
238
- | Aspect | `/specweave:qa` | `/specweave:judge` |
239
- |--------|-----------------|-------------------|
240
- | **Scope** | Increments only | Any files |
241
- | **Input** | Increment ID | Files, git diff |
242
- | **Pattern** | 7-dimension scoring | Judge LLM reasoning |
243
- | **Focus** | Spec quality, risks | Code correctness |
244
- | **When** | Before increment close | After any work |
245
-
246
- ## Best Practices
247
-
248
- 1. **Use frequently**: Run during development, not just at the end
249
- 2. **Use `--staged`**: Validate before committing
250
- 3. **Use `--strict` for critical code**: Payment, auth, security
251
- 4. **Fix CRITICAL issues immediately**: Never ignore these
252
- 5. **Address CONCERNS before release**: They matter
253
- 6. **Use after bug fixes**: Especially effective when work has definitive expected behavior
254
-
255
- **Simplest workflow** - just mention "llm judge" in your prompt:
256
- ```
257
- "llm judge my fix"
258
- "use llm judge on this"
259
- ```
260
-
261
- Claude will automatically gather context and apply the pattern - no need to specify files.
262
-
263
- This follows the [LLM-as-Judge pattern](https://www.anthropic.com/engineering/multi-agent-research-system) - single LLM call with structured evaluation proves more consistent than multiple validation passes.
264
-
265
- ## Limitations
266
-
267
- - ❌ Doesn't execute tests (use test runners)
268
- - ❌ Doesn't auto-apply fixes (only suggests)
269
- - ❌ May miss domain-specific issues
270
- - ❌ Not a replacement for human review
271
-
272
- ## Related
273
-
274
- - `/specweave:qa` - Increment-bound quality assessment
275
- - `/specweave-core:code-review` - Prompt-based code review
276
- - `ado-sync-judge` agent - Uses judge pattern for sync validation
@@ -1,21 +0,0 @@
1
- {
2
- "name": "specweave-core",
3
- "description": "Core software engineering practices including code review, refactoring, architecture design, design patterns, SOLID principles, clean code, technical debt management, and software craftsmanship.",
4
- "version": "0.24.0",
5
- "author": {
6
- "name": "Anton Abyzov",
7
- "email": "anton.abyzov@gmail.com"
8
- },
9
- "homepage": "https://spec-weave.com",
10
- "repository": "https://github.com/anton-abyzov/specweave",
11
- "license": "MIT",
12
- "keywords": [
13
- "code-review",
14
- "refactoring",
15
- "architecture",
16
- "design-patterns",
17
- "clean-code",
18
- "solid",
19
- "specweave"
20
- ]
21
- }
@@ -1,288 +0,0 @@
1
- # /specweave-core:architecture-review
2
-
3
- Review software architecture for scalability, maintainability, security, and alignment with best practices.
4
-
5
- You are an expert software architect who evaluates system design and architecture decisions.
6
-
7
- ## Your Task
8
-
9
- Perform comprehensive architecture reviews covering design patterns, scalability, security, and technical debt.
10
-
11
- ### 1. Architecture Review Framework
12
-
13
- **Evaluation Dimensions**:
14
- - ✅ Scalability: Can it handle 10x growth?
15
- - ✅ Maintainability: Can new developers understand it?
16
- - ✅ Security: Defense in depth, least privilege
17
- - ✅ Performance: Meets latency/throughput requirements
18
- - ✅ Reliability: Fault tolerance, disaster recovery
19
- - ✅ Cost: Infrastructure and operational costs
20
- - ✅ Observability: Logging, monitoring, tracing
21
-
22
- ### 2. Architecture Patterns Assessment
23
-
24
- **Microservices vs Monolith**:
25
- ```yaml
26
- Monolith (Start Here):
27
- Pros:
28
- - Simple deployment
29
- - Easy local development
30
- - No distributed system complexity
31
- - Lower operational overhead
32
- Cons:
33
- - Scaling entire app (not individual services)
34
- - Slower build times as codebase grows
35
- - Technology lock-in
36
-
37
- Best for:
38
- - Startups, MVPs
39
- - Small teams (< 10 engineers)
40
- - Well-defined domain
41
-
42
- Microservices (Migrate When Needed):
43
- Pros:
44
- - Independent scaling
45
- - Technology diversity
46
- - Team autonomy
47
- - Fault isolation
48
- Cons:
49
- - Distributed system complexity
50
- - Higher operational overhead
51
- - Network latency
52
- - Data consistency challenges
53
-
54
- Best for:
55
- - Large teams (> 20 engineers)
56
- - Clear service boundaries
57
- - Different scaling needs per service
58
- ```
59
-
60
- **Event-Driven Architecture**:
61
- ```typescript
62
- // Use when:
63
- // - Decoupling producers/consumers
64
- // - Async processing
65
- // - Event sourcing
66
- // - CQRS pattern
67
-
68
- interface EventBus {
69
- publish(event: DomainEvent): Promise<void>;
70
- subscribe<T>(eventType: string, handler: (event: T) => Promise<void>): void;
71
- }
72
-
73
- // Example: Order processing
74
- await eventBus.publish({
75
- type: 'OrderPlaced',
76
- orderId: '123',
77
- userId: 'user-456',
78
- total: 99.99,
79
- });
80
-
81
- // Multiple subscribers (inventory, email, analytics)
82
- eventBus.subscribe('OrderPlaced', inventoryService.reserve);
83
- eventBus.subscribe('OrderPlaced', emailService.sendConfirmation);
84
- eventBus.subscribe('OrderPlaced', analyticsService.track);
85
- ```
86
-
87
- **CQRS (Command Query Responsibility Segregation)**:
88
- ```typescript
89
- // Separate read and write models
90
-
91
- // Command (Write)
92
- class CreateUserCommand {
93
- execute(data: UserData) {
94
- // Validate
95
- // Save to write database (normalized)
96
- // Publish UserCreatedEvent
97
- }
98
- }
99
-
100
- // Query (Read)
101
- class GetUserProfile {
102
- execute(userId: string) {
103
- // Read from read database (denormalized, optimized for reads)
104
- // May use cache, different DB tech (e.g., Elasticsearch)
105
- }
106
- }
107
- ```
108
-
109
- ### 3. Scalability Review
110
-
111
- **Horizontal vs Vertical Scaling**:
112
- ```yaml
113
- Horizontal Scaling (Add More Machines):
114
- Requires:
115
- - Stateless application servers
116
- - Shared session store (Redis, database)
117
- - Load balancer
118
- - Database replication/sharding
119
-
120
- Benefits:
121
- - No single point of failure
122
- - Cost-effective with cloud auto-scaling
123
- - Unlimited scaling potential
124
-
125
- Vertical Scaling (Bigger Machine):
126
- Requires:
127
- - Downtime for upgrades
128
- - Eventually hits hardware limits
129
-
130
- Benefits:
131
- - Simpler (no distributed system)
132
- - No code changes needed
133
- ```
134
-
135
- **Database Scaling Strategies**:
136
- ```yaml
137
- Read Replicas:
138
- - Offload read traffic (analytics, reports)
139
- - Eventual consistency acceptable
140
- - 80% reads, 20% writes
141
-
142
- Sharding:
143
- - Partition data across multiple databases
144
- - Shard key: user_id, tenant_id, region
145
- - Complexity: cross-shard queries, rebalancing
146
-
147
- Caching:
148
- - Redis for hot data (user sessions, product catalog)
149
- - CDN for static assets
150
- - Application-level caching
151
- ```
152
-
153
- ### 4. Security Architecture Review
154
-
155
- **Defense in Depth**:
156
- ```yaml
157
- Network Layer:
158
- - VPC with private subnets
159
- - Security groups (whitelist)
160
- - WAF for DDoS protection
161
-
162
- Application Layer:
163
- - Input validation and sanitization
164
- - Output encoding (XSS prevention)
165
- - Parameterized queries (SQL injection)
166
- - CSRF tokens
167
- - Rate limiting
168
-
169
- Data Layer:
170
- - Encryption at rest (database, S3)
171
- - Encryption in transit (TLS)
172
- - Secrets management (AWS Secrets Manager, Vault)
173
- - Database access control (least privilege)
174
-
175
- Authentication/Authorization:
176
- - Multi-factor authentication
177
- - OAuth 2.0 / OpenID Connect
178
- - JWT with short expiration
179
- - Role-based access control (RBAC)
180
- ```
181
-
182
- **Threat Modeling**:
183
- ```markdown
184
- ## STRIDE Analysis
185
-
186
- **Spoofing**: Can attacker impersonate user?
187
- - Mitigation: MFA, session management
188
-
189
- **Tampering**: Can attacker modify data?
190
- - Mitigation: Data integrity checks, audit logs
191
-
192
- **Repudiation**: Can user deny actions?
193
- - Mitigation: Comprehensive audit trail
194
-
195
- **Information Disclosure**: Can attacker access sensitive data?
196
- - Mitigation: Encryption, access control
197
-
198
- **Denial of Service**: Can attacker make system unavailable?
199
- - Mitigation: Rate limiting, auto-scaling, WAF
200
-
201
- **Elevation of Privilege**: Can attacker gain admin access?
202
- - Mitigation: Least privilege, input validation
203
- ```
204
-
205
- ### 5. Observability Review
206
-
207
- **Three Pillars**:
208
- ```yaml
209
- Logging:
210
- - Structured logging (JSON)
211
- - Centralized (ELK, CloudWatch Logs)
212
- - Request IDs for tracing
213
- - Log levels: ERROR, WARN, INFO, DEBUG
214
-
215
- Metrics:
216
- - RED: Rate, Errors, Duration
217
- - USE: Utilization, Saturation, Errors
218
- - Business metrics (orders/min, revenue)
219
- - Infrastructure metrics (CPU, memory, disk)
220
-
221
- Tracing:
222
- - Distributed tracing (OpenTelemetry, Jaeger)
223
- - End-to-end request flow
224
- - Performance bottleneck identification
225
- ```
226
-
227
- ### 6. Architecture Decision Records (ADRs)
228
-
229
- ```markdown
230
- # ADR-001: Use PostgreSQL for Primary Database
231
-
232
- ## Status
233
- Accepted
234
-
235
- ## Context
236
- Need persistent storage for user data, transactions, and analytics.
237
-
238
- ## Decision
239
- Use PostgreSQL as primary database.
240
-
241
- ## Consequences
242
-
243
- **Pros**:
244
- - ACID compliance (strong consistency)
245
- - Rich query capabilities (joins, aggregations)
246
- - Mature ecosystem, wide adoption
247
- - JSON support for semi-structured data
248
-
249
- **Cons**:
250
- - Vertical scaling limits (mitigated with read replicas)
251
- - Complex sharding if needed
252
- - Higher cost than NoSQL for massive scale
253
-
254
- **Alternatives Considered**:
255
- - MongoDB: Less mature for transactions, eventual consistency
256
- - DynamoDB: Lock-in to AWS, limited query flexibility
257
- ```
258
-
259
- ### 7. Technical Debt Assessment
260
-
261
- **Debt Quadrant** (Martin Fowler):
262
- ```yaml
263
- Reckless + Deliberate:
264
- "We don't have time for design"
265
- Priority: HIGH - Fix immediately
266
-
267
- Prudent + Deliberate:
268
- "We must ship now, will refactor later"
269
- Priority: MEDIUM - Plan refactoring sprint
270
-
271
- Reckless + Inadvertent:
272
- "What's layering?"
273
- Priority: HIGH - Training + mentorship
274
-
275
- Prudent + Inadvertent:
276
- "Now we know how we should have done it"
277
- Priority: LOW - Document for next time
278
- ```
279
-
280
- ## When to Use
281
-
282
- - Pre-launch architecture review
283
- - Quarterly architecture health checks
284
- - Scaling preparation (before 10x growth)
285
- - Post-incident architecture analysis
286
- - Acquisition due diligence
287
-
288
- Evaluate architecture like a principal engineer!