specweave 0.28.62 → 0.28.64

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 (40) hide show
  1. package/CLAUDE.md +23 -0
  2. package/README.md +23 -1
  3. package/dist/src/cli/helpers/init/ado-repo-cloning.d.ts.map +1 -1
  4. package/dist/src/cli/helpers/init/ado-repo-cloning.js +29 -79
  5. package/dist/src/cli/helpers/init/ado-repo-cloning.js.map +1 -1
  6. package/dist/src/cli/workers/clone-worker.d.ts +18 -0
  7. package/dist/src/cli/workers/clone-worker.d.ts.map +1 -0
  8. package/dist/src/cli/workers/clone-worker.js +191 -0
  9. package/dist/src/cli/workers/clone-worker.js.map +1 -0
  10. package/dist/src/core/background/index.d.ts +2 -1
  11. package/dist/src/core/background/index.d.ts.map +1 -1
  12. package/dist/src/core/background/index.js +1 -1
  13. package/dist/src/core/background/index.js.map +1 -1
  14. package/dist/src/core/background/job-launcher.d.ts +20 -0
  15. package/dist/src/core/background/job-launcher.d.ts.map +1 -1
  16. package/dist/src/core/background/job-launcher.js +92 -4
  17. package/dist/src/core/background/job-launcher.js.map +1 -1
  18. package/dist/src/core/increment/metadata-manager.d.ts.map +1 -1
  19. package/dist/src/core/increment/metadata-manager.js +11 -0
  20. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  21. package/dist/src/core/types/increment-metadata.d.ts +33 -2
  22. package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
  23. package/dist/src/core/types/increment-metadata.js +32 -5
  24. package/dist/src/core/types/increment-metadata.js.map +1 -1
  25. package/package.json +1 -1
  26. package/plugins/specweave/commands/specweave-done.md +30 -1
  27. package/plugins/specweave/commands/specweave-next.md +66 -14
  28. package/plugins/specweave/hooks/hooks.json +12 -0
  29. package/plugins/specweave/hooks/v2/dispatchers/post-tool-use.sh +16 -0
  30. package/plugins/specweave/hooks/v2/guards/completion-guard.sh +81 -0
  31. package/plugins/specweave/hooks/v2/handlers/github-sync-handler.sh +19 -2
  32. package/plugins/specweave/hooks/v2/handlers/living-docs-handler.sh +20 -3
  33. package/plugins/specweave/hooks/v2/handlers/living-specs-handler.sh +19 -5
  34. package/plugins/specweave/hooks/v2/handlers/status-update.sh +5 -1
  35. package/plugins/specweave/hooks/v2/queue/processor.sh +77 -10
  36. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +11 -0
  37. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
  38. package/plugins/specweave/lib/vendor/core/types/increment-metadata.d.ts +33 -2
  39. package/plugins/specweave/lib/vendor/core/types/increment-metadata.js +32 -5
  40. package/plugins/specweave/lib/vendor/core/types/increment-metadata.js.map +1 -1
