specweave 0.22.2 → 0.22.4

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 (93) hide show
  1. package/CLAUDE.md +300 -920
  2. package/dist/src/cli/commands/repair-status-desync.d.ts +69 -0
  3. package/dist/src/cli/commands/repair-status-desync.d.ts.map +1 -0
  4. package/dist/src/cli/commands/repair-status-desync.js +221 -0
  5. package/dist/src/cli/commands/repair-status-desync.js.map +1 -0
  6. package/dist/src/cli/commands/sync-specs.d.ts +4 -1
  7. package/dist/src/cli/commands/sync-specs.d.ts.map +1 -1
  8. package/dist/src/cli/commands/sync-specs.js +99 -49
  9. package/dist/src/cli/commands/sync-specs.js.map +1 -1
  10. package/dist/src/cli/commands/validate-status-sync.d.ts +52 -0
  11. package/dist/src/cli/commands/validate-status-sync.d.ts.map +1 -0
  12. package/dist/src/cli/commands/validate-status-sync.js +176 -0
  13. package/dist/src/cli/commands/validate-status-sync.js.map +1 -0
  14. package/dist/src/cli/update-status-line.d.ts +16 -0
  15. package/dist/src/cli/update-status-line.d.ts.map +1 -0
  16. package/dist/src/cli/update-status-line.js +44 -0
  17. package/dist/src/cli/update-status-line.js.map +1 -0
  18. package/dist/src/core/cicd/workflow-monitor.d.ts +4 -0
  19. package/dist/src/core/cicd/workflow-monitor.d.ts.map +1 -1
  20. package/dist/src/core/cicd/workflow-monitor.js +6 -2
  21. package/dist/src/core/cicd/workflow-monitor.js.map +1 -1
  22. package/dist/src/core/increment/completion-validator.d.ts +56 -0
  23. package/dist/src/core/increment/completion-validator.d.ts.map +1 -0
  24. package/dist/src/core/increment/completion-validator.js +102 -0
  25. package/dist/src/core/increment/completion-validator.js.map +1 -0
  26. package/dist/src/core/increment/increment-archiver.d.ts +4 -1
  27. package/dist/src/core/increment/increment-archiver.d.ts.map +1 -1
  28. package/dist/src/core/increment/increment-archiver.js +21 -9
  29. package/dist/src/core/increment/increment-archiver.js.map +1 -1
  30. package/dist/src/core/increment/metadata-manager.d.ts +22 -0
  31. package/dist/src/core/increment/metadata-manager.d.ts.map +1 -1
  32. package/dist/src/core/increment/metadata-manager.js +62 -0
  33. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  34. package/dist/src/core/increment/spec-frontmatter-updater.d.ts +78 -0
  35. package/dist/src/core/increment/spec-frontmatter-updater.d.ts.map +1 -0
  36. package/dist/src/core/increment/spec-frontmatter-updater.js +152 -0
  37. package/dist/src/core/increment/spec-frontmatter-updater.js.map +1 -0
  38. package/dist/src/core/increment/spec-sync-manager.d.ts +5 -1
  39. package/dist/src/core/increment/spec-sync-manager.d.ts.map +1 -1
  40. package/dist/src/core/increment/spec-sync-manager.js +4 -2
  41. package/dist/src/core/increment/spec-sync-manager.js.map +1 -1
  42. package/dist/src/core/increment-utils.d.ts.map +1 -1
  43. package/dist/src/core/increment-utils.js +18 -1
  44. package/dist/src/core/increment-utils.js.map +1 -1
  45. package/dist/src/core/living-docs/living-docs-sync.d.ts +5 -1
  46. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  47. package/dist/src/core/living-docs/living-docs-sync.js +36 -33
  48. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  49. package/dist/src/core/living-docs/task-project-specific-generator.d.ts.map +1 -1
  50. package/dist/src/core/living-docs/task-project-specific-generator.js +13 -8
  51. package/dist/src/core/living-docs/task-project-specific-generator.js.map +1 -1
  52. package/dist/src/core/status-line/status-line-manager.d.ts +3 -2
  53. package/dist/src/core/status-line/status-line-manager.d.ts.map +1 -1
  54. package/dist/src/core/status-line/status-line-manager.js +42 -17
  55. package/dist/src/core/status-line/status-line-manager.js.map +1 -1
  56. package/dist/src/core/status-line/status-line-updater.d.ts +67 -0
  57. package/dist/src/core/status-line/status-line-updater.d.ts.map +1 -0
  58. package/dist/src/core/status-line/status-line-updater.js +203 -0
  59. package/dist/src/core/status-line/status-line-updater.js.map +1 -0
  60. package/dist/src/core/status-line/types.d.ts +19 -5
  61. package/dist/src/core/status-line/types.d.ts.map +1 -1
  62. package/dist/src/core/status-line/types.js +3 -3
  63. package/dist/src/core/status-line/types.js.map +1 -1
  64. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -1
  65. package/dist/src/integrations/jira/jira-incremental-mapper.js +4 -0
  66. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -1
  67. package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -1
  68. package/dist/src/integrations/jira/jira-mapper.js +4 -0
  69. package/dist/src/integrations/jira/jira-mapper.js.map +1 -1
  70. package/dist/src/utils/logger.d.ts +48 -0
  71. package/dist/src/utils/logger.d.ts.map +1 -0
  72. package/dist/src/utils/logger.js +53 -0
  73. package/dist/src/utils/logger.js.map +1 -0
  74. package/package.json +3 -2
  75. package/plugins/specweave/agents/code-standards-detective/AGENT.md +828 -0
  76. package/plugins/specweave/agents/test-aware-planner/templates/task-non-testable.md.template +12 -0
  77. package/plugins/specweave/agents/test-aware-planner/templates/task-testable.md.template +12 -0
  78. package/plugins/specweave/commands/specweave-analyze-standards.sh +315 -0
  79. package/plugins/specweave/commands/specweave-done.md +91 -4
  80. package/plugins/specweave/commands/specweave-reopen.md +29 -2
  81. package/plugins/specweave/commands/specweave-sync-docs.md +137 -22
  82. package/plugins/specweave/commands/specweave-update-status.md +151 -0
  83. package/plugins/specweave/hooks/lib/update-status-line.sh +39 -8
  84. package/plugins/specweave/hooks/user-prompt-submit.sh +21 -0
  85. package/plugins/specweave/hooks/validate-increment-completion.sh +113 -0
  86. package/plugins/specweave/skills/brownfield-analyzer/SKILL.md +40 -3
  87. package/plugins/specweave/skills/code-standards-analyzer/SKILL.md +455 -0
  88. package/plugins/specweave/templates/coding-standards.md.template +447 -0
  89. package/plugins/specweave-ado/lib/ado-multi-project-sync.js +0 -1
  90. package/plugins/specweave-github/commands/specweave-github-cleanup-duplicates.md +21 -0
  91. package/plugins/specweave-jira/lib/enhanced-jira-sync.js +3 -3
  92. package/plugins/specweave-ado/lib/enhanced-ado-sync.js +0 -170
  93. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +0 -3222
