specweave 1.0.355 → 1.0.357

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 (169) hide show
  1. package/bin/specweave.js +21 -1
  2. package/dist/plugins/specweave-github/lib/duplicate-detector.d.ts.map +1 -1
  3. package/dist/plugins/specweave-github/lib/duplicate-detector.js +18 -2
  4. package/dist/plugins/specweave-github/lib/duplicate-detector.js.map +1 -1
  5. package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +1 -1
  6. package/dist/plugins/specweave-github/lib/github-feature-sync.js +10 -0
  7. package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -1
  8. package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts +17 -0
  9. package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts.map +1 -1
  10. package/dist/plugins/specweave-jira/lib/jira-status-sync.js +85 -0
  11. package/dist/plugins/specweave-jira/lib/jira-status-sync.js.map +1 -1
  12. package/dist/src/adapters/agents-md-generator.js +1 -1
  13. package/dist/src/adapters/agents-md-generator.js.map +1 -1
  14. package/dist/src/adapters/claude/adapter.d.ts +3 -4
  15. package/dist/src/adapters/claude/adapter.d.ts.map +1 -1
  16. package/dist/src/adapters/claude/adapter.js +3 -4
  17. package/dist/src/adapters/claude/adapter.js.map +1 -1
  18. package/dist/src/adapters/claude-md-generator.js +2 -2
  19. package/dist/src/adapters/claude-md-generator.js.map +1 -1
  20. package/dist/src/cli/commands/check-discipline.d.ts.map +1 -1
  21. package/dist/src/cli/commands/check-discipline.js +2 -1
  22. package/dist/src/cli/commands/check-discipline.js.map +1 -1
  23. package/dist/src/cli/commands/create-increment.d.ts.map +1 -1
  24. package/dist/src/cli/commands/create-increment.js +4 -1
  25. package/dist/src/cli/commands/create-increment.js.map +1 -1
  26. package/dist/src/cli/commands/health.d.ts +34 -0
  27. package/dist/src/cli/commands/health.d.ts.map +1 -0
  28. package/dist/src/cli/commands/health.js +349 -0
  29. package/dist/src/cli/commands/health.js.map +1 -0
  30. package/dist/src/cli/commands/migrate-to-umbrella.d.ts.map +1 -1
  31. package/dist/src/cli/commands/migrate-to-umbrella.js +38 -0
  32. package/dist/src/cli/commands/migrate-to-umbrella.js.map +1 -1
  33. package/dist/src/cli/commands/refresh-plugins.d.ts +3 -2
  34. package/dist/src/cli/commands/refresh-plugins.d.ts.map +1 -1
  35. package/dist/src/cli/commands/refresh-plugins.js +3 -8
  36. package/dist/src/cli/commands/refresh-plugins.js.map +1 -1
  37. package/dist/src/cli/commands/save.js +1 -1
  38. package/dist/src/cli/commands/save.js.map +1 -1
  39. package/dist/src/cli/commands/sync-living-docs.d.ts.map +1 -1
  40. package/dist/src/cli/commands/sync-living-docs.js +2 -1
  41. package/dist/src/cli/commands/sync-living-docs.js.map +1 -1
  42. package/dist/src/cli/commands/sync-progress.d.ts.map +1 -1
  43. package/dist/src/cli/commands/sync-progress.js +208 -8
  44. package/dist/src/cli/commands/sync-progress.js.map +1 -1
  45. package/dist/src/cli/commands/update.d.ts.map +1 -1
  46. package/dist/src/cli/commands/update.js +35 -4
  47. package/dist/src/cli/commands/update.js.map +1 -1
  48. package/dist/src/core/ac-progress-sync.d.ts.map +1 -1
  49. package/dist/src/core/ac-progress-sync.js +13 -4
  50. package/dist/src/core/ac-progress-sync.js.map +1 -1
  51. package/dist/src/core/config/types.d.ts +33 -0
  52. package/dist/src/core/config/types.d.ts.map +1 -1
  53. package/dist/src/core/config/types.js.map +1 -1
  54. package/dist/src/core/doctor/checkers/increments-checker.js +2 -2
  55. package/dist/src/core/doctor/checkers/increments-checker.js.map +1 -1
  56. package/dist/src/core/doctor/checkers/installation-health-checker.d.ts +14 -15
  57. package/dist/src/core/doctor/checkers/installation-health-checker.d.ts.map +1 -1
  58. package/dist/src/core/doctor/checkers/installation-health-checker.js +78 -148
  59. package/dist/src/core/doctor/checkers/installation-health-checker.js.map +1 -1
  60. package/dist/src/core/hooks/LifecycleHookDispatcher.d.ts.map +1 -1
  61. package/dist/src/core/hooks/LifecycleHookDispatcher.js +6 -1
  62. package/dist/src/core/hooks/LifecycleHookDispatcher.js.map +1 -1
  63. package/dist/src/core/increment/completion-validator.d.ts.map +1 -1
  64. package/dist/src/core/increment/completion-validator.js +8 -7
  65. package/dist/src/core/increment/completion-validator.js.map +1 -1
  66. package/dist/src/core/increment/increment-reopener.d.ts.map +1 -1
  67. package/dist/src/core/increment/increment-reopener.js +5 -4
  68. package/dist/src/core/increment/increment-reopener.js.map +1 -1
  69. package/dist/src/core/increment/metadata-manager.d.ts +5 -6
  70. package/dist/src/core/increment/metadata-manager.d.ts.map +1 -1
  71. package/dist/src/core/increment/metadata-manager.js +12 -13
  72. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  73. package/dist/src/core/increment/spec-frontmatter-updater.d.ts.map +1 -1
  74. package/dist/src/core/increment/spec-frontmatter-updater.js +3 -2
  75. package/dist/src/core/increment/spec-frontmatter-updater.js.map +1 -1
  76. package/dist/src/core/increment/status-auto-transition.d.ts.map +1 -1
  77. package/dist/src/core/increment/status-auto-transition.js +5 -4
  78. package/dist/src/core/increment/status-auto-transition.js.map +1 -1
  79. package/dist/src/core/increment/status-change-sync-trigger.d.ts.map +1 -1
  80. package/dist/src/core/increment/status-change-sync-trigger.js +3 -2
  81. package/dist/src/core/increment/status-change-sync-trigger.js.map +1 -1
  82. package/dist/src/core/increment/status-commands.d.ts.map +1 -1
  83. package/dist/src/core/increment/status-commands.js +4 -3
  84. package/dist/src/core/increment/status-commands.js.map +1 -1
  85. package/dist/src/core/increment/template-creator.d.ts.map +1 -1
  86. package/dist/src/core/increment/template-creator.js +49 -5
  87. package/dist/src/core/increment/template-creator.js.map +1 -1
  88. package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts +2 -2
  89. package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts.map +1 -1
  90. package/dist/src/core/lazy-loading/llm-plugin-detector.js +32 -16
  91. package/dist/src/core/lazy-loading/llm-plugin-detector.js.map +1 -1
  92. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  93. package/dist/src/core/living-docs/living-docs-sync.js +16 -6
  94. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  95. package/dist/src/core/migration/consolidation-engine.d.ts +59 -0
  96. package/dist/src/core/migration/consolidation-engine.d.ts.map +1 -0
  97. package/dist/src/core/migration/consolidation-engine.js +177 -0
  98. package/dist/src/core/migration/consolidation-engine.js.map +1 -0
  99. package/dist/src/core/migration/types.d.ts +2 -0
  100. package/dist/src/core/migration/types.d.ts.map +1 -1
  101. package/dist/src/core/project/project-resolution.d.ts.map +1 -1
  102. package/dist/src/core/project/project-resolution.js +20 -2
  103. package/dist/src/core/project/project-resolution.js.map +1 -1
  104. package/dist/src/generators/spec/spec-parser.js +2 -2
  105. package/dist/src/generators/spec/spec-parser.js.map +1 -1
  106. package/dist/src/integrations/jira/jira-client.d.ts.map +1 -1
  107. package/dist/src/integrations/jira/jira-client.js +83 -30
  108. package/dist/src/integrations/jira/jira-client.js.map +1 -1
  109. package/dist/src/sync/external-issue-auto-creator.d.ts +6 -2
  110. package/dist/src/sync/external-issue-auto-creator.d.ts.map +1 -1
  111. package/dist/src/sync/external-issue-auto-creator.js +75 -19
  112. package/dist/src/sync/external-issue-auto-creator.js.map +1 -1
  113. package/dist/src/sync/sync-coordinator.d.ts.map +1 -1
  114. package/dist/src/sync/sync-coordinator.js +20 -4
  115. package/dist/src/sync/sync-coordinator.js.map +1 -1
  116. package/dist/src/sync/sync-target-resolver.d.ts +36 -0
  117. package/dist/src/sync/sync-target-resolver.d.ts.map +1 -0
  118. package/dist/src/sync/sync-target-resolver.js +72 -0
  119. package/dist/src/sync/sync-target-resolver.js.map +1 -0
  120. package/dist/src/utils/external-tool-drift-detector.js +4 -4
  121. package/dist/src/utils/external-tool-drift-detector.js.map +1 -1
  122. package/dist/src/utils/find-project-root.d.ts +26 -0
  123. package/dist/src/utils/find-project-root.d.ts.map +1 -1
  124. package/dist/src/utils/find-project-root.js +78 -0
  125. package/dist/src/utils/find-project-root.js.map +1 -1
  126. package/dist/src/utils/multi-project-detector.js +1 -1
  127. package/dist/src/utils/multi-project-detector.js.map +1 -1
  128. package/dist/src/utils/plugin-copier.d.ts +28 -47
  129. package/dist/src/utils/plugin-copier.d.ts.map +1 -1
  130. package/dist/src/utils/plugin-copier.js +85 -155
  131. package/dist/src/utils/plugin-copier.js.map +1 -1
  132. package/package.json +1 -1
  133. package/plugins/specweave/PLUGIN.md +1 -0
  134. package/plugins/specweave/hooks/stop-auto-v5.sh +26 -17
  135. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.d.ts +5 -6
  136. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +12 -13
  137. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
  138. package/plugins/specweave/lib/vendor/core/increment/status-auto-transition.js +5 -4
  139. package/plugins/specweave/lib/vendor/core/increment/status-auto-transition.js.map +1 -1
  140. package/plugins/specweave/skills/auto/SKILL.md +15 -1
  141. package/plugins/specweave/skills/brainstorm/SKILL.md +619 -0
  142. package/plugins/specweave/skills/do/SKILL.md +3 -3
  143. package/plugins/specweave/skills/increment/SKILL.md +3 -3
  144. package/plugins/specweave/skills/team-build/SKILL.md +1 -1
  145. package/plugins/specweave/skills/team-lead/SKILL.md +7 -5
  146. package/plugins/specweave/skills/validate/SKILL.md +1 -1
  147. package/plugins/specweave-ado/lib/ado-multi-project-sync.js +1 -0
  148. package/plugins/specweave-docs/PLUGIN.md +1 -1
  149. package/plugins/specweave-github/lib/duplicate-detector.js +21 -1
  150. package/plugins/specweave-github/lib/duplicate-detector.ts +18 -2
  151. package/plugins/specweave-github/lib/github-feature-sync.js +17 -0
  152. package/plugins/specweave-github/lib/github-feature-sync.ts +11 -0
  153. package/plugins/specweave-jira/lib/jira-status-sync.js +75 -0
  154. package/plugins/specweave-jira/lib/jira-status-sync.ts +91 -1
  155. package/src/templates/CLAUDE.md.template +3 -1
  156. package/dist/src/utils/claude-plugin-cli.d.ts +0 -32
  157. package/dist/src/utils/claude-plugin-cli.d.ts.map +0 -1
  158. package/dist/src/utils/claude-plugin-cli.js +0 -74
  159. package/dist/src/utils/claude-plugin-cli.js.map +0 -1
  160. package/plugins/specweave/hooks/.specweave/logs/auto-iterations.log +0 -1
  161. package/plugins/specweave/hooks/.specweave/logs/auto-stop-reasons.log +0 -1
  162. package/plugins/specweave/skills/.specweave/logs/reflect/auto-reflect.log +0 -15
  163. package/plugins/specweave/skills/.specweave/logs/reflect/reflect.log +0 -3
  164. package/plugins/specweave/skills/.specweave/logs/stop-auto.log +0 -1
  165. package/plugins/specweave-ado/lib/enhanced-ado-sync.js +0 -180
  166. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +0 -1266
  167. package/plugins/specweave-github/lib/enhanced-github-sync.js +0 -249
  168. package/plugins/specweave-jira/lib/enhanced-jira-sync.js +0 -150
  169. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +0 -1260
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md-generator.js","sourceRoot":"","sources":["../../../src/adapters/claude-md-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-md-generator.js","sourceRoot":"","sources":["../../../src/adapters/claude-md-generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"check-discipline.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/check-discipline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AASvE,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyE3F"}
1
+ {"version":3,"file":"check-discipline.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/check-discipline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAUvE,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyE3F"}
@@ -13,13 +13,14 @@
13
13
  */