@@ -17,7 +17,20 @@ export declare enum IncrementStatus {
17
17
  BACKLOG = "backlog",
18
18
  /** Temporarily stopped (blocked by external dependency, deprioritized) */
19
19
  PAUSED = "paused",
20
- /** All tasks complete, increment finished */
20
+ /**
21
+ * All tasks complete, awaiting user review (v0.28.63+)
22
+ *
23
+ * CRITICAL: This is a gating status that prevents auto-completion bugs.
24
+ * - Auto-transitions to READY_FOR_REVIEW when all tasks completed
25
+ * - User MUST explicitly run /specweave:done to move to COMPLETED
26
+ * - /specweave:next will prompt for confirmation before closure
27
+ *
28
+ * Prevents the bug where status becomes "completed" without:
29
+ * 1. ACs being checked in spec.md
30
+ * 2. User approval
31
+ */
32
+ READY_FOR_REVIEW = "ready_for_review",
33
+ /** All tasks complete AND user approved - increment finished */
21
34
  COMPLETED = "completed",
22
35
  /** Work abandoned (requirements changed, obsolete, etc.) */
23
36
  ABANDONED = "abandoned"
@@ -71,6 +84,18 @@ export interface IncrementMetadata {
71
84
  abandonedReason?: string;
72
85
  /** Timestamp when abandoned (ISO 8601) */
73
86
  abandonedAt?: string;
87
+ /**
88
+ * Timestamp when moved to ready_for_review (ISO 8601)
89
+ * Set automatically when all tasks are completed
90
+ * (v0.28.63+)
91
+ */
92
+ readyForReviewAt?: string;
93
+ /**
94
+ * Timestamp when user approved completion (ISO 8601)
95
+ * Set only via explicit /specweave:done command
96
+ * (v0.28.63+)
97
+ */
98
+ approvedAt?: string;
74
99
  }
75
100
  /**
76
101
  * Increment metadata with additional computed fields
@@ -91,6 +116,11 @@ export interface IncrementMetadataExtended extends IncrementMetadata {
91
116
  /**
92
117
  * Valid status transitions
93
118
  * Enforces increment lifecycle rules
119
+ *
120
+ * CRITICAL (v0.28.63+): ACTIVE cannot directly transition to COMPLETED!
121
+ * Must go through READY_FOR_REVIEW first, which requires explicit user approval.
122
+ * This prevents the auto-completion bug where increments are marked "completed"
123
+ * without ACs being checked or user confirmation.
94
124
  */
95
125
  export declare const VALID_TRANSITIONS: Record<IncrementStatus, IncrementStatus[]>;
96
126
  /**
@@ -137,11 +167,12 @@ export declare function shouldAutoAbandon(metadata: IncrementMetadata): boolean;
137
167
  *
138
168
  * ACTIVE: Currently executing tasks, consumes team capacity
139
169
  * PAUSED: Temporarily blocked but still holding resources/context
170
+ * READY_FOR_REVIEW: Tasks done, awaiting approval (still blocks capacity)
140
171
  *
141
172
  * Statuses that do NOT count:
142
173
  * - PLANNING: Lightweight spec/planning work, parallel-safe
143
174
  * - BACKLOG: Not started yet
144
- * - COMPLETED: Already done
175
+ * - COMPLETED: Already done (user approved)
145
176
  * - ABANDONED: Cancelled
146
177
  */
147
178
  export declare const WIP_COUNTED_STATUSES: IncrementStatus[];
@@ -18,7 +18,20 @@ export var IncrementStatus;
18
18
  IncrementStatus["BACKLOG"] = "backlog";
19
19
  /** Temporarily stopped (blocked by external dependency, deprioritized) */
20
20
  IncrementStatus["PAUSED"] = "paused";
21
- /** All tasks complete, increment finished */
21
+ /**
22
+ * All tasks complete, awaiting user review (v0.28.63+)
23
+ *
24
+ * CRITICAL: This is a gating status that prevents auto-completion bugs.
25
+ * - Auto-transitions to READY_FOR_REVIEW when all tasks completed
26
+ * - User MUST explicitly run /specweave:done to move to COMPLETED
27
+ * - /specweave:next will prompt for confirmation before closure
28
+ *
29
+ * Prevents the bug where status becomes "completed" without:
30
+ * 1. ACs being checked in spec.md
31
+ * 2. User approval
32
+ */
33
+ IncrementStatus["READY_FOR_REVIEW"] = "ready_for_review";
34
+ /** All tasks complete AND user approved - increment finished */
22
35
  IncrementStatus["COMPLETED"] = "completed";
23
36
  /** Work abandoned (requirements changed, obsolete, etc.) */
24
37
  IncrementStatus["ABANDONED"] = "abandoned";
@@ -45,6 +58,11 @@ export var IncrementType;
45
58
  /**
46
59
  * Valid status transitions
47
60
  * Enforces increment lifecycle rules
61
+ *
62
+ * CRITICAL (v0.28.63+): ACTIVE cannot directly transition to COMPLETED!
63
+ * Must go through READY_FOR_REVIEW first, which requires explicit user approval.
64
+ * This prevents the auto-completion bug where increments are marked "completed"
65
+ * without ACs being checked or user confirmation.
48
66
  */
49
67
  export const VALID_TRANSITIONS = {
50
68
  [IncrementStatus.PLANNING]: [
@@ -55,8 +73,9 @@ export const VALID_TRANSITIONS = {
55
73
  [IncrementStatus.ACTIVE]: [
56
74
  IncrementStatus.BACKLOG,
57
75
  IncrementStatus.PAUSED,
58
- IncrementStatus.COMPLETED,
76
+ IncrementStatus.READY_FOR_REVIEW, // All tasks done → awaiting review
59
77
  IncrementStatus.ABANDONED
78
+ // NOTE: COMPLETED intentionally NOT allowed! Must go through READY_FOR_REVIEW
60
79
  ],
61
80
  [IncrementStatus.BACKLOG]: [
62
81
  IncrementStatus.PLANNING, // Resume planning
@@ -65,10 +84,16 @@ export const VALID_TRANSITIONS = {
65
84
  ],
66
85
  [IncrementStatus.PAUSED]: [
67
86
  IncrementStatus.ACTIVE,
87
+ IncrementStatus.READY_FOR_REVIEW, // Can mark done while paused
68
88
  IncrementStatus.ABANDONED
69
89
  ],
90
+ [IncrementStatus.READY_FOR_REVIEW]: [
91
+ IncrementStatus.COMPLETED, // ONLY via explicit /specweave:done with user approval
92
+ IncrementStatus.ACTIVE, // Reopen if more work needed
93
+ IncrementStatus.ABANDONED // Cancel if requirements changed
94
+ ],
70
95
  [IncrementStatus.COMPLETED]: [
71
- // NEW: Allow reopening completed increments when issues discovered
96
+ // Allow reopening completed increments when issues discovered
72
97
  IncrementStatus.ACTIVE, // Reopen for fixes
73
98
  IncrementStatus.ABANDONED // Mark as failed (rare)
74
99
  ],
@@ -160,16 +185,18 @@ export function shouldAutoAbandon(metadata) {
160
185
  *
161
186
  * ACTIVE: Currently executing tasks, consumes team capacity
162
187
  * PAUSED: Temporarily blocked but still holding resources/context
188
+ * READY_FOR_REVIEW: Tasks done, awaiting approval (still blocks capacity)
163
189
  *
164
190
  * Statuses that do NOT count:
165
191
  * - PLANNING: Lightweight spec/planning work, parallel-safe
166
192
  * - BACKLOG: Not started yet
167
- * - COMPLETED: Already done
193
+ * - COMPLETED: Already done (user approved)
168
194
  * - ABANDONED: Cancelled
169
195
  */
170
196
  export const WIP_COUNTED_STATUSES = [
171
197
  IncrementStatus.ACTIVE,
172
- IncrementStatus.PAUSED // Paused work still blocks team capacity
198
+ IncrementStatus.PAUSED, // Paused work still blocks team capacity
199
+ IncrementStatus.READY_FOR_REVIEW // Awaiting user approval, still in progress
173
200
  ];
174
201
  /**
175
202
  * Check if increment status counts toward WIP (Work In Progress) limits
@@ -1 +1 @@
1
- {"version":3,"file":"increment-metadata.js","sourceRoot":"","sources":["../../../../src/core/types/increment-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"increment-metadata.js","sourceRoot":"","sources":["../../../../src/core/types/increment-metadata.ts"],"names":[],"mappings":"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"}