@lbruton/specflow 3.5.2 → 3.5.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/core/migration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAgBD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,CAAC,CA0C1B"}
1
+ {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/core/migration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAgBD;;;GAGG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,CAAC,CA4D1B"}
@@ -5,7 +5,7 @@
5
5
  * folder to the corresponding DocVault location defined in ResolvedConfig.
6
6
  * Skips destinations that already contain files to prevent data loss.
7
7
  */
8
- import { readdir, cp, access } from 'fs/promises';
8
+ import { readdir, cp, access, rm } from 'fs/promises';
9
9
  import { join } from 'path';
10
10
  import { constants } from 'fs';
11
11
  import { ensureDirectoryExists } from './path-utils.js';
@@ -34,6 +34,17 @@ export async function needsMigration(projectPath, _config) {
34
34
  return true;
35
35
  }
36
36
  }
37
+ // Also check for legacy dirs that need cleanup (e.g., templates/)
38
+ const legacyDirs = ['templates'];
39
+ for (const dir of legacyDirs) {
40
+ try {
41
+ await access(join(localRoot, dir), constants.F_OK);
42
+ return true; // Legacy dir exists and needs cleanup
43
+ }
44
+ catch {
45
+ // Doesn't exist
46
+ }
47
+ }
37
48
  return false;
38
49
  }