@@ -20,6 +20,7 @@ export declare class StatusLineManager {
20
20
  * Render status line
21
21
  *
22
22
  * Returns formatted string or null if no active increment.
23
+ * NOW supports multiple active increments (up to 2).
23
24
  */
24
25
  render(): string | null;
25
26
  /**
@@ -31,8 +32,8 @@ export declare class StatusLineManager {
31
32
  /**
32
33
  * Format status line
33
34
  *
34
- * Format: [XXXX-name] ████░░░░ X/Y (Z open)
35
- * Shows: Full ID always to prevent confusion
35
+ * Format: [inc-1] ████░░░░ X/Y tasks | A/B ACs | [inc-2] ██████░░ C/D tasks | E/F ACs
36
+ * Shows: Up to 2 active increments with task AND AC completion
36
37
  */
37
38
  private formatStatusLine;
38
39
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"status-line-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/status-line/status-line-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EACL,eAAe,EACf,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,iBAAiB;IAK1B,OAAO,CAAC,OAAO;IAJjB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAmB;gBAGvB,OAAO,GAAE,MAAsB,EACvC,MAAM,GAAE,OAAO,CAAC,gBAAgB,CAAM;IAMxC;;;;OAIG;IACI,MAAM,IAAI,MAAM,GAAG,IAAI;IAa9B;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAsBjB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB;;OAEG;IACI,YAAY,IAAI,eAAe,GAAG,IAAI;IAY7C;;OAEG;IACI,UAAU,IAAI,IAAI;CAS1B"}
1
+ {"version":3,"file":"status-line-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/status-line/status-line-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EACL,eAAe,EACf,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,iBAAiB;IAK1B,OAAO,CAAC,OAAO;IAJjB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAmB;gBAGvB,OAAO,GAAE,MAAsB,EACvC,MAAM,GAAE,OAAO,CAAC,gBAAgB,CAAM;IAMxC;;;;;OAKG;IACI,MAAM,IAAI,MAAM,GAAG,IAAI;IAqB9B;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAsBjB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAgDxB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB;;OAEG;IACI,YAAY,IAAI,eAAe,GAAG,IAAI;IAY7C;;OAEG;IACI,UAAU,IAAI,IAAI;CAS1B"}
@@ -23,15 +23,22 @@ export class StatusLineManager {
23
23
  * Render status line
24
24
  *
25
25
  * Returns formatted string or null if no active increment.
26
+ * NOW supports multiple active increments (up to 2).
26
27
  */
27
28
  render() {
28
29
  if (!this.config.enabled) {
29
30
  return null;
30
31
  }
31
32
  const cache = this.readCache();
32
- if (!cache || !cache.current) {
33
+ if (!cache) {
33
34
  return 'No active increment';
34
35
  }
36
+ // Support both new and old format
37
+ const increments = cache.activeIncrements ||
38
+ (cache.current ? [cache.current] : []);
39
+ if (increments.length === 0) {
40
+ return cache.message || 'No active increment';
41
+ }
35
42
  return this.formatStatusLine(cache);
36
43
  }
37
44
  /**
@@ -61,26 +68,44 @@ export class StatusLineManager {
61
68
  /**
62
69
  * Format status line
63
70
  *
64
- * Format: [XXXX-name] ████░░░░ X/Y (Z open)
65
- * Shows: Full ID always to prevent confusion
71
+ * Format: [inc-1] ████░░░░ X/Y tasks | A/B ACs | [inc-2] ██████░░ C/D tasks | E/F ACs
72
+ * Shows: Up to 2 active increments with task AND AC completion
66
73
  */
67
74
  formatStatusLine(cache) {
68
- const current = cache.current;
69
75
  const parts = [];
70
- // Always show increment ID (XXXX-name format) for clarity
71
- // Truncate if needed to fit in status line
72
- const name = this.truncate(current.name, this.config.maxNameLength);
73
- parts.push(`[${name}]`);
74
- // Progress bar
75
- const bar = this.renderProgressBar(current.completed, current.total);
76
- parts.push(bar);
77
- // Tasks count
78
- parts.push(`${current.completed}/${current.total}`);
79
- // Open count (if more than 1)
80
- if (cache.openCount > 1) {
81
- parts.push(`(${cache.openCount} open)`);
76
+ // Support both new and old format (backward compatibility)
77
+ const increments = cache.activeIncrements ||
78
+ (cache.current ? [cache.current] : []);
79
+ // Show each active increment (up to 2)
80
+ for (const inc of increments) {
81
+ const incrementParts = [];
82
+ // Increment ID (truncate if needed)
83
+ // Use longer truncation for single increment, shorter for multiple
84
+ const maxNameLength = increments.length === 1 ? this.config.maxNameLength : 20;
85
+ const name = this.truncate(inc.name, maxNameLength);
86
+ incrementParts.push(`[${name}]`);
87
+ // Progress bar
88
+ const bar = this.renderProgressBar(inc.completed, inc.total);
89
+ incrementParts.push(bar);
90
+ // Tasks count
91
+ incrementParts.push(`${inc.completed}/${inc.total} tasks`);
92
+ // AC count (if available)
93
+ if (inc.acsTotal !== undefined && inc.acsCompleted !== undefined) {
94
+ incrementParts.push(`${inc.acsCompleted}/${inc.acsTotal} ACs`);
95
+ }
96
+ parts.push(incrementParts.join(' | '));
97
+ }
98
+ // Show remaining open count (if more than shown)
99
+ if (cache.openCount > increments.length) {
100
+ parts.push(`(+${cache.openCount - increments.length} more)`);
101
+ }
102
+ // Join all parts with separator
103
+ const formatted = parts.join(' · '); // Use different separator for increments
104
+ // Truncate if too long (max 120 chars for status line with AC metrics)
105
+ if (formatted.length > 120) {
106
+ return this.truncate(formatted, 117) + '...';
82
107
  }
83
- return parts.join(' ');
108
+ return formatted;
84
109
  }
85
110
  /**
86
111
  * Render ASCII progress bar
@@ -1 +1 @@
1
- {"version":3,"file":"status-line-manager.js","sourceRoot":"","sources":["../../../../src/core/status-line/status-line-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status-line-manager.js","sourceRoot":"","sources":["../../../../src/core/status-line/status-line-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAGL,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AAEpB,MAAM,OAAO,iBAAiB;IAI5B,YACU,UAAkB,OAAO,CAAC,GAAG,EAAE,EACvC,SAAoC,EAAE;QAD9B,YAAO,GAAP,OAAO,CAAwB;QAGvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,0BAA0B,EAAE,GAAG,MAAM,EAAE,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACI,MAAM;QACX,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QAED,kCAAkC;QAClC,MAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB;YACvC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,OAAO,IAAI,qBAAqB,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACK,SAAS;QACf,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;YAErD,kDAAkD;YAClD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9D,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAClC,mDAAmD;gBACnD,2BAA2B;YAC7B,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,gBAAgB,CAAC,KAAsB;QAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,2DAA2D;QAC3D,MAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB;YACvC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzC,uCAAuC;QACvC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAa,EAAE,CAAC;YAEpC,oCAAoC;YACpC,mEAAmE;YACnE,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACpD,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;YAEjC,eAAe;YACf,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7D,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEzB,cAAc;YACd,cAAc,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC;YAE3D,0BAA0B;YAC1B,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACjE,cAAc,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,QAAQ,MAAM,CAAC,CAAC;YACjE,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,iDAAiD;QACjD,IAAI,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC,MAAM,QAAQ,CAAC,CAAC;QAC/D,CAAC;QAED,gCAAgC;QAChC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,yCAAyC;QAE9E,uEAAuE;QACvE,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QAC/C,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,SAAiB,EAAE,KAAa;QACxD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAClD,CAAC;QAED,gEAAgE;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC;QAEjE,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,GAAW,EAAE,SAAiB;QAC7C,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC/C,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACI,UAAU;QACf,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Status Line Updater
3
+ *
4
+ * Synchronously updates status line cache by scanning spec.md files.
5
+ * Equivalent to update-status-line.sh but runs SYNCHRONOUSLY.
6
+ *
7
+ * Purpose: Force-refresh status line when it appears stale
8
+ *
9
+ * Architecture:
10
+ * 1. Scan all spec.md files for open increments (status = active/planning/in-progress)
11
+ * 2. Sort by creation date (oldest first)
12
+ * 3. Select first as current increment
13
+ * 4. Parse tasks.md for progress (use TaskCounter for accuracy)
14
+ * 5. Write cache atomically (.specweave/state/status-line.json)
15
+ *
16
+ * Performance: ~50-100ms (acceptable for user-facing commands)
17
+ */
18
+ import { StatusLineCache } from './types.js';
19
+ /**
20
+ * Status Line Updater
21
+ *
22
+ * Provides synchronous status line cache updates.
23
+ */
24
+ export declare class StatusLineUpdater {
25
+ private rootDir;
26
+ constructor(rootDir?: string);
27
+ /**
28
+ * Update status line cache synchronously
29
+ *
30
+ * This is the main entry point for force-refreshing the status line.
31
+ * NOW supports up to 2 active increments (aligned with ActiveIncrementManager).
32
+ */
33
+ update(): Promise<void>;
34
+ /**
35
+ * Find all open increments by scanning spec.md files
36
+ *
37
+ * Logic:
38
+ * - Scan .specweave/increments/[id]/spec.md
39
+ * - Parse YAML frontmatter for status field
40
+ * - Filter: status === 'active' || 'planning' || 'in-progress'
41
+ * - Extract: {id, created, status}
42
+ */
43
+ private findOpenIncrements;
44
+ /**
45
+ * Parse spec.md YAML frontmatter
46
+ *
47
+ * Extracts: status, created
48
+ */
49
+ private parseSpecMetadata;
50
+ /**
51
+ * Parse tasks.md for progress
52
+ *
53
+ * Uses TaskCounter for accurate counting (fixes overcounting bug)
54
+ */
55
+ private parseTaskProgress;
56
+ /**
57
+ * Write cache atomically
58
+ *
59
+ * Uses temp file → rename pattern to prevent corruption
60
+ */
61
+ private writeCache;
62
+ /**
63
+ * Get current cache (for testing)
64
+ */
65
+ getCurrentCache(): Promise<StatusLineCache | null>;
66
+ }
67
+ //# sourceMappingURL=status-line-updater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-line-updater.d.ts","sourceRoot":"","sources":["../../../../src/core/status-line/status-line-updater.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAE,eAAe,EAAoB,MAAM,YAAY,CAAC;AA2B/D;;;;GAIG;AACH,qBAAa,iBAAiB;IAChB,OAAO,CAAC,OAAO;gBAAP,OAAO,GAAE,MAAsB;IAEnD;;;;;OAKG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA+C7B;;;;;;;;OAQG;YACW,kBAAkB;IAyChC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;;;OAIG;YACW,iBAAiB;IAuB/B;;;;OAIG;YACW,UAAU;IAaxB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;CAczD"}
@@ -0,0 +1,203 @@
1
+ /**
2
+ * Status Line Updater
3
+ *
4
+ * Synchronously updates status line cache by scanning spec.md files.
5
+ * Equivalent to update-status-line.sh but runs SYNCHRONOUSLY.
6
+ *
7
+ * Purpose: Force-refresh status line when it appears stale
8
+ *
9
+ * Architecture:
10
+ * 1. Scan all spec.md files for open increments (status = active/planning/in-progress)
11
+ * 2. Sort by creation date (oldest first)
12
+ * 3. Select first as current increment
13
+ * 4. Parse tasks.md for progress (use TaskCounter for accuracy)
14
+ * 5. Write cache atomically (.specweave/state/status-line.json)
15
+ *
16
+ * Performance: ~50-100ms (acceptable for user-facing commands)
17
+ */
18
+ import fs from 'fs-extra';
19
+ import * as path from 'path';
20
+ import { TaskCounter } from './task-counter.js';
21
+ /**
22
+ * Maximum number of active increments to display in status line
23
+ * Aligned with ActiveIncrementManager maximum
24
+ */
25
+ const MAX_ACTIVE_INCREMENTS_DISPLAY = 2;
26
+ /**
27
+ * Status Line Updater
28
+ *
29
+ * Provides synchronous status line cache updates.
30
+ */
31
+ export class StatusLineUpdater {
32
+ constructor(rootDir = process.cwd()) {
33
+ this.rootDir = rootDir;
34
+ }
35
+ /**
36
+ * Update status line cache synchronously
37
+ *
38
+ * This is the main entry point for force-refreshing the status line.
39
+ * NOW supports up to 2 active increments (aligned with ActiveIncrementManager).
40
+ */
41
+ async update() {
42
+ // Step 1: Find all open increments (scan spec.md)
43
+ const openIncrements = await this.findOpenIncrements();
44
+ // Step 2: Sort by creation date (oldest first)
45
+ const sorted = openIncrements.sort((a, b) => {
46
+ const aTime = new Date(a.created).getTime();
47
+ const bTime = new Date(b.created).getTime();
48
+ return aTime - bTime; // Ascending (oldest first)
49
+ });
50
+ // Step 3: Take up to MAX_ACTIVE_INCREMENTS_DISPLAY active increments
51
+ const activeIds = sorted.slice(0, MAX_ACTIVE_INCREMENTS_DISPLAY);
52
+ // Step 4: Parse tasks.md for EACH active increment
53
+ const activeIncrements = await Promise.all(activeIds.map(async (inc) => {
54
+ const progress = await this.parseTaskProgress(inc.id);
55
+ return {
56
+ id: inc.id,
57
+ name: inc.id, // Format: "0043-spec-md-desync-fix"
58
+ completed: progress.completed,
59
+ total: progress.total,
60
+ percentage: progress.percentage
61
+ };
62
+ }));
63
+ // Step 5: Build cache object
64
+ const cache = {
65
+ activeIncrements,
66
+ openCount: openIncrements.length,
67
+ lastUpdate: new Date().toISOString(),
68
+ // BACKWARD COMPATIBILITY: Set 'current' to first active increment
69
+ current: activeIncrements[0] || null,
70
+ // Add default state message when no active increments
71
+ message: openIncrements.length === 0
72
+ ? 'No active increments. Start with /specweave:increment "feature name"'
73
+ : undefined
74
+ };
75
+ // Step 6: Write cache atomically
76
+ await this.writeCache(cache);
77
+ }
78
+ /**
79
+ * Find all open increments by scanning spec.md files
80
+ *
81
+ * Logic:
82
+ * - Scan .specweave/increments/[id]/spec.md
83
+ * - Parse YAML frontmatter for status field
84
+ * - Filter: status === 'active' || 'planning' || 'in-progress'
85
+ * - Extract: {id, created, status}
86
+ */
87
+ async findOpenIncrements() {
88
+ const incrementsDir = path.join(this.rootDir, '.specweave/increments');
89
+ if (!await fs.pathExists(incrementsDir)) {
90
+ return [];
91
+ }
92
+ const entries = await fs.readdir(incrementsDir);
93
+ const openIncrements = [];
94
+ for (const entry of entries) {
95
+ // Skip special directories (_archive, etc.)
96
+ if (entry.startsWith('_')) {
97
+ continue;
98
+ }
99
+ const specPath = path.join(incrementsDir, entry, 'spec.md');
100
+ if (await fs.pathExists(specPath)) {
101
+ const specContent = await fs.readFile(specPath, 'utf-8');
102
+ const metadata = this.parseSpecMetadata(specContent);
103
+ // Check if increment is open (active, planning, or in-progress)
104
+ // ONLY accepts official IncrementStatus enum values
105
+ if (metadata.status === 'active' ||
106
+ metadata.status === 'planning' ||
107
+ metadata.status === 'in-progress') {
108
+ openIncrements.push({
109
+ id: entry,
110
+ created: metadata.created || '1970-01-01',
111
+ status: metadata.status
112
+ });
113
+ }
114
+ }
115
+ }
116
+ return openIncrements;
117
+ }
118
+ /**
119
+ * Parse spec.md YAML frontmatter
120
+ *
121
+ * Extracts: status, created
122
+ */
123
+ parseSpecMetadata(content) {
124
+ const metadata = {
125
+ status: '',
126
+ created: '1970-01-01'
127
+ };
128
+ // Extract YAML frontmatter (between --- markers)
129
+ const frontmatterMatch = content.match(/^---\s*\n([\s\S]*?)\n---/);
130
+ if (!frontmatterMatch) {
131
+ return metadata;
132
+ }
133
+ const frontmatter = frontmatterMatch[1];
134
+ // Parse status field
135
+ const statusMatch = frontmatter.match(/^status:\s*(.+)$/m);
136
+ if (statusMatch) {
137
+ metadata.status = statusMatch[1].trim();
138
+ }
139
+ // Parse created field
140
+ const createdMatch = frontmatter.match(/^created:\s*(.+)$/m);
141
+ if (createdMatch) {
142
+ metadata.created = createdMatch[1].trim();
143
+ }
144
+ return metadata;
145
+ }
146
+ /**
147
+ * Parse tasks.md for progress
148
+ *
149
+ * Uses TaskCounter for accurate counting (fixes overcounting bug)
150
+ */
151
+ async parseTaskProgress(incrementId) {
152
+ const tasksPath = path.join(this.rootDir, '.specweave/increments', incrementId, 'tasks.md');
153
+ if (!await fs.pathExists(tasksPath)) {
154
+ return { completed: 0, total: 0, percentage: 0 };
155
+ }
156
+ try {
157
+ const tasksContent = await fs.readFile(tasksPath, 'utf-8');
158
+ const counts = TaskCounter.countTasks(tasksContent);
159
+ return {
160
+ completed: counts.completed,
161
+ total: counts.total,
162
+ percentage: counts.percentage
163
+ };
164
+ }
165
+ catch (error) {
166
+ // Graceful degradation: If TaskCounter fails, return zeros
167
+ console.warn(`⚠️ Failed to parse tasks.md for ${incrementId}:`, error);
168
+ return { completed: 0, total: 0, percentage: 0 };
169
+ }
170
+ }
171
+ /**
172
+ * Write cache atomically
173
+ *
174
+ * Uses temp file → rename pattern to prevent corruption
175
+ */
176
+ async writeCache(cache) {
177
+ const cacheFile = path.join(this.rootDir, '.specweave/state/status-line.json');
178
+ const cacheDir = path.dirname(cacheFile);
179
+ // Ensure state directory exists
180
+ await fs.ensureDir(cacheDir);
181
+ // Atomic write: temp file → rename
182
+ const tempFile = `${cacheFile}.tmp`;
183
+ await fs.writeFile(tempFile, JSON.stringify(cache, null, 2), 'utf-8');
184
+ await fs.rename(tempFile, cacheFile);
185
+ }
186
+ /**
187
+ * Get current cache (for testing)
188
+ */
189
+ async getCurrentCache() {
190
+ const cacheFile = path.join(this.rootDir, '.specweave/state/status-line.json');
191
+ if (!await fs.pathExists(cacheFile)) {
192
+ return null;
193
+ }
194
+ try {
195
+ const content = await fs.readFile(cacheFile, 'utf-8');
196
+ return JSON.parse(content);
197
+ }
198
+ catch {
199
+ return null;
200
+ }
201
+ }
202
+ }
203
+ //# sourceMappingURL=status-line-updater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-line-updater.js","sourceRoot":"","sources":["../../../../src/core/status-line/status-line-updater.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,26 @@
1
1
  /**
2
- * Status Line Types (Simplified)
2
+ * Status Line Types
3
3
  *
4
- * Ultra-simple status line with cached progress.
5
- * Shows: [increment-name] ████░░░░ X/Y tasks (Z open)
4
+ * Supports displaying multiple active increments (up to 2).
5
+ * Shows: [inc-1] ████░░░░ X/Y | [inc-2] ██████░░ A/B (Z open)
6
6
  */
7
7
  export interface StatusLineCache {
8
- /** Current active/in-progress increment (null if none) */
9
- current: CurrentIncrement | null;
8
+ /** NEW: Array of active increments (up to 2) */
9
+ activeIncrements: CurrentIncrement[];
10
10
  /** Total number of open increments (active/in-progress/planning) */
11
11
  openCount: number;
12
12
  /** ISO timestamp of last cache update */
13
13
  lastUpdate: string;
14
+ /**
15
+ * DEPRECATED: Use activeIncrements[0] instead
16
+ * Kept for backward compatibility with old code
17
+ */
18
+ current?: CurrentIncrement | null;
19
+ /**
20
+ * Optional message to display when no active increments
21
+ * Used for user guidance when openCount === 0
22
+ */
23
+ message?: string;
14
24
  }
15
25
  export interface CurrentIncrement {
16
26
  /** Increment ID (e.g., "0031-external-tool-status-sync") */
@@ -23,6 +33,10 @@ export interface CurrentIncrement {
23
33
  total: number;
24
34
  /** Completion percentage (0-100) */
25
35
  percentage: number;
36
+ /** Number of completed acceptance criteria (NEW) */
37
+ acsCompleted?: number;
38
+ /** Total number of acceptance criteria (NEW) */
39
+ acsTotal?: number;
26
40
  }
27
41
  export interface StatusLineConfig {
28
42
  /** Enable status line rendering */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/status-line/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAEjC,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAElB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IAEX,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IAEb,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAElB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IAEd,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IAEjB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IAEpB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,0BAA0B,EAAE,gBAKxC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/status-line/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IAErC,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAElB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAElC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IAEX,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IAEb,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAElB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IAEd,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IAEnB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IAEjB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC;IAEpB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,0BAA0B,EAAE,gBAKxC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Status Line Types (Simplified)
2
+ * Status Line Types
3
3
  *
4
- * Ultra-simple status line with cached progress.
5
- * Shows: [increment-name] ████░░░░ X/Y tasks (Z open)
4
+ * Supports displaying multiple active increments (up to 2).
5
+ * Shows: [inc-1] ████░░░░ X/Y | [inc-2] ██████░░ A/B (Z open)
6
6
  */
7
7
  export const DEFAULT_STATUS_LINE_CONFIG = {
8
8
  enabled: true,
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/status-line/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4CH,MAAM,CAAC,MAAM,0BAA0B,GAAqB;IAC1D,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,KAAK,EAAE,oCAAoC;IACxD,gBAAgB,EAAE,CAAC;IACnB,aAAa,EAAE,EAAE;CAClB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/status-line/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8DH,MAAM,CAAC,MAAM,0BAA0B,GAAqB;IAC1D,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,KAAK,EAAE,oCAAoC;IACxD,gBAAgB,EAAE,CAAC;IACnB,aAAa,EAAE,EAAE;CAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"jira-incremental-mapper.d.ts","sourceRoot":"","sources":["../../../../src/integrations/jira/jira-incremental-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;AAMzD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;IAChD,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAuB;gBAE/B,MAAM,EAAE,UAAU,EAAE,WAAW,GAAE,MAAsB;IAMnE;;OAEG;IACU,kBAAkB,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,CAAC;IA6DtE;;OAEG;IACU,wBAAwB,CACnC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAwEtE;;OAEG;IACI,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB;IA+BrE,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,uBAAuB;IA2C/B,OAAO,CAAC,iBAAiB;YAyCX,kBAAkB;YAmBlB,qBAAqB;YAoBrB,yBAAyB;YA4DzB,0BAA0B;YAkB1B,wBAAwB;IA6EtC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,4BAA4B;IAUpC,OAAO,CAAC,gCAAgC;IAKxC,OAAO,CAAC,8BAA8B;IActC,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,OAAO;YAID,uBAAuB;CAetC"}
1
+ {"version":3,"file":"jira-incremental-mapper.d.ts","sourceRoot":"","sources":["../../../../src/integrations/jira/jira-incremental-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;AAMzD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;IAChD,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAuB;gBAE/B,MAAM,EAAE,UAAU,EAAE,WAAW,GAAE,MAAsB;IAMnE;;OAEG;IACU,kBAAkB,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,CAAC;IA6DtE;;OAEG;IACU,wBAAwB,CACnC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA6EtE;;OAEG;IACI,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB;IA+BrE,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,uBAAuB;IA2C/B,OAAO,CAAC,iBAAiB;YAyCX,kBAAkB;YAmBlB,qBAAqB;YAoBrB,yBAAyB;YA4DzB,0BAA0B;YAkB1B,wBAAwB;IA6EtC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,4BAA4B;IAUpC,OAAO,CAAC,gCAAgC;IAKxC,OAAO,CAAC,8BAA8B;IActC,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,OAAO;YAID,uBAAuB;CAetC"}
@@ -78,6 +78,10 @@ export class JiraIncrementalMapper {
78
78
  // 2. Auto-number increment
79
79
  const incrementId = this.getNextIncrementId();
80
80
  console.log(` ✅ Auto-numbered as Increment ${incrementId}`);
81
+ // 2.1. Validate increment before creation (check for duplicates)
82
+ const { MetadataManager } = await import('../../core/increment/metadata-manager.js');
83
+ await MetadataManager.validateBeforeCreate(incrementId, this.projectRoot);
84
+ console.log(` ✅ Validated increment ID (no duplicates)`);
81
85
  // 3. Create increment folder
82
86
  const incrementFolder = path.join(this.projectRoot, '.specweave', 'increments', incrementId);
83
87
  this.ensureDir(incrementFolder);
@@ -1 +1 @@
1
- {"version":3,"file":"jira-incremental-mapper.js","sourceRoot":"","sources":["../../../../src/integrations/jira/jira-incremental-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jira-incremental-mapper.js","sourceRoot":"","sources":["../../../../src/integrations/jira/jira-incremental-mapper.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"jira-mapper.d.ts","sourceRoot":"","sources":["../../../../src/integrations/jira/jira-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jira-mapper.d.ts","sourceRoot":"","sources":["../../../../src/integrations/jira/jira-mapper.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,10 @@ export class JiraMapper {
45
45
  // 4. Auto-number next increment
46
46
  const incrementId = this.getNextIncrementId();
47
47
  console.log(` ✅ Auto-numbered as Increment ${incrementId}`);
48
+ // 4.1. Validate increment before creation (check for duplicates)
49
+ const { MetadataManager } = await import('../../core/increment/metadata-manager.js');
50
+ await MetadataManager.validateBeforeCreate(incrementId, this.projectRoot);
51
+ console.log(` ✅ Validated increment ID (no duplicates)`);
48
52
  // 5. Create increment folder structure
49
53
  const incrementFolder = path.join(this.projectRoot, '.specweave', 'increments', incrementId);
50
54
  this.ensureDir(incrementFolder);