14
14
  import { DisciplineChecker } from '../../core/increment/discipline-checker.js';
15
15
  import chalk from 'chalk';
16
+ import { resolveEffectiveRoot } from '../../utils/find-project-root.js';
16
17
  // NOTE: This CLI discipline checker is primarily user-facing output (console.log/console.error).
17
18
  // All console.* calls in this file are legitimate user-facing exceptions
18
19
  // as defined in CONTRIBUTING.md (discipline violations, compliance reports, warnings).
19
20
  // Logger infrastructure available for future internal debug logs if needed.
20
21
  export async function checkDisciplineCommand(options) {
21
22
  try {
22
- const checker = new DisciplineChecker(options.projectRoot || process.cwd());
23
+ const checker = new DisciplineChecker(options.projectRoot || resolveEffectiveRoot());
23
24
  const result = await checker.validate(options);
24
25
  // JSON output mode
25
26
  if (options.json) {
@@ -1 +1 @@
1
- {"version":3,"file":"check-discipline.js","sourceRoot":"","sources":["../../../../src/cli/commands/check-discipline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-discipline.js","sourceRoot":"","sources":["../../../../src/cli/commands/check-discipline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-increment.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/create-increment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2E3F"}
1
+ {"version":3,"file":"create-increment.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/create-increment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8E3F"}
@@ -13,8 +13,11 @@ import chalk from 'chalk';
13
13
  import { createIncrementTemplates } from '../../core/increment/template-creator.js';
14
14
  import { LifecycleHookDispatcher } from '../../core/hooks/LifecycleHookDispatcher.js';
15
15
  import { readConfig } from '../../core/config/config-manager.js';
16
+ import { resolveEffectiveRoot } from '../../utils/find-project-root.js';
16
17
  export async function createIncrementCommand(options) {
17
- const { id, title, description, project, board, type, priority, json = false, projectRoot = process.cwd(), } = options;
18
+ const { id, title, description, project, board, type, priority, json = false, projectRoot: rawProjectRoot, } = options;
19
+ // Resolve effective root: umbrella root in multi-repo, local root in single-repo
20
+ const projectRoot = rawProjectRoot || resolveEffectiveRoot(process.cwd());
18
21
  // Read testing config to pass testMode and coverageTarget
19
22
  let testMode;
20
23
  let coverageTarget;
@@ -1 +1 @@
1
- {"version":3,"file":"create-increment.js","sourceRoot":"","sources":["../../../../src/cli/commands/create-increment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAcjE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAA+B;IAC1E,MAAM,EACJ,EAAE,EACF,KAAK,EACL,WAAW,EACX,OAAO,EACP,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,GAAG,KAAK,EACZ,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,GAC5B,GAAG,OAAO,CAAC;IAEZ,0DAA0D;IAC1D,IAAI,QAA4B,CAAC;IACjC,IAAI,cAAkC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7C,QAAQ,GAAG,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC;QAC5C,cAAc,GAAG,MAAM,EAAE,OAAO,EAAE,qBAAqB,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qFAAqF;QACrF,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,2CAA2C,GAAG,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,wCAAwC;IAC1C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC;QAC5C,WAAW,EAAE,EAAE;QACf,KAAK;QACL,WAAW;QACX,SAAS,EAAE,OAAO;QAClB,OAAO,EAAE,KAAK;QACd,IAAI;QACJ,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,WAAW;KACZ,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,+EAA+E;IAC/E,IAAI,CAAC;QACH,MAAM,uBAAuB,CAAC,kBAAkB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,wCAAwC;QACxC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,mCAAmC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACzB,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC,CAAC;IACN,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"create-increment.js","sourceRoot":"","sources":["../../../../src/cli/commands/create-increment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Health Command
3
+ *
4
+ * Lightweight deployment verification for SpecWeave projects.
5
+ * Checks config validity, plugin availability, and sync connectivity.
6
+ * Designed for CI/CD pipeline integration with --json flag.
7
+ */
8
+ import { Command } from 'commander';
9
+ import type { CategoryResult } from '../../core/doctor/types.js';
10
+ export interface HealthReport {
11
+ timestamp: string;
12
+ projectRoot: string;
13
+ status: 'healthy' | 'degraded' | 'unhealthy';
14
+ categories: CategoryResult[];
15
+ summary: {
16
+ total: number;
17
+ passed: number;
18
+ warnings: number;
19
+ failures: number;
20
+ };
21
+ }
22
+ export interface HealthOptions {
23
+ json?: boolean;
24
+ verbose?: boolean;
25
+ }
26
+ /**
27
+ * Run health checks and return report
28
+ */
29
+ export declare function runHealthCheck(projectRoot: string, options?: HealthOptions): Promise<HealthReport>;
30
+ /**
31
+ * Register health command on Commander program
32
+ */
33
+ export declare function registerHealthCommand(program: Command): void;
34
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/health.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAe,cAAc,EAAe,MAAM,4BAA4B,CAAC;AAI3F,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7C,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CA8BvB;AAqTD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqB5D"}
@@ -0,0 +1,349 @@
1
+ /**
2
+ * Health Command
3
+ *
4
+ * Lightweight deployment verification for SpecWeave projects.
5
+ * Checks config validity, plugin availability, and sync connectivity.
6
+ * Designed for CI/CD pipeline integration with --json flag.
7
+ */
8
+ import * as fs from 'fs';
9
+ import * as path from 'path';
10
+ import * as os from 'os';
11
+ import { calculateOverallStatus } from '../../core/doctor/types.js';
12
+ import { consoleLogger as logger } from '../../utils/logger.js';
13
+ /**
14
+ * Run health checks and return report
15
+ */
16
+ export async function runHealthCheck(projectRoot, options = {}) {
17
+ const categories = [];
18
+ // 1. Config validity
19
+ categories.push(checkConfig(projectRoot));
20
+ // 2. Plugin availability
21
+ categories.push(checkPlugins());
22
+ // 3. Sync connectivity
23
+ categories.push(await checkSyncConnectivity(projectRoot));
24
+ const summary = calculateHealthSummary(categories);
25
+ const status = summary.failures > 0 ? 'unhealthy' : summary.warnings > 0 ? 'degraded' : 'healthy';
26
+ const report = {
27
+ timestamp: new Date().toISOString(),
28
+ projectRoot,
29
+ status,
30
+ categories,
31
+ summary,
32
+ };
33
+ if (options.json) {
34
+ console.log(JSON.stringify(report, null, 2));
35
+ }
36
+ else {
37
+ console.log(formatHealthReport(report, options.verbose));
38
+ }
39
+ return report;
40
+ }
41
+ // --- Config Checks ---
42
+ function checkConfig(projectRoot) {
43
+ const checks = [];
44
+ const configPath = path.join(projectRoot, '.specweave', 'config.json');
45
+ // config.json exists and is valid JSON
46
+ if (!fs.existsSync(configPath)) {
47
+ checks.push({
48
+ name: 'config.json',
49
+ status: 'fail',
50
+ message: 'missing — run: specweave init',
51
+ });
52
+ }
53
+ else {
54
+ try {
55
+ const raw = fs.readFileSync(configPath, 'utf8');
56
+ const config = JSON.parse(raw);
57
+ checks.push({
58
+ name: 'config.json',
59
+ status: 'pass',
60
+ message: 'valid JSON',
61
+ });
62
+ // Required fields
63
+ if (!config.version) {
64
+ checks.push({ name: 'config.version', status: 'warn', message: 'missing version field' });
65
+ }
66
+ else {
67
+ checks.push({ name: 'config.version', status: 'pass', message: `v${config.version}` });
68
+ }
69
+ if (!config.project?.name) {
70
+ checks.push({ name: 'config.project', status: 'warn', message: 'missing project name' });
71
+ }
72
+ else {
73
+ checks.push({ name: 'config.project', status: 'pass', message: config.project.name });
74
+ }
75
+ }
76
+ catch (e) {
77
+ checks.push({
78
+ name: 'config.json',
79
+ status: 'fail',
80
+ message: `invalid JSON: ${e instanceof Error ? e.message : 'parse error'}`,
81
+ });
82
+ }
83
+ }
84
+ return {
85
+ category: 'Configuration',
86
+ status: calculateOverallStatus(checks),
87
+ checks,
88
+ };
89
+ }
90
+ // --- Plugin Checks ---
91
+ function checkPlugins() {
92
+ const checks = [];
93
+ const homeDir = os.homedir();
94
+ // Core plugin cache
95
+ const cacheDir = path.join(homeDir, '.claude', 'plugins', 'cache', 'specweave', 'sw');
96
+ if (!fs.existsSync(cacheDir)) {
97
+ checks.push({
98
+ name: 'Core plugin (sw)',
99
+ status: 'warn',
100
+ message: 'not cached — plugins load on first use',
101
+ });
102
+ }
103
+ else {
104
+ const versions = fs.readdirSync(cacheDir).filter(d => fs.statSync(path.join(cacheDir, d)).isDirectory());
105
+ checks.push({
106
+ name: 'Core plugin (sw)',
107
+ status: 'pass',
108
+ message: `cached (${versions.length} version(s))`,
109
+ details: versions.slice(0, 3),
110
+ });
111
+ }
112
+ // Marketplace availability
113
+ const marketplaceDir = path.join(homeDir, '.claude', 'plugins', 'marketplaces', 'specweave', 'plugins');
114
+ if (!fs.existsSync(marketplaceDir)) {
115
+ checks.push({
116
+ name: 'Marketplace',
117
+ status: 'warn',
118
+ message: 'not installed',
119
+ fixSuggestion: 'Run: specweave update',
120
+ });
121
+ }
122
+ else {
123
+ try {
124
+ const plugins = fs.readdirSync(marketplaceDir);
125
+ checks.push({
126
+ name: 'Marketplace',
127
+ status: 'pass',
128
+ message: `${plugins.length} plugin(s) available`,
129
+ });
130
+ }
131
+ catch {
132
+ checks.push({ name: 'Marketplace', status: 'warn', message: 'could not read' });
133
+ }
134
+ }
135
+ return {
136
+ category: 'Plugins',
137
+ status: calculateOverallStatus(checks),
138
+ checks,
139
+ };
140
+ }
141
+ // --- Sync Connectivity Checks ---
142
+ async function checkSyncConnectivity(projectRoot) {
143
+ const checks = [];
144
+ const configPath = path.join(projectRoot, '.specweave', 'config.json');
145
+ let config = {};
146
+ try {
147
+ if (fs.existsSync(configPath)) {
148
+ config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
149
+ }
150
+ }
151
+ catch {
152
+ checks.push({ name: 'Sync config', status: 'fail', message: 'could not parse config' });
153
+ return { category: 'Sync Connectivity', status: 'fail', checks };
154
+ }
155
+ const sync = config.sync;
156
+ if (!sync?.enabled) {
157
+ checks.push({ name: 'Sync', status: 'skip', message: 'sync not enabled' });
158
+ return { category: 'Sync Connectivity', status: calculateOverallStatus(checks), checks };
159
+ }
160
+ // JIRA connectivity
161
+ const issueTracker = config.issueTracker;
162
+ const profiles = sync.profiles;
163
+ const defaultProfile = sync.defaultProfile;
164
+ const profileConfig = (defaultProfile ? profiles?.[defaultProfile]?.config : undefined);
165
+ if (issueTracker?.provider === 'jira' || sync.provider === 'jira') {
166
+ const domain = issueTracker?.domain || profileConfig?.domain || process.env.JIRA_DOMAIN || '';
167
+ const email = process.env.JIRA_EMAIL || '';
168
+ const apiToken = process.env.JIRA_API_TOKEN || '';
169
+ if (!domain) {
170
+ checks.push({ name: 'JIRA domain', status: 'fail', message: 'not configured' });
171
+ }
172
+ else if (!email || !apiToken) {
173
+ checks.push({
174
+ name: 'JIRA credentials',
175
+ status: 'warn',
176
+ message: 'JIRA_EMAIL or JIRA_API_TOKEN not set in environment',
177
+ fixSuggestion: 'Export JIRA_EMAIL and JIRA_API_TOKEN or add to .env',
178
+ });
179
+ }
180
+ else {
181
+ // Probe JIRA API
182
+ const probeResult = await probeJira(domain, email, apiToken);
183
+ checks.push(probeResult);
184
+ }
185
+ }
186
+ // GitHub connectivity
187
+ if (sync.github && sync.github.enabled) {
188
+ const ghResult = await probeGitHub();
189
+ checks.push(ghResult);
190
+ }
191
+ if (checks.length === 0) {
192
+ checks.push({ name: 'Sync providers', status: 'skip', message: 'no providers configured' });
193
+ }
194
+ return {
195
+ category: 'Sync Connectivity',
196
+ status: calculateOverallStatus(checks),
197
+ checks,
198
+ };
199
+ }
200
+ async function probeJira(domain, email, apiToken) {
201
+ const start = Date.now();
202
+ try {
203
+ const url = `https://${domain}/rest/api/3/myself`;
204
+ const auth = Buffer.from(`${email}:${apiToken}`).toString('base64');
205
+ const resp = await fetch(url, {
206
+ method: 'GET',
207
+ headers: { Authorization: `Basic ${auth}`, Accept: 'application/json' },
208
+ signal: AbortSignal.timeout(5000),
209
+ });
210
+ const durationMs = Date.now() - start;
211
+ if (resp.ok) {
212
+ const data = await resp.json();
213
+ return {
214
+ name: 'JIRA',
215
+ status: 'pass',
216
+ message: `connected as ${data.displayName || email}`,
217
+ durationMs,
218
+ };
219
+ }
220
+ return {
221
+ name: 'JIRA',
222
+ status: 'fail',
223
+ message: `HTTP ${resp.status}: ${resp.statusText}`,
224
+ durationMs,
225
+ };
226
+ }
227
+ catch (e) {
228
+ return {
229
+ name: 'JIRA',
230
+ status: 'fail',
231
+ message: `unreachable: ${e instanceof Error ? e.message : 'unknown error'}`,
232
+ durationMs: Date.now() - start,
233
+ };
234
+ }
235
+ }
236
+ async function probeGitHub() {
237
+ const start = Date.now();
238
+ try {
239
+ const { execSync } = await import('child_process');
240
+ const output = execSync('gh auth status 2>&1', { encoding: 'utf8', timeout: 5000 });
241
+ const durationMs = Date.now() - start;
242
+ if (output.includes('Logged in')) {
243
+ return { name: 'GitHub', status: 'pass', message: 'authenticated via gh CLI', durationMs };
244
+ }
245
+ return { name: 'GitHub', status: 'warn', message: 'gh CLI present but not authenticated', durationMs };
246
+ }
247
+ catch {
248
+ return {
249
+ name: 'GitHub',
250
+ status: 'warn',
251
+ message: 'gh CLI not available or not authenticated',
252
+ durationMs: Date.now() - start,
253
+ };
254
+ }
255
+ }
256
+ // --- Formatting ---
257
+ function calculateHealthSummary(categories) {
258
+ let total = 0, passed = 0, warnings = 0, failures = 0;
259
+ for (const cat of categories) {
260
+ for (const check of cat.checks) {
261
+ total++;
262
+ if (check.status === 'pass')
263
+ passed++;
264
+ else if (check.status === 'warn')
265
+ warnings++;
266
+ else if (check.status === 'fail')
267
+ failures++;
268
+ }
269
+ }
270
+ return { total, passed, warnings, failures };
271
+ }
272
+ function getIcon(status) {
273
+ switch (status) {
274
+ case 'pass': return '\u2713';
275
+ case 'warn': return '\u26A0';
276
+ case 'fail': return '\u2717';
277
+ case 'skip': return '\u2022';
278
+ default: return '?';
279
+ }
280
+ }
281
+ function formatHealthReport(report, verbose = false) {
282
+ const lines = [''];
283
+ const statusLabel = report.status === 'healthy' ? '\u2713 Healthy'
284
+ : report.status === 'degraded' ? '\u26A0 Degraded'
285
+ : '\u2717 Unhealthy';
286
+ lines.push(`SpecWeave Health: ${statusLabel}`);
287
+ lines.push('='.repeat(40));
288
+ lines.push('');
289
+ for (const cat of report.categories) {
290
+ lines.push(`${getIcon(cat.status)} ${cat.category}`);
291
+ for (const check of cat.checks) {
292
+ const dur = check.durationMs ? ` (${check.durationMs}ms)` : '';
293
+ lines.push(` ${getIcon(check.status)} ${check.name}: ${check.message}${dur}`);
294
+ if (verbose && check.details?.length) {
295
+ for (const d of check.details)
296
+ lines.push(` ${d}`);
297
+ }
298
+ if (verbose && check.fixSuggestion) {
299
+ lines.push(` Fix: ${check.fixSuggestion}`);
300
+ }
301
+ }
302
+ lines.push('');
303
+ }
304
+ const { passed, warnings, failures } = report.summary;
305
+ lines.push(`${passed} passed, ${warnings} warning(s), ${failures} failure(s)`);
306
+ // Diagnostic details for failures
307
+ if (failures > 0) {
308
+ lines.push('');
309
+ lines.push('Diagnostics:');
310
+ for (const cat of report.categories) {
311
+ for (const check of cat.checks) {
312
+ if (check.status === 'fail') {
313
+ lines.push(` ${cat.category}/${check.name}: ${check.message}`);
314
+ if (check.fixSuggestion) {
315
+ lines.push(` Fix: ${check.fixSuggestion}`);
316
+ }
317
+ }
318
+ }
319
+ }
320
+ }
321
+ lines.push('');
322
+ return lines.join('\n');
323
+ }
324
+ /**
325
+ * Register health command on Commander program
326
+ */
327
+ export function registerHealthCommand(program) {
328
+ program
329
+ .command('health')
330
+ .description('Quick deployment health check (config, plugins, sync connectivity)')
331
+ .option('--json', 'Output as JSON for CI/CD pipelines')
332
+ .option('--verbose', 'Show detailed output')
333
+ .action(async (options) => {
334
+ try {
335
+ const report = await runHealthCheck(process.cwd(), {
336
+ json: options.json,
337
+ verbose: options.verbose,
338
+ });
339
+ if (report.status === 'unhealthy') {
340
+ process.exit(1);
341
+ }
342
+ }
343
+ catch (error) {
344
+ logger.error(`Health check failed: ${error}`);
345
+ process.exit(1);
346
+ }
347
+ });
348
+ }
349
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../../src/cli/commands/health.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-to-umbrella.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/migrate-to-umbrella.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoBH,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;AAErF;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAgIf"}
1
+ {"version":3,"file":"migrate-to-umbrella.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/migrate-to-umbrella.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAwBH,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,+BAA+B,CAAC;AAErF;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAsIf"}
@@ -15,6 +15,7 @@ import chalk from 'chalk';
15
15
  import { confirm, input, select } from '@inquirer/prompts';
16
16
  import { detectSingleRepoProject, generateMigrationPlan, executeMigration, guardUncommittedChanges, rollbackMigration, addRepoToUmbrella, classifyExistingUmbrella, } from '../../core/migration/umbrella-migrator.js';
17
17
  import { buildFeatureProjectMap, generateReorganizationPlan, reorganizeSpecs, } from '../../core/migration/spec-project-mapper.js';
18
+ import { scanForOrphans, executeConsolidation, } from '../../core/migration/consolidation-engine.js';
18
19
  import * as fs from 'fs';
19
20
  import * as path from 'path';
20
21
  /**
@@ -37,6 +38,11 @@ export async function migrateToUmbrellaCommand(options = {}) {
37
38
  await handleReorganizeSpecs(projectRoot, options);
38
39
  return;
39
40
  }
41
+ // Handle consolidate
42
+ if (options.consolidate) {
43
+ await handleConsolidate(projectRoot, options);
44
+ return;
45
+ }
40
46
  // Main migration flow
41
47
  console.log(chalk.blue('\n Umbrella Migration Tool\n'));
42
48
  // Step 1: Detect single-repo project
@@ -380,4 +386,36 @@ async function handleReorganizeSpecs(projectRoot, options) {
380
386
  console.log(chalk.dim(' multiProject.enabled set to true.'));
381
387
  }
382
388
  }
389
+ /**
390
+ * Handle --consolidate: move orphaned increments/docs from nested repos to umbrella root.
391
+ */
392
+ async function handleConsolidate(projectRoot, options) {
393
+ console.log(chalk.blue('\n Consolidate Nested Increments\n'));
394
+ const plan = await scanForOrphans(projectRoot);
395
+ if (plan.moves.length === 0 && plan.deletions.length === 0) {
396
+ console.log(chalk.green(' No orphaned increments or docs found. Nothing to consolidate.'));
397
+ return;
398
+ }
399
+ // Display plan
400
+ console.log(chalk.blue(` Consolidation Plan (${plan.moves.length} moves, ${plan.deletions.length} deletions):\n`));
401
+ for (const move of plan.moves) {
402
+ const label = move.type === 'increment' ? '[MOVE INCREMENT]' : '[MOVE DOC]';
403
+ console.log(chalk.yellow(` ${label} ${path.basename(move.from)}`));
404
+ console.log(chalk.dim(` from: ${move.from}`));
405
+ console.log(chalk.dim(` to: ${move.to}`));
406
+ }
407
+ for (const deletion of plan.deletions) {
408
+ console.log(chalk.red(` [DELETE] ${path.basename(deletion.path)} (${deletion.reason})`));
409
+ console.log(chalk.dim(` path: ${deletion.path}`));
410
+ }
411
+ if (!options.execute) {
412
+ console.log(chalk.yellow('\n Dry-run complete. Run with --consolidate --execute to apply changes.\n'));
413
+ return;
414
+ }
415
+ // Execute
416
+ console.log(chalk.blue('\n Executing consolidation...\n'));
417
+ await executeConsolidation(plan, projectRoot);
418
+ console.log(chalk.green(`\n Consolidation complete!`));
419
+ console.log(chalk.dim(` ${plan.moves.length} items moved, ${plan.deletions.length} duplicates removed.`));
420
+ }
383
421
  //# sourceMappingURL=migrate-to-umbrella.js.map