39
50
  /**
@@ -74,6 +85,9 @@ export async function migrateToDocVault(projectPath, config) {
74
85
  await cp(srcPath, destPath, { recursive: true });
75
86
  console.error(`[migration] Copied ${srcDir}/ → ${destPath}`);
76
87
  result.migratedDirs.push(srcDir);
88
+ // Clean up local source after successful copy
89
+ await rm(srcPath, { recursive: true });
90
+ console.error(`[migration] Cleaned up local ${srcDir}/`);
77
91
  }
78
92
  catch (err) {
79
93
  const msg = err instanceof Error ? err.message : String(err);
@@ -81,6 +95,20 @@ export async function migrateToDocVault(projectPath, config) {
81
95
  result.errors.push(`${srcDir}: ${msg}`);
82
96
  }
83
97
  }
98
+ // Clean up legacy local directories that are no longer needed
99
+ // These were auto-created by old WorkspaceInitializer but are now in DocVault
100
+ const legacyCleanup = ['templates'];
101
+ for (const dir of legacyCleanup) {
102
+ const dirPath = join(localRoot, dir);
103
+ try {
104
+ await access(dirPath, constants.F_OK);
105
+ await rm(dirPath, { recursive: true });
106
+ console.error(`[migration] Cleaned up legacy local ${dir}/`);
107
+ }
108
+ catch {
109
+ // Doesn't exist, nothing to clean
110
+ }
111
+ }
84
112
  return result;
85
113
  }
86
114
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../src/core/migration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../src/core/migration.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-initializer.d.ts","sourceRoot":"","sources":["../../src/core/workspace-initializer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKzD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAiB;gBAEpB,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc;IAMnE,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;YAsB5B,qBAAqB;YAkBrB,mBAAmB;YAsBnB,6BAA6B;YAqB7B,yBAAyB;YAoBzB,oBAAoB;YAWpB,YAAY;YAkBZ,yBAAyB;IA8EvC;;;OAGG;YACW,yBAAyB;CAgBxC"}
1
+ {"version":3,"file":"workspace-initializer.d.ts","sourceRoot":"","sources":["../../src/core/workspace-initializer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKzD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAiB;gBAEpB,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc;IAMnE,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;YAyB5B,qBAAqB;YAkBrB,mBAAmB;YAsBnB,6BAA6B;YAqB7B,yBAAyB;YAoBzB,oBAAoB;YAWpB,YAAY;YAkBZ,yBAAyB;IA8EvC;;;OAGG;YACW,yBAAyB;CAgBxC"}
@@ -23,7 +23,10 @@ export class WorkspaceInitializer {
23
23
  await fs.mkdir(localRoot, { recursive: true });
24
24
  await this.initializeDocVaultDirectories();
25
25
  await this.initializeGlobalTemplates();
26
- await this.initializeTemplates();
26
+ // NOTE: Do NOT call initializeTemplates() here — global templates
27
+ // are in DocVault/specflow/templates/ and project overrides come
28
+ // from migration (user-templates/ → templates/). We don't duplicate
29
+ // globals into the project folder.
27
30
  await this.initializeIndexFiles();
28
31
  }
29
32
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-initializer.js","sourceRoot":"","sources":["../../src/core/workspace-initializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-initializer.js","sourceRoot":"","sources":["../../src/core/workspace-initializer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-spec.d.ts","sourceRoot":"","sources":["../../src/prompts/create-spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAiG9C,eAAO,MAAM,gBAAgB,EAAE,gBAG9B,CAAC"}
1
+ {"version":3,"file":"create-spec.d.ts","sourceRoot":"","sources":["../../src/prompts/create-spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAuG9C,eAAO,MAAM,gBAAgB,EAAE,gBAG9B,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { PathUtils } from '../core/path-utils.js';
1
2
  const prompt = {
2
3
  name: 'create-spec',
3
4
  title: 'Create Specification Document',
@@ -29,6 +30,10 @@ async function handler(args, context) {
29
30
  if (!validDocTypes.includes(documentType)) {
30
31
  throw new Error(`documentType must be one of: ${validDocTypes.join(', ')}`);
31
32
  }
33
+ // Resolve paths through PathUtils (DocVault-aware)
34
+ const workflowRoot = PathUtils.getWorkflowRoot(context.projectPath);
35
+ const templatesDir = `${workflowRoot}/templates`;
36
+ const specDir = `${workflowRoot}/specs/${specName}`;
32
37
  // Build context-aware messages
33
38
  const messages = [
34
39
  {
@@ -45,17 +50,17 @@ ${description ? `- Description: ${description}` : ''}
45
50
  ${context.dashboardUrl ? `- Dashboard: ${context.dashboardUrl}` : ''}
46
51
 
47
52
  **Instructions:**
48
- 1. First, read the template at: .specflow/templates/${documentType}-template.md
53
+ 1. First, read the template at: ${templatesDir}/${documentType}-template.md
49
54
  2. Follow the template structure exactly - this ensures consistency across the project
50
55
  3. Create comprehensive content that follows spec-driven development best practices
51
56
  4. Include all required sections from the template
52
57
  5. Use clear, actionable language
53
- 6. Create the document at: .specflow/specs/${specName}/${documentType}.md
58
+ 6. Create the document at: ${specDir}/${documentType}.md
54
59
  7. After creating, use approvals tool with action:'request' to get user approval
55
60
 
56
61
  **File Paths:**
57
- - Template location: .specflow/templates/${documentType}-template.md
58
- - Document destination: .specflow/specs/${specName}/${documentType}.md
62
+ - Template location: ${templatesDir}/${documentType}-template.md
63
+ - Document destination: ${specDir}/${documentType}.md
59
64
 
60
65
  **Workflow Guidelines:**
61
66
  - Requirements documents define WHAT needs to be built
@@ -1 +1 @@
1
- {"version":3,"file":"create-spec.js","sourceRoot":"","sources":["../../src/prompts/create-spec.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,+BAA+B;IACtC,WAAW,EAAE,qKAAqK;IAClL,SAAS,EAAE;QACT;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,iJAAiJ;YAC9J,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAErD,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,gCAAgC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,+BAA+B;IAC/B,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY,YAAY,sBAAsB,QAAQ;;;aAGvD,OAAO,CAAC,WAAW;aACnB,QAAQ;mBACF,YAAY;EAC7B,WAAW,CAAC,CAAC,CAAC,kBAAkB,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;EAClD,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;;;sDAGd,YAAY;;;;;6CAKrB,QAAQ,IAAI,YAAY;;;;2CAI1B,YAAY;0CACb,QAAQ,IAAI,YAAY;;;;;;;;;EAShE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;CAc5B,CAAC,CAAC,CAAC,EAAE;;kBAEY,YAAY,wEAAwE;aAC/F;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,MAAM;IACN,OAAO;CACR,CAAC"}
1
+ {"version":3,"file":"create-spec.js","sourceRoot":"","sources":["../../src/prompts/create-spec.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,+BAA+B;IACtC,WAAW,EAAE,qKAAqK;IAClL,SAAS,EAAE;QACT;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,iJAAiJ;YAC9J,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAErD,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,gCAAgC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,mDAAmD;IACnD,MAAM,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,GAAG,YAAY,YAAY,CAAC;IACjD,MAAM,OAAO,GAAG,GAAG,YAAY,UAAU,QAAQ,EAAE,CAAC;IAEpD,+BAA+B;IAC/B,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY,YAAY,sBAAsB,QAAQ;;;aAGvD,OAAO,CAAC,WAAW;aACnB,QAAQ;mBACF,YAAY;EAC7B,WAAW,CAAC,CAAC,CAAC,kBAAkB,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;EAClD,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;;;kCAGlC,YAAY,IAAI,YAAY;;;;;6BAKjC,OAAO,IAAI,YAAY;;;;uBAI7B,YAAY,IAAI,YAAY;0BACzB,OAAO,IAAI,YAAY;;;;;;;;;EAS/C,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;CAc5B,CAAC,CAAC,CAAC,EAAE;;kBAEY,YAAY,wEAAwE;aAC/F;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,MAAM;IACN,OAAO;CACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-steering-doc.d.ts","sourceRoot":"","sources":["../../src/prompts/create-steering-doc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA6E9C,eAAO,MAAM,uBAAuB,EAAE,gBAGrC,CAAC"}
1
+ {"version":3,"file":"create-steering-doc.d.ts","sourceRoot":"","sources":["../../src/prompts/create-steering-doc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAmF9C,eAAO,MAAM,uBAAuB,EAAE,gBAGrC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { PathUtils } from '../core/path-utils.js';
1
2
  const prompt = {
2
3
  name: 'create-steering-doc',
3
4
  title: 'Create Steering Document',
@@ -24,6 +25,10 @@ async function handler(args, context) {
24
25
  if (!validDocTypes.includes(docType)) {
25
26
  throw new Error(`docType must be one of: ${validDocTypes.join(', ')}`);
26
27
  }
28
+ // Resolve paths through PathUtils (DocVault-aware)
29
+ const workflowRoot = PathUtils.getWorkflowRoot(context.projectPath);
30
+ const templatesDir = `${workflowRoot}/templates`;
31
+ const steeringDir = `${workflowRoot}/steering`;
27
32
  const messages = [
28
33
  {
29
34
  role: 'user',
@@ -38,15 +43,15 @@ ${scope ? `- Scope: ${scope}` : ''}
38
43
  ${context.dashboardUrl ? `- Dashboard: ${context.dashboardUrl}` : ''}
39
44
 
40
45
  **Instructions:**
41
- 1. First, read the template at: .specflow/templates/${docType}-template.md
42
- 2. Check if steering docs exist at: .specflow/steering/
46
+ 1. First, read the template at: ${templatesDir}/${docType}-template.md
47
+ 2. Check if steering docs exist at: ${steeringDir}/
43
48
  3. Create comprehensive content following the template structure
44
- 4. Create the document at: .specflow/steering/${docType}.md
49
+ 4. Create the document at: ${steeringDir}/${docType}.md
45
50
  5. After creating, use approvals tool with action:'request' to get user approval
46
51
 
47
52
  **File Paths:**
48
- - Template location: .specflow/templates/${docType}-template.md
49
- - Document destination: .specflow/steering/${docType}.md
53
+ - Template location: ${templatesDir}/${docType}-template.md
54
+ - Document destination: ${steeringDir}/${docType}.md
50
55
 
51
56
  **Steering Document Types:**
52
57
  - **product**: Defines project vision, goals, and user outcomes
@@ -1 +1 @@
1
- {"version":3,"file":"create-steering-doc.js","sourceRoot":"","sources":["../../src/prompts/create-steering-doc.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE,kJAAkJ;IAC/J,SAAS,EAAE;QACT;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,wDAAwD;YACrE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,sEAAsE;YACnF,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEhC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,2BAA2B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY,OAAO;;;aAGpB,OAAO,CAAC,WAAW;4BACJ,OAAO;EACjC,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;EAChC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;;;sDAGd,OAAO;;;gDAGb,OAAO;;;;2CAIZ,OAAO;6CACL,OAAO;;;;;;;;;;;;;;kBAclC,OAAO,+EAA+E;aACjG;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAqB;IACvD,MAAM;IACN,OAAO;CACR,CAAC"}
1
+ {"version":3,"file":"create-steering-doc.js","sourceRoot":"","sources":["../../src/prompts/create-steering-doc.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE,kJAAkJ;IAC/J,SAAS,EAAE;QACT;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,wDAAwD;YACrE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,sEAAsE;YACnF,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEhC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,2BAA2B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,mDAAmD;IACnD,MAAM,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,GAAG,YAAY,YAAY,CAAC;IACjD,MAAM,WAAW,GAAG,GAAG,YAAY,WAAW,CAAC;IAE/C,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY,OAAO;;;aAGpB,OAAO,CAAC,WAAW;4BACJ,OAAO;EACjC,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;EAChC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;;;kCAGlC,YAAY,IAAI,OAAO;sCACnB,WAAW;;6BAEpB,WAAW,IAAI,OAAO;;;;uBAI5B,YAAY,IAAI,OAAO;0BACpB,WAAW,IAAI,OAAO;;;;;;;;;;;;;;kBAc9B,OAAO,+EAA+E;aACjG;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAqB;IACvD,MAAM;IACN,OAAO;CACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"implement-task.d.ts","sourceRoot":"","sources":["../../src/prompts/implement-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgM9C,eAAO,MAAM,mBAAmB,EAAE,gBAGjC,CAAC"}
1
+ {"version":3,"file":"implement-task.d.ts","sourceRoot":"","sources":["../../src/prompts/implement-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAwM9C,eAAO,MAAM,mBAAmB,EAAE,gBAGjC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { PathUtils } from '../core/path-utils.js';
1
2
  const prompt = {
2
3
  name: 'implement-task',
3
4
  title: 'Implement Specification Task',
@@ -20,6 +21,12 @@ async function handler(args, context) {
20
21
  if (!specName) {
21
22
  throw new Error('specName is a required argument');
22
23
  }
24
+ // Resolve paths through PathUtils (DocVault-aware)
25
+ const workflowRoot = PathUtils.getWorkflowRoot(context.projectPath);
26
+ const specDir = `${workflowRoot}/specs/${specName}`;
27
+ const templatesDir = `${workflowRoot}/templates`;
28
+ const tasksFile = `${specDir}/tasks.md`;
29
+ const logsDir = `${specDir}/Implementation Logs`;
23
30
  const messages = [
24
31
  {
25
32
  role: 'user',
@@ -37,11 +44,11 @@ ${context.dashboardUrl ? `- Dashboard: ${context.dashboardUrl}` : ''}
37
44
 
38
45
  1. **Check Current Status:**
39
46
  - Use the spec-status tool with specName "${specName}" to see overall progress
40
- - Read .specflow/specs/${specName}/tasks.md to see all tasks
47
+ - Read ${tasksFile} to see all tasks
41
48
  - Identify ${taskId ? `task ${taskId}` : 'the next pending task marked with [ ]'}
42
49
 
43
50
  2. **Start the Task:**
44
- - Edit .specflow/specs/${specName}/tasks.md directly
51
+ - Edit ${tasksFile} directly
45
52
  - Change the task marker from [ ] to [-] for the task you're starting
46
53
  - Only one task should be in-progress at a time
47
54
 
@@ -56,18 +63,18 @@ ${context.dashboardUrl ? `- Dashboard: ${context.dashboardUrl}` : ''}
56
63
 
57
64
  4. **Discover Existing Implementations (CRITICAL):**
58
65
  - BEFORE writing any code, search implementation logs to understand existing artifacts
59
- - Implementation logs are stored as markdown files in: .specflow/specs/${specName}/Implementation Logs/
66
+ - Implementation logs are stored as markdown files in: ${logsDir}/
60
67
 
61
68
  **Option 1: Use grep/ripgrep for fast searches**
62
69
  \`\`\`bash
63
70
  # Search for API endpoints
64
- grep -r "GET\|POST\|PUT\|DELETE" ".specflow/specs/${specName}/Implementation Logs/"
71
+ grep -r "GET\|POST\|PUT\|DELETE" "${logsDir}/"
65
72
 
66
73
  # Search for specific components
67
- grep -r "ComponentName" ".specflow/specs/${specName}/Implementation Logs/"
74
+ grep -r "ComponentName" "${logsDir}/"
68
75
 
69
76
  # Search for integration patterns
70
- grep -r "integration\|dataFlow" ".specflow/specs/${specName}/Implementation Logs/"
77
+ grep -r "integration\|dataFlow" "${logsDir}/"
71
78
  \`\`\`
72
79
 
73
80
  **Option 2: Read markdown files directly**
@@ -91,21 +98,21 @@ ${context.dashboardUrl ? `- Dashboard: ${context.dashboardUrl}` : ''}
91
98
 
92
99
  5. **Implement the Task (dispatch subagent):**
93
100
  - Dispatch a fresh subagent (Agent tool) with the full task text, _Prompt guidance, and _Leverage file paths
94
- - Template: .specflow/templates/implementer-prompt-template.md
101
+ - Template: ${templatesDir}/implementer-prompt-template.md
95
102
  - The subagent implements, tests, commits, and self-reviews
96
103
  - Main context stays clean for orchestration — never write implementation code here
97
104
 
98
105
  5.5. **Spec Compliance Review (dispatch reviewer subagent):**
99
106
  - After the implementer reports back, dispatch a reviewer subagent
100
107
  - Reviewer reads actual code and compares to task requirements line by line
101
- - Template: .specflow/templates/spec-reviewer-template.md
108
+ - Template: ${templatesDir}/spec-reviewer-template.md
102
109
  - If issues found: implementer fixes them, then dispatch reviewer again
103
110
  - Do NOT proceed to step 5.6 until spec review passes ✅
104
111
 
105
112
  5.6. **Code Quality Review (dispatch reviewer subagent):**
106
113
  - Only dispatch AFTER spec compliance passes in step 5.5
107
114
  - Reviewer checks: architecture, error handling, testing, production readiness
108
- - Template: .specflow/templates/code-quality-reviewer-template.md
115
+ - Template: ${templatesDir}/code-quality-reviewer-template.md
109
116
  - Issues categorized: Critical (must fix) / Important (should fix) / Minor
110
117
  - Fix Critical and Important issues, re-review until approved ✅
111
118
 
@@ -144,7 +151,7 @@ ${context.dashboardUrl ? `- Dashboard: ${context.dashboardUrl}` : ''}
144
151
  - Confirm that log-implementation returned success in step 6
145
152
  - Verify all success criteria from the _Prompt are met
146
153
  - Run any relevant tests to ensure nothing is broken
147
- - Edit .specflow/specs/${specName}/tasks.md directly
154
+ - Edit ${tasksFile} directly
148
155
  - Change the task marker from [-] to [x] for the completed task
149
156
  - ⚠️ If you skipped step 6, go back now — a task marked [x] without a log is incomplete
150
157
 
@@ -170,7 +177,7 @@ ${context.dashboardUrl ? `- Dashboard: ${context.dashboardUrl}` : ''}
170
177
  - All logged implementations appear in the "Logs" tab of the dashboard
171
178
  - Filter by spec, task ID, or search by summary
172
179
  - View detailed statistics including files changed and lines modified
173
- - Or search directly using grep on markdown files in .specflow/specs/{specName}/Implementation Logs/
180
+ - Or search directly using grep on markdown files in {workflowRoot}/specs/{specName}/Implementation Logs/
174
181
 
175
182
  **Context Budget:** This session supports ~80-100 task dispatches with reviews (~800k tokens on 1M context models).
176
183
  After completing 60+ tasks, consider using a handoff to relay to a fresh session.
@@ -1 +1 @@
1
- {"version":3,"file":"implement-task.js","sourceRoot":"","sources":["../../src/prompts/implement-task.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,8BAA8B;IACrC,WAAW,EAAE,2PAA2P;IACxQ,SAAS,EAAE;QACT;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAElC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,aAAa,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,uBAAuB,aAAa,QAAQ;;;aAGtF,OAAO,CAAC,WAAW;aACnB,QAAQ;EACnB,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;EACpC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;+CAKrB,QAAQ;4BAC3B,QAAQ;gBACpB,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,uCAAuC;;;4BAGvD,QAAQ;;;;;;;;;;;;;;;4EAewC,QAAQ;;;;;uDAK7B,QAAQ;;;8CAGjB,QAAQ;;;sDAGA,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8C1C,QAAQ;iBACX,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA8B9C,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAgCD,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,eAAe,2BAA2B;aAClG;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACnD,MAAM;IACN,OAAO;CACR,CAAC"}
1
+ {"version":3,"file":"implement-task.js","sourceRoot":"","sources":["../../src/prompts/implement-task.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,8BAA8B;IACrC,WAAW,EAAE,2PAA2P;IACxQ,SAAS,EAAE;QACT;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAElC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,mDAAmD;IACnD,MAAM,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,GAAG,YAAY,UAAU,QAAQ,EAAE,CAAC;IACpD,MAAM,YAAY,GAAG,GAAG,YAAY,YAAY,CAAC;IACjD,MAAM,SAAS,GAAG,GAAG,OAAO,WAAW,CAAC;IACxC,MAAM,OAAO,GAAG,GAAG,OAAO,sBAAsB,CAAC;IAEjD,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,aAAa,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,uBAAuB,aAAa,QAAQ;;;aAGtF,OAAO,CAAC,WAAW;aACnB,QAAQ;EACnB,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;EACpC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;+CAKrB,QAAQ;YAC3C,SAAS;gBACL,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,uCAAuC;;;YAGvE,SAAS;;;;;;;;;;;;;;;4DAeuC,OAAO;;;;;uCAK5B,OAAO;;;8BAGhB,OAAO;;;sCAGC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;iBAwB5B,YAAY;;;;;;;iBAOZ,YAAY;;;;;;;iBAOZ,YAAY;;;;;;;;oBAQT,QAAQ;iBACX,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA8B9D,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAgCc,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,eAAe,2BAA2B;aAClG;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACnD,MAAM;IACN,OAAO;CACR,CAAC"}
@@ -31,8 +31,8 @@ ${nextSteps.map(step => `- ${step}`).join('\n')}
31
31
  1. This guide has been injected into your context for creating steering documents
32
32
  2. Only proceed if the user explicitly requested steering document creation
33
33
  3. Follow the sequence exactly: product.md → tech.md → structure.md
34
- 4. Read templates from .specflow/templates/ directory
35
- 5. Create documents in .specflow/steering/ directory
34
+ 4. Read templates from the project's templates directory (resolved by PathUtils through DocVault)
35
+ 5. Create documents in the project's steering directory (resolved by PathUtils through DocVault)
36
36
  6. Request approval after each document using the approvals tool
37
37
  7. Never proceed to the next document without successful approval cleanup
38
38
 
@@ -1 +1 @@
1
- {"version":3,"file":"spec-status.d.ts","sourceRoot":"","sources":["../../src/prompts/spec-status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA8E9C,eAAO,MAAM,gBAAgB,EAAE,gBAG9B,CAAC"}
1
+ {"version":3,"file":"spec-status.d.ts","sourceRoot":"","sources":["../../src/prompts/spec-status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgF9C,eAAO,MAAM,gBAAgB,EAAE,gBAG9B,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { PathUtils } from '../core/path-utils.js';
1
2
  const prompt = {
2
3
  name: 'spec-status',
3
4
  title: 'Specification Status Overview',
@@ -19,6 +20,7 @@ async function handler(args, context) {
19
20
  const { specName, detailed } = args;
20
21
  const scope = specName ? `the "${specName}" feature` : 'all specifications in the project';
21
22
  const detailLevel = detailed ? 'detailed' : 'summary';
23
+ const workflowRoot = PathUtils.getWorkflowRoot(context.projectPath);
22
24
  const messages = [
23
25
  {
24
26
  role: 'user',
@@ -35,9 +37,9 @@ ${context.dashboardUrl ? `- Dashboard: ${context.dashboardUrl}` : ''}
35
37
  **Instructions:**
36
38
  ${specName ?
37
39
  `1. Use the spec-status tool with specName "${specName}" to get status information
38
- 2. If you need detailed task information, read the tasks.md file directly at .specflow/specs/${specName}/tasks.md
40
+ 2. If you need detailed task information, read the tasks.md file directly at ${workflowRoot}/specs/${specName}/tasks.md
39
41
  3. Check for any pending approvals using approvals tool with action:'status'` :
40
- `1. List directory .specflow/specs/ to see all specifications
42
+ `1. List directory ${workflowRoot}/specs/ to see all specifications
41
43
  2. Use the spec-status tool to get status for each specification
42
44
  3. Provide a consolidated overview of project progress`}
43
45
 
@@ -1 +1 @@
1
- {"version":3,"file":"spec-status.js","sourceRoot":"","sources":["../../src/prompts/spec-status.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,+BAA+B;IACtC,WAAW,EAAE,kJAAkJ;IAC/J,SAAS,EAAE;QACT;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,4FAA4F;YACzG,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,oEAAoE;YACjF,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAEpC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,QAAQ,WAAW,CAAC,CAAC,CAAC,mCAAmC,CAAC;IAC3F,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtD,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO,WAAW,wBAAwB,KAAK;;;aAGhD,OAAO,CAAC,WAAW;EAC9B,QAAQ,CAAC,CAAC,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC,CAAC,6BAA6B;kBACnD,WAAW;EAC3B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;;;EAGlE,QAAQ,CAAC,CAAC;oBACV,8CAA8C,QAAQ;+FACuC,QAAQ;6EAC1B,CAAC,CAAC;oBAC7E;;uDAEqD;;;;;;;;;;;;;;;;EAgBrD,QAAQ,CAAC,CAAC,CAAC;;;;;oCAKuB,CAAC,CAAC,CAAC,EAAE;;qGAE4D;aAC9F;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,MAAM;IACN,OAAO;CACR,CAAC"}
1
+ {"version":3,"file":"spec-status.js","sourceRoot":"","sources":["../../src/prompts/spec-status.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,+BAA+B;IACtC,WAAW,EAAE,kJAAkJ;IAC/J,SAAS,EAAE;QACT;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,4FAA4F;YACzG,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,oEAAoE;YACjF,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAEpC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,QAAQ,WAAW,CAAC,CAAC,CAAC,mCAAmC,CAAC;IAC3F,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,MAAM,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO,WAAW,wBAAwB,KAAK;;;aAGhD,OAAO,CAAC,WAAW;EAC9B,QAAQ,CAAC,CAAC,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC,CAAC,6BAA6B;kBACnD,WAAW;EAC3B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;;;EAGlE,QAAQ,CAAC,CAAC;oBACV,8CAA8C,QAAQ;+EACuB,YAAY,UAAU,QAAQ;6EAChC,CAAC,CAAC;oBAC7E,qBAAqB,YAAY;;uDAEoB;;;;;;;;;;;;;;;;EAgBrD,QAAQ,CAAC,CAAC,CAAC;;;;;oCAKuB,CAAC,CAAC,CAAC,EAAE;;qGAE4D;aAC9F;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,MAAM;IACN,OAAO;CACR,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lbruton/specflow",
3
- "version": "3.5.2",
3
+ "version": "3.5.3",
4
4
  "description": "MCP server for spec-driven development workflow with real-time web dashboard",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",