specweave 1.0.30 → 1.0.32
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.
- package/CLAUDE.md +140 -1235
- package/bin/specweave.js +23 -0
- package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +3 -0
- package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.js +39 -0
- package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
- package/dist/src/cli/commands/set-sync-target.d.ts +41 -0
- package/dist/src/cli/commands/set-sync-target.d.ts.map +1 -0
- package/dist/src/cli/commands/set-sync-target.js +126 -0
- package/dist/src/cli/commands/set-sync-target.js.map +1 -0
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.d.ts.map +1 -1
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js +5 -8
- package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js.map +1 -1
- package/dist/src/core/hooks/HookScanner.d.ts +32 -0
- package/dist/src/core/hooks/HookScanner.d.ts.map +1 -1
- package/dist/src/core/hooks/HookScanner.js +125 -1
- package/dist/src/core/hooks/HookScanner.js.map +1 -1
- package/dist/src/core/hooks/types.d.ts +10 -1
- package/dist/src/core/hooks/types.d.ts.map +1 -1
- package/dist/src/core/increment/metadata-manager.d.ts +67 -1
- package/dist/src/core/increment/metadata-manager.d.ts.map +1 -1
- package/dist/src/core/increment/metadata-manager.js +93 -0
- package/dist/src/core/increment/metadata-manager.js.map +1 -1
- package/dist/src/core/project/index.d.ts +21 -0
- package/dist/src/core/project/index.d.ts.map +1 -0
- package/dist/src/core/project/index.js +22 -0
- package/dist/src/core/project/index.js.map +1 -0
- package/dist/src/core/project/project-service.d.ts +122 -0
- package/dist/src/core/project/project-service.d.ts.map +1 -0
- package/dist/src/core/project/project-service.js +334 -0
- package/dist/src/core/project/project-service.js.map +1 -0
- package/dist/src/core/sync/external-tool-resolver.d.ts +171 -0
- package/dist/src/core/sync/external-tool-resolver.d.ts.map +1 -0
- package/dist/src/core/sync/external-tool-resolver.js +569 -0
- package/dist/src/core/sync/external-tool-resolver.js.map +1 -0
- package/dist/src/core/types/increment-metadata.d.ts +92 -0
- package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
- package/dist/src/hooks/processor.d.ts +7 -3
- package/dist/src/hooks/processor.d.ts.map +1 -1
- package/dist/src/hooks/processor.js +11 -5
- package/dist/src/hooks/processor.js.map +1 -1
- package/package.json +1 -1
- package/plugins/specweave/hooks/hooks.json +0 -69
- package/plugins/specweave/hooks/v2/handlers/project-bridge-handler.sh +96 -0
- package/plugins/specweave/hooks/v2/queue/processor.sh +13 -5
- package/plugins/specweave/lib/hooks/project-bridge.js +76 -0
- package/plugins/specweave/lib/hooks/update-tasks-md.js +0 -0
- package/plugins/specweave/lib/hooks/us-completion-orchestrator.js +0 -0
- package/plugins/specweave/lib/vendor/core/increment/metadata-manager.d.ts +67 -1
- package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +93 -0
- package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
- package/plugins/specweave/lib/vendor/core/types/increment-metadata.d.ts +92 -0
- package/plugins/specweave-github/lib/github-client-v2.js +39 -0
- package/plugins/specweave-github/lib/github-client-v2.ts +44 -0
- package/plugins/specweave/hooks/docs-changed.sh +0 -87
- package/plugins/specweave/hooks/human-input-required.sh +0 -83
- package/plugins/specweave/hooks/post-edit-write-consolidated.sh +0 -428
- package/plugins/specweave/hooks/post-first-increment.sh +0 -61
- package/plugins/specweave/hooks/post-increment-change.sh +0 -103
- package/plugins/specweave/hooks/post-increment-completion.sh +0 -513
- package/plugins/specweave/hooks/post-increment-planning.sh +0 -1204
- package/plugins/specweave/hooks/post-increment-status-change.sh +0 -243
- package/plugins/specweave/hooks/post-metadata-change.sh +0 -246
- package/plugins/specweave/hooks/post-spec-update.sh +0 -158
- package/plugins/specweave/hooks/post-task-completion.sh +0 -557
- package/plugins/specweave/hooks/post-task-edit.sh +0 -47
- package/plugins/specweave/hooks/post-user-story-complete.sh +0 -230
- package/plugins/specweave/hooks/pre-command-deduplication.sh +0 -68
- package/plugins/specweave/hooks/pre-edit-write-consolidated.sh +0 -225
- package/plugins/specweave/hooks/pre-implementation.sh +0 -75
- package/plugins/specweave/hooks/pre-increment-start.sh +0 -173
- package/plugins/specweave/hooks/pre-task-completion-edit.sh +0 -355
- package/plugins/specweave/hooks/pre-task-completion.sh +0 -269
- package/plugins/specweave/hooks/pre-tool-use.sh +0 -137
- package/plugins/specweave/hooks/session-start-reconcile.sh +0 -139
- package/plugins/specweave/hooks/shared/bulk-operation-detector.sh +0 -167
- package/plugins/specweave/hooks/test-pretooluse-env.sh +0 -72
- package/plugins/specweave/hooks/validate-increment-completion.sh +0 -113
- package/plugins/specweave/lib/hooks/consolidated-sync.js +0 -288
|
@@ -619,6 +619,99 @@ export class MetadataManager {
|
|
|
619
619
|
}
|
|
620
620
|
return `Invalid transition: ${from} → ${to}`;
|
|
621
621
|
}
|
|
622
|
+
// ==========================================================================
|
|
623
|
+
// Sync Target Methods (v1.0.31+ - ADR-0211)
|
|
624
|
+
// ==========================================================================
|
|
625
|
+
/**
|
|
626
|
+
* Set the external tool sync target for an increment
|
|
627
|
+
*
|
|
628
|
+
* This explicitly specifies which sync profile the increment uses.
|
|
629
|
+
* The sync target provides audit trail and deterministic sync behavior.
|
|
630
|
+
*
|
|
631
|
+
* @param incrementId - Increment ID
|
|
632
|
+
* @param syncTarget - Sync target configuration
|
|
633
|
+
* @param rootDir - Optional root directory
|
|
634
|
+
* @returns Updated metadata
|
|
635
|
+
*
|
|
636
|
+
* @example
|
|
637
|
+
* ```typescript
|
|
638
|
+
* MetadataManager.setSyncTarget('0142-feature', {
|
|
639
|
+
* profileId: 'github-frontend',
|
|
640
|
+
* provider: 'github',
|
|
641
|
+
* derivedFrom: 'project-mapping',
|
|
642
|
+
* setAt: new Date().toISOString(),
|
|
643
|
+
* sourceProjectId: 'frontend-app'
|
|
644
|
+
* });
|
|
645
|
+
* ```
|
|
646
|
+
*/
|
|
647
|
+
static setSyncTarget(incrementId, syncTarget, rootDir) {
|
|
648
|
+
const metadata = this.read(incrementId, rootDir);
|
|
649
|
+
metadata.syncTarget = syncTarget;
|
|
650
|
+
metadata.lastActivity = new Date().toISOString();
|
|
651
|
+
this.write(incrementId, metadata, rootDir);
|
|
652
|
+
this.logger.debug(`Set sync target for ${incrementId}: ${syncTarget.profileId} (${syncTarget.provider})`);
|
|
653
|
+
return metadata;
|
|
654
|
+
}
|
|
655
|
+
/**
|
|
656
|
+
* Get the sync target for an increment
|
|
657
|
+
*
|
|
658
|
+
* @param incrementId - Increment ID
|
|
659
|
+
* @param rootDir - Optional root directory
|
|
660
|
+
* @returns Sync target or undefined if not set
|
|
661
|
+
*/
|
|
662
|
+
static getSyncTarget(incrementId, rootDir) {
|
|
663
|
+
const metadata = this.read(incrementId, rootDir);
|
|
664
|
+
return metadata.syncTarget;
|
|
665
|
+
}
|
|
666
|
+
/**
|
|
667
|
+
* Clear the sync target for an increment
|
|
668
|
+
*
|
|
669
|
+
* Use this when the external tool configuration changes and
|
|
670
|
+
* the increment needs to be re-resolved.
|
|
671
|
+
*
|
|
672
|
+
* @param incrementId - Increment ID
|
|
673
|
+
* @param rootDir - Optional root directory
|
|
674
|
+
* @returns Updated metadata
|
|
675
|
+
*/
|
|
676
|
+
static clearSyncTarget(incrementId, rootDir) {
|
|
677
|
+
const metadata = this.read(incrementId, rootDir);
|
|
678
|
+
delete metadata.syncTarget;
|
|
679
|
+
metadata.lastActivity = new Date().toISOString();
|
|
680
|
+
this.write(incrementId, metadata, rootDir);
|
|
681
|
+
this.logger.debug(`Cleared sync target for ${incrementId}`);
|
|
682
|
+
return metadata;
|
|
683
|
+
}
|
|
684
|
+
/**
|
|
685
|
+
* Check if increment has a sync target configured
|
|
686
|
+
*
|
|
687
|
+
* @param incrementId - Increment ID
|
|
688
|
+
* @param rootDir - Optional root directory
|
|
689
|
+
* @returns true if sync target is set
|
|
690
|
+
*/
|
|
691
|
+
static hasSyncTarget(incrementId, rootDir) {
|
|
692
|
+
const metadata = this.read(incrementId, rootDir);
|
|
693
|
+
return !!metadata.syncTarget;
|
|
694
|
+
}
|
|
695
|
+
/**
|
|
696
|
+
* Get all increments with a specific sync provider
|
|
697
|
+
*
|
|
698
|
+
* Useful for bulk operations on all GitHub/JIRA/ADO synced increments.
|
|
699
|
+
*
|
|
700
|
+
* @param provider - Provider type ('github', 'jira', 'ado')
|
|
701
|
+
* @returns Array of increments with that provider configured
|
|
702
|
+
*/
|
|
703
|
+
static getByProvider(provider) {
|
|
704
|
+
return this.getAll().filter(m => m.syncTarget?.provider === provider);
|
|
705
|
+
}
|
|
706
|
+
/**
|
|
707
|
+
* Get all increments with a specific sync profile
|
|
708
|
+
*
|
|
709
|
+
* @param profileId - Profile ID from config.sync.profiles
|
|
710
|
+
* @returns Array of increments using that profile
|
|
711
|
+
*/
|
|
712
|
+
static getByProfile(profileId) {
|
|
713
|
+
return this.getAll().filter(m => m.syncTarget?.profileId === profileId);
|
|
714
|
+
}
|
|
622
715
|
}
|
|
623
716
|
/**
|
|
624
717
|
* Logger instance (injectable for testing)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-manager.js","sourceRoot":"","sources":["../../../../src/core/increment/metadata-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"metadata-manager.js","sourceRoot":"","sources":["../../../../src/core/increment/metadata-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -273,6 +273,74 @@ export interface USExternalRefsMap {
|
|
|
273
273
|
ado?: USExternalRef;
|
|
274
274
|
};
|
|
275
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
* How the sync target was determined
|
|
278
|
+
* Used for debugging and audit trails
|
|
279
|
+
*/
|
|
280
|
+
export type SyncTargetDerivation = 'user-selection' | 'project-mapping' | 'default-profile' | 'auto-detected';
|
|
281
|
+
/**
|
|
282
|
+
* External tool sync target for an increment
|
|
283
|
+
*
|
|
284
|
+
* Explicitly specifies which external tool profile this increment syncs with.
|
|
285
|
+
* Stored in metadata.json to provide audit trail and deterministic sync behavior.
|
|
286
|
+
*
|
|
287
|
+
* @since v1.0.31 (ADR-0211)
|
|
288
|
+
*
|
|
289
|
+
* @example
|
|
290
|
+
* ```json
|
|
291
|
+
* {
|
|
292
|
+
* "syncTarget": {
|
|
293
|
+
* "profileId": "github-frontend",
|
|
294
|
+
* "provider": "github",
|
|
295
|
+
* "derivedFrom": "project-mapping",
|
|
296
|
+
* "setAt": "2025-12-18T10:30:00Z"
|
|
297
|
+
* }
|
|
298
|
+
* }
|
|
299
|
+
* ```
|
|
300
|
+
*/
|
|
301
|
+
export interface SyncTarget {
|
|
302
|
+
/**
|
|
303
|
+
* Profile ID from config.sync.profiles
|
|
304
|
+
* This is the key that links to the full profile configuration
|
|
305
|
+
*
|
|
306
|
+
* @example "github-frontend", "jira-backend", "ado-main"
|
|
307
|
+
*/
|
|
308
|
+
profileId: string;
|
|
309
|
+
/**
|
|
310
|
+
* Provider type for quick filtering without loading full config
|
|
311
|
+
*/
|
|
312
|
+
provider: 'github' | 'jira' | 'ado';
|
|
313
|
+
/**
|
|
314
|
+
* How this target was determined (for debugging/audit)
|
|
315
|
+
*/
|
|
316
|
+
derivedFrom: SyncTargetDerivation;
|
|
317
|
+
/**
|
|
318
|
+
* Timestamp when target was set (ISO 8601)
|
|
319
|
+
*/
|
|
320
|
+
setAt: string;
|
|
321
|
+
/**
|
|
322
|
+
* Optional: Source project ID that led to this target
|
|
323
|
+
* Useful when derivedFrom is 'project-mapping'
|
|
324
|
+
*/
|
|
325
|
+
sourceProjectId?: string;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Validation result for external tool configuration
|
|
329
|
+
*
|
|
330
|
+
* @since v1.0.31
|
|
331
|
+
*/
|
|
332
|
+
export interface ExternalToolValidationResult {
|
|
333
|
+
/** Whether the configuration is valid */
|
|
334
|
+
valid: boolean;
|
|
335
|
+
/** Resolved sync target (if valid) */
|
|
336
|
+
syncTarget?: SyncTarget;
|
|
337
|
+
/** List of validation errors */
|
|
338
|
+
errors: string[];
|
|
339
|
+
/** List of validation warnings (non-blocking) */
|
|
340
|
+
warnings: string[];
|
|
341
|
+
/** Suggested fixes for errors */
|
|
342
|
+
suggestions?: string[];
|
|
343
|
+
}
|
|
276
344
|
/**
|
|
277
345
|
* Extended increment metadata with multi-project support (v0.29.0+)
|
|
278
346
|
*
|
|
@@ -296,5 +364,29 @@ export interface IncrementMetadataV2 extends IncrementMetadata {
|
|
|
296
364
|
* Maps: US-001 → { github: {...}, jira: {...} }
|
|
297
365
|
*/
|
|
298
366
|
externalRefs?: USExternalRefsMap;
|
|
367
|
+
/**
|
|
368
|
+
* External tool sync target (v1.0.31+ - ADR-0211)
|
|
369
|
+
*
|
|
370
|
+
* Explicitly specifies which external tool profile this increment syncs with.
|
|
371
|
+
* Provides deterministic sync behavior and audit trail.
|
|
372
|
+
*
|
|
373
|
+
* Resolution priority:
|
|
374
|
+
* 1. This field (explicit)
|
|
375
|
+
* 2. **Project**: field in spec.md → config.projectMappings
|
|
376
|
+
* 3. config.sync.defaultProfile (fallback)
|
|
377
|
+
*
|
|
378
|
+
* @example
|
|
379
|
+
* ```json
|
|
380
|
+
* {
|
|
381
|
+
* "syncTarget": {
|
|
382
|
+
* "profileId": "github-frontend",
|
|
383
|
+
* "provider": "github",
|
|
384
|
+
* "derivedFrom": "project-mapping",
|
|
385
|
+
* "setAt": "2025-12-18T10:30:00Z"
|
|
386
|
+
* }
|
|
387
|
+
* }
|
|
388
|
+
* ```
|
|
389
|
+
*/
|
|
390
|
+
syncTarget?: SyncTarget;
|
|
299
391
|
}
|
|
300
392
|
//# sourceMappingURL=increment-metadata.d.ts.map
|
|
@@ -152,6 +152,7 @@ class GitHubClientV2 {
|
|
|
152
152
|
* - ✅ CORRECT: "[FS-XXX][US-YYY] Title" (User Story - STANDARD)
|
|
153
153
|
* - ✅ CORRECT: "[FS-XXX] Title" (Feature-level, rare)
|
|
154
154
|
* - ❌ WRONG: "[Increment XXXX] Title" (deprecated old format)
|
|
155
|
+
* - ❌ WRONG: "[0001] Title" (plain increment ID without FS- prefix)
|
|
155
156
|
* - ❌ WRONG: "[BUG] Title" (type prefixes are labels, not title)
|
|
156
157
|
* - ❌ WRONG: "[HOTFIX] Title" (type prefixes are labels, not title)
|
|
157
158
|
* - ❌ WRONG: "[FEATURE] Title" (type prefixes are labels, not title)
|
|
@@ -174,6 +175,32 @@ WHY: Correct data flow is: Increment \u2192 Living Docs \u2192 GitHub
|
|
|
174
175
|
FIX: Use /sw:sync-docs to generate living docs, then sync to GitHub.`
|
|
175
176
|
);
|
|
176
177
|
}
|
|
178
|
+
const plainIncrementPattern = /^\[\d{3,4}E?\]\s/;
|
|
179
|
+
if (plainIncrementPattern.test(title)) {
|
|
180
|
+
const match = title.match(/^\[(\d{3,4}E?)\]/);
|
|
181
|
+
const incrementId = match ? match[1] : "XXXX";
|
|
182
|
+
const num = parseInt(incrementId.replace("E", ""), 10);
|
|
183
|
+
const isExternal = incrementId.endsWith("E");
|
|
184
|
+
const properFsId = `FS-${String(num).padStart(3, "0")}${isExternal ? "E" : ""}`;
|
|
185
|
+
throw new Error(
|
|
186
|
+
`\u274C INVALID TITLE FORMAT: "${title}"
|
|
187
|
+
|
|
188
|
+
Plain increment IDs like [${incrementId}] are NOT allowed!
|
|
189
|
+
|
|
190
|
+
GitHub issues MUST use SpecWeave format:
|
|
191
|
+
\u2705 CORRECT: "[${properFsId}][US-001] Title" (User Story)
|
|
192
|
+
\u2705 CORRECT: "[${properFsId}] Title" (Feature-level)
|
|
193
|
+
\u274C WRONG: "[${incrementId}] Title" (missing FS- prefix)
|
|
194
|
+
|
|
195
|
+
WHY: FS-XXX format ensures traceability to Feature folders in living docs.
|
|
196
|
+
Plain increment IDs create duplicates and break the sync architecture.
|
|
197
|
+
|
|
198
|
+
FIX:
|
|
199
|
+
1. Use /sw:sync-progress to sync with proper format
|
|
200
|
+
2. Or use /sw-github:sync to create issues correctly
|
|
201
|
+
3. Ensure increment has proper spec.md with User Stories`
|
|
202
|
+
);
|
|
203
|
+
}
|
|
177
204
|
const typePrefixPattern = /^\[(BUG|HOTFIX|FEATURE|DOCS|REFACTOR|CHORE|EXPERIMENT|Bug|Hotfix|Feature|Docs|Refactor|Chore|Experiment)\]/i;
|
|
178
205
|
if (typePrefixPattern.test(title)) {
|
|
179
206
|
const match = title.match(typePrefixPattern);
|
|
@@ -220,9 +247,21 @@ FIX:
|
|
|
220
247
|
}
|
|
221
248
|
/**
|
|
222
249
|
* Create epic issue (increment-level)
|
|
250
|
+
*
|
|
251
|
+
* CRITICAL: Includes duplicate detection to prevent creating duplicate issues
|
|
223
252
|
*/
|
|
224
253
|
async createEpicIssue(title, body, milestone, labels = []) {
|
|
225
254
|
this.validateIssueTitle(title);
|
|
255
|
+
const titlePatternMatch = title.match(/^\[FS-\d{3,}E?\](?:\[US-\d{3,}E?\])?/);
|
|
256
|
+
if (titlePatternMatch) {
|
|
257
|
+
const titlePattern = titlePatternMatch[0];
|
|
258
|
+
const existingIssue = await this.searchIssueByTitle(titlePattern, true);
|
|
259
|
+
if (existingIssue) {
|
|
260
|
+
console.log(`\u26A0\uFE0F Issue already exists: #${existingIssue.number} - "${existingIssue.title}"`);
|
|
261
|
+
console.log(` Returning existing issue instead of creating duplicate.`);
|
|
262
|
+
return existingIssue;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
226
265
|
const args = [
|
|
227
266
|
"issue",
|
|
228
267
|
"create",
|
|
@@ -214,6 +214,7 @@ export class GitHubClientV2 {
|
|
|
214
214
|
* - ✅ CORRECT: "[FS-XXX][US-YYY] Title" (User Story - STANDARD)
|
|
215
215
|
* - ✅ CORRECT: "[FS-XXX] Title" (Feature-level, rare)
|
|
216
216
|
* - ❌ WRONG: "[Increment XXXX] Title" (deprecated old format)
|
|
217
|
+
* - ❌ WRONG: "[0001] Title" (plain increment ID without FS- prefix)
|
|
217
218
|
* - ❌ WRONG: "[BUG] Title" (type prefixes are labels, not title)
|
|
218
219
|
* - ❌ WRONG: "[HOTFIX] Title" (type prefixes are labels, not title)
|
|
219
220
|
* - ❌ WRONG: "[FEATURE] Title" (type prefixes are labels, not title)
|
|
@@ -235,6 +236,32 @@ export class GitHubClientV2 {
|
|
|
235
236
|
);
|
|
236
237
|
}
|
|
237
238
|
|
|
239
|
+
// Check for plain increment ID format [0001] without FS- prefix (CRITICAL FIX v1.0.31)
|
|
240
|
+
// This catches issues like "[0001] Basic layout MVP" that should be "[FS-001][US-001] Basic layout MVP"
|
|
241
|
+
const plainIncrementPattern = /^\[\d{3,4}E?\]\s/;
|
|
242
|
+
if (plainIncrementPattern.test(title)) {
|
|
243
|
+
const match = title.match(/^\[(\d{3,4}E?)\]/);
|
|
244
|
+
const incrementId = match ? match[1] : 'XXXX';
|
|
245
|
+
// Derive proper FS-ID from the increment number
|
|
246
|
+
const num = parseInt(incrementId.replace('E', ''), 10);
|
|
247
|
+
const isExternal = incrementId.endsWith('E');
|
|
248
|
+
const properFsId = `FS-${String(num).padStart(3, '0')}${isExternal ? 'E' : ''}`;
|
|
249
|
+
throw new Error(
|
|
250
|
+
`❌ INVALID TITLE FORMAT: "${title}"\n\n` +
|
|
251
|
+
`Plain increment IDs like [${incrementId}] are NOT allowed!\n\n` +
|
|
252
|
+
`GitHub issues MUST use SpecWeave format:\n` +
|
|
253
|
+
` ✅ CORRECT: "[${properFsId}][US-001] Title" (User Story)\n` +
|
|
254
|
+
` ✅ CORRECT: "[${properFsId}] Title" (Feature-level)\n` +
|
|
255
|
+
` ❌ WRONG: "[${incrementId}] Title" (missing FS- prefix)\n\n` +
|
|
256
|
+
`WHY: FS-XXX format ensures traceability to Feature folders in living docs.\n` +
|
|
257
|
+
` Plain increment IDs create duplicates and break the sync architecture.\n\n` +
|
|
258
|
+
`FIX:\n` +
|
|
259
|
+
` 1. Use /sw:sync-progress to sync with proper format\n` +
|
|
260
|
+
` 2. Or use /sw-github:sync to create issues correctly\n` +
|
|
261
|
+
` 3. Ensure increment has proper spec.md with User Stories`
|
|
262
|
+
);
|
|
263
|
+
}
|
|
264
|
+
|
|
238
265
|
// Check for type-based prefixes (CRITICAL FIX for issue #749)
|
|
239
266
|
// These prefixes belong as LABELS, not in the issue title!
|
|
240
267
|
const typePrefixPattern = /^\[(BUG|HOTFIX|FEATURE|DOCS|REFACTOR|CHORE|EXPERIMENT|Bug|Hotfix|Feature|Docs|Refactor|Chore|Experiment)\]/i;
|
|
@@ -293,6 +320,8 @@ export class GitHubClientV2 {
|
|
|
293
320
|
|
|
294
321
|
/**
|
|
295
322
|
* Create epic issue (increment-level)
|
|
323
|
+
*
|
|
324
|
+
* CRITICAL: Includes duplicate detection to prevent creating duplicate issues
|
|
296
325
|
*/
|
|
297
326
|
async createEpicIssue(
|
|
298
327
|
title: string,
|
|
@@ -302,6 +331,21 @@ export class GitHubClientV2 {
|
|
|
302
331
|
): Promise<GitHubIssue> {
|
|
303
332
|
// Validate title format before creating
|
|
304
333
|
this.validateIssueTitle(title);
|
|
334
|
+
|
|
335
|
+
// DUPLICATE PREVENTION (v1.0.31): Check for existing issue with same title pattern
|
|
336
|
+
// Extract the [FS-XXX] or [FS-XXX][US-YYY] pattern to search for
|
|
337
|
+
const titlePatternMatch = title.match(/^\[FS-\d{3,}E?\](?:\[US-\d{3,}E?\])?/);
|
|
338
|
+
if (titlePatternMatch) {
|
|
339
|
+
const titlePattern = titlePatternMatch[0];
|
|
340
|
+
const existingIssue = await this.searchIssueByTitle(titlePattern, true);
|
|
341
|
+
if (existingIssue) {
|
|
342
|
+
// Return existing issue instead of creating duplicate
|
|
343
|
+
console.log(`⚠️ Issue already exists: #${existingIssue.number} - "${existingIssue.title}"`);
|
|
344
|
+
console.log(` Returning existing issue instead of creating duplicate.`);
|
|
345
|
+
return existingIssue;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
|
|
305
349
|
const args = [
|
|
306
350
|
'issue',
|
|
307
351
|
'create',
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# SpecWeave Docs-Changed Hook
|
|
4
|
-
# Runs after file changes are detected
|
|
5
|
-
# Detects if documentation was changed during implementation
|
|
6
|
-
# Triggers review workflow if needed
|
|
7
|
-
|
|
8
|
-
set +e # EMERGENCY FIX: Prevents Claude Code crashes
|
|
9
|
-
|
|
10
|
-
# EMERGENCY KILL SWITCH
|
|
11
|
-
if [[ "${SPECWEAVE_DISABLE_HOOKS:-0}" == "1" ]]; then
|
|
12
|
-
exit 0
|
|
13
|
-
fi
|
|
14
|
-
|
|
15
|
-
# Find project root by searching upward for .specweave/ directory
|
|
16
|
-
# Works regardless of where hook is installed (source or .claude/hooks/)
|
|
17
|
-
find_project_root() {
|
|
18
|
-
local dir="$1"
|
|
19
|
-
while [ "$dir" != "/" ]; do
|
|
20
|
-
if [ -d "$dir/.specweave" ]; then
|
|
21
|
-
echo "$dir"
|
|
22
|
-
return 0
|
|
23
|
-
fi
|
|
24
|
-
dir="$(dirname "$dir")"
|
|
25
|
-
done
|
|
26
|
-
# Fallback: try current directory
|
|
27
|
-
if [ -d "$(pwd)/.specweave" ]; then
|
|
28
|
-
pwd
|
|
29
|
-
else
|
|
30
|
-
echo "$(pwd)"
|
|
31
|
-
fi
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
PROJECT_ROOT="$(find_project_root "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")"
|
|
35
|
-
cd "$PROJECT_ROOT"
|
|
36
|
-
|
|
37
|
-
# Colors
|
|
38
|
-
RED='\033[0;31m'
|
|
39
|
-
YELLOW='\033[1;33m'
|
|
40
|
-
NC='\033[0m'
|
|
41
|
-
|
|
42
|
-
# Get changed files (git)
|
|
43
|
-
if ! git rev-parse --git-dir > /dev/null 2>&1; then
|
|
44
|
-
# Not a git repository, skip
|
|
45
|
-
exit 0
|
|
46
|
-
fi
|
|
47
|
-
|
|
48
|
-
CHANGED_FILES=$(git diff --name-only HEAD 2>/dev/null || echo "")
|
|
49
|
-
|
|
50
|
-
if [ -z "$CHANGED_FILES" ]; then
|
|
51
|
-
# No changes
|
|
52
|
-
exit 0
|
|
53
|
-
fi
|
|
54
|
-
|
|
55
|
-
# Check if any documentation files changed
|
|
56
|
-
DOC_CHANGES=$(echo "$CHANGED_FILES" | grep -E '\.specweave/(docs|increments/.*/.*\.md)' || true)
|
|
57
|
-
|
|
58
|
-
if [ -n "$DOC_CHANGES" ]; then
|
|
59
|
-
echo -e "${RED}⚠️ Documentation changed during implementation${NC}"
|
|
60
|
-
echo ""
|
|
61
|
-
echo "📋 Files changed:"
|
|
62
|
-
echo "$DOC_CHANGES" | sed 's/^/ /'
|
|
63
|
-
echo ""
|
|
64
|
-
echo -e "${YELLOW}🔔 Recommended actions:${NC}"
|
|
65
|
-
echo " 1. Review documentation changes"
|
|
66
|
-
echo " 2. Update tasks.md if architecture changed"
|
|
67
|
-
echo " 3. Type /review-docs to see full impact"
|
|
68
|
-
echo ""
|
|
69
|
-
|
|
70
|
-
# Play notification sound
|
|
71
|
-
case "$(uname -s)" in
|
|
72
|
-
Darwin)
|
|
73
|
-
afplay /System/Library/Sounds/Ping.aiff 2>/dev/null &
|
|
74
|
-
;;
|
|
75
|
-
Linux)
|
|
76
|
-
paplay /usr/share/sounds/freedesktop/stereo/dialog-warning.oga 2>/dev/null || true
|
|
77
|
-
;;
|
|
78
|
-
esac
|
|
79
|
-
|
|
80
|
-
# Log to hooks log
|
|
81
|
-
LOGS_DIR=".specweave/logs"
|
|
82
|
-
mkdir -p "$LOGS_DIR"
|
|
83
|
-
echo "[$(date)] Documentation changed: $DOC_CHANGES" >> "$LOGS_DIR/hooks.log"
|
|
84
|
-
fi
|
|
85
|
-
|
|
86
|
-
# ALWAYS exit 0 - NEVER let hook errors crash Claude Code
|
|
87
|
-
exit 0
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# SpecWeave Human-Input-Required Hook
|
|
4
|
-
# Runs when Claude needs clarification or approval
|
|
5
|
-
#
|
|
6
|
-
# Actions:
|
|
7
|
-
# 1. Play notification sound (Ping.aiff)
|
|
8
|
-
# 2. Log the question/requirement
|
|
9
|
-
# 3. Record in current increment's work log (if applicable)
|
|
10
|
-
|
|
11
|
-
set +e # EMERGENCY FIX: Prevents Claude Code crashes
|
|
12
|
-
|
|
13
|
-
# EMERGENCY KILL SWITCH
|
|
14
|
-
if [[ "${SPECWEAVE_DISABLE_HOOKS:-0}" == "1" ]]; then
|
|
15
|
-
exit 0
|
|
16
|
-
fi
|
|
17
|
-
|
|
18
|
-
# Find project root by searching upward for .specweave/ directory
|
|
19
|
-
# Works regardless of where hook is installed (source or .claude/hooks/)
|
|
20
|
-
find_project_root() {
|
|
21
|
-
local dir="$1"
|
|
22
|
-
while [ "$dir" != "/" ]; do
|
|
23
|
-
if [ -d "$dir/.specweave" ]; then
|
|
24
|
-
echo "$dir"
|
|
25
|
-
return 0
|
|
26
|
-
fi
|
|
27
|
-
dir="$(dirname "$dir")"
|
|
28
|
-
done
|
|
29
|
-
# Fallback: try current directory
|
|
30
|
-
if [ -d "$(pwd)/.specweave" ]; then
|
|
31
|
-
pwd
|
|
32
|
-
else
|
|
33
|
-
echo "$(pwd)"
|
|
34
|
-
fi
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
PROJECT_ROOT="$(find_project_root "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")"
|
|
38
|
-
cd "$PROJECT_ROOT"
|
|
39
|
-
|
|
40
|
-
# Get question/requirement (passed as argument or default)
|
|
41
|
-
QUESTION="${1:-User input required}"
|
|
42
|
-
|
|
43
|
-
echo "❓ Human input required"
|
|
44
|
-
|
|
45
|
-
# 1. Play notification sound (cross-platform)
|
|
46
|
-
play_sound() {
|
|
47
|
-
case "$(uname -s)" in
|
|
48
|
-
Darwin)
|
|
49
|
-
afplay /System/Library/Sounds/Ping.aiff 2>/dev/null &
|
|
50
|
-
;;
|
|
51
|
-
Linux)
|
|
52
|
-
paplay /usr/share/sounds/freedesktop/stereo/dialog-question.oga 2>/dev/null || \
|
|
53
|
-
aplay /usr/share/sounds/alsa/Side_Left.wav 2>/dev/null || true
|
|
54
|
-
;;
|
|
55
|
-
MINGW*|MSYS*|CYGWIN*)
|
|
56
|
-
powershell -c "(New-Object Media.SoundPlayer 'C:\Windows\Media\notify.wav').PlaySync();" 2>/dev/null || true
|
|
57
|
-
;;
|
|
58
|
-
esac
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
play_sound &
|
|
62
|
-
|
|
63
|
-
# 2. Log to main hooks log
|
|
64
|
-
LOGS_DIR=".specweave/logs"
|
|
65
|
-
mkdir -p "$LOGS_DIR"
|
|
66
|
-
echo "[$(date)] Human input required: $QUESTION" >> "$LOGS_DIR/hooks.log"
|
|
67
|
-
|
|
68
|
-
# 3. Log to current work context (if exists)
|
|
69
|
-
CURRENT_WORK=$(find .specweave/work -maxdepth 1 -type d -name "current-*" | head -1 || true)
|
|
70
|
-
|
|
71
|
-
if [ -n "$CURRENT_WORK" ] && [ -d "$CURRENT_WORK" ]; then
|
|
72
|
-
echo "" >> "$CURRENT_WORK/notes.md"
|
|
73
|
-
echo "## Input Required ($(date +%Y-%m-%d\ %H:%M))" >> "$CURRENT_WORK/notes.md"
|
|
74
|
-
echo "" >> "$CURRENT_WORK/notes.md"
|
|
75
|
-
echo "$QUESTION" >> "$CURRENT_WORK/notes.md"
|
|
76
|
-
echo "" >> "$CURRENT_WORK/notes.md"
|
|
77
|
-
echo "📝 Logged to $CURRENT_WORK/notes.md"
|
|
78
|
-
fi
|
|
79
|
-
|
|
80
|
-
echo "✅ Hook complete"
|
|
81
|
-
|
|
82
|
-
# ALWAYS exit 0 - NEVER let hook errors crash Claude Code
|
|
83
|
-
exit 0
|