specweave 0.23.2 → 0.23.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 (98) hide show
  1. package/CLAUDE.md +268 -0
  2. package/dist/plugins/specweave/lib/utils/fs-native.d.ts +133 -0
  3. package/dist/plugins/specweave/lib/utils/fs-native.d.ts.map +1 -0
  4. package/dist/plugins/specweave/lib/utils/fs-native.js +224 -0
  5. package/dist/plugins/specweave/lib/utils/fs-native.js.map +1 -0
  6. package/dist/plugins/specweave-github/lib/github-client-v2.js +1 -1
  7. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
  8. package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +1 -1
  9. package/dist/plugins/specweave-github/lib/github-feature-sync.js +52 -20
  10. package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -1
  11. package/dist/src/cli/helpers/init/initial-increment-generator.d.ts.map +1 -1
  12. package/dist/src/cli/helpers/init/initial-increment-generator.js +2 -1
  13. package/dist/src/cli/helpers/init/initial-increment-generator.js.map +1 -1
  14. package/dist/src/core/ac-test-validator-cli.d.ts +16 -0
  15. package/dist/src/core/ac-test-validator-cli.d.ts.map +1 -0
  16. package/dist/src/core/ac-test-validator-cli.js +118 -0
  17. package/dist/src/core/ac-test-validator-cli.js.map +1 -0
  18. package/dist/src/core/ac-test-validator.d.ts +111 -0
  19. package/dist/src/core/ac-test-validator.d.ts.map +1 -0
  20. package/dist/src/core/ac-test-validator.js +292 -0
  21. package/dist/src/core/ac-test-validator.js.map +1 -0
  22. package/dist/src/core/increment/desync-detector.d.ts +142 -0
  23. package/dist/src/core/increment/desync-detector.d.ts.map +1 -0
  24. package/dist/src/core/increment/desync-detector.js +270 -0
  25. package/dist/src/core/increment/desync-detector.js.map +1 -0
  26. package/dist/src/core/increment/metadata-manager.d.ts +8 -4
  27. package/dist/src/core/increment/metadata-manager.d.ts.map +1 -1
  28. package/dist/src/core/increment/metadata-manager.js +45 -21
  29. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  30. package/dist/src/core/qa/qa-runner.js +9 -2
  31. package/dist/src/core/qa/qa-runner.js.map +1 -1
  32. package/dist/src/sync/sync-coordinator.d.ts +1 -1
  33. package/dist/src/sync/sync-coordinator.d.ts.map +1 -1
  34. package/dist/src/sync/sync-coordinator.js +40 -2
  35. package/dist/src/sync/sync-coordinator.js.map +1 -1
  36. package/dist/src/utils/fs-native.d.ts +133 -0
  37. package/dist/src/utils/fs-native.d.ts.map +1 -0
  38. package/dist/src/utils/fs-native.js +224 -0
  39. package/dist/src/utils/fs-native.js.map +1 -0
  40. package/package.json +1 -1
  41. package/plugins/specweave/.claude-plugin/plugin.json +12 -0
  42. package/plugins/specweave/agents/AGENTS-INDEX.md +216 -0
  43. package/plugins/specweave/agents/architect/AGENT.md +17 -0
  44. package/plugins/specweave/agents/code-standards-detective/AGENT.md +16 -0
  45. package/plugins/specweave/agents/docs-writer/AGENT.md +16 -0
  46. package/plugins/specweave/agents/increment-quality-judge-v2/AGENT.md +704 -0
  47. package/plugins/specweave/agents/infrastructure/AGENT.md +16 -0
  48. package/plugins/specweave/agents/performance/AGENT.md +16 -0
  49. package/plugins/specweave/agents/pm/AGENT.md +17 -0
  50. package/plugins/specweave/agents/qa-lead/AGENT.md +15 -0
  51. package/plugins/specweave/agents/reflective-reviewer/AGENT.md +16 -0
  52. package/plugins/specweave/agents/security/AGENT.md +16 -0
  53. package/plugins/specweave/agents/tdd-orchestrator/AGENT.md +16 -0
  54. package/plugins/specweave/agents/tech-lead/AGENT.md +16 -0
  55. package/plugins/specweave/agents/test-aware-planner/AGENT.md +16 -0
  56. package/plugins/specweave/agents/translator/AGENT.md +13 -0
  57. package/plugins/specweave/commands/specweave-done.md +14 -0
  58. package/plugins/specweave/commands/specweave-qa.md +11 -1
  59. package/plugins/specweave/commands/specweave-sync-status.md +356 -0
  60. package/plugins/specweave/commands/specweave-validate.md +10 -1
  61. package/plugins/specweave/hooks/pre-task-completion.sh +196 -0
  62. package/plugins/specweave/lib/hooks/git-diff-analyzer.js +3 -3
  63. package/plugins/specweave/lib/hooks/git-diff-analyzer.ts +3 -3
  64. package/plugins/specweave/lib/hooks/invoke-translator-skill.js +3 -2
  65. package/plugins/specweave/lib/hooks/invoke-translator-skill.ts +3 -2
  66. package/plugins/specweave/lib/hooks/prepare-reflection-context.js +3 -3
  67. package/plugins/specweave/lib/hooks/prepare-reflection-context.ts +3 -3
  68. package/plugins/specweave/lib/hooks/reflection-config-loader.js +4 -4
  69. package/plugins/specweave/lib/hooks/reflection-config-loader.ts +4 -4
  70. package/plugins/specweave/lib/hooks/reflection-storage.js +9 -9
  71. package/plugins/specweave/lib/hooks/reflection-storage.ts +9 -9
  72. package/plugins/specweave/lib/hooks/sync-cache.js +9 -8
  73. package/plugins/specweave/lib/hooks/sync-living-docs.js +57 -6
  74. package/plugins/specweave/lib/hooks/sync-us-tasks.js +6 -6
  75. package/plugins/specweave/lib/hooks/translate-file.js +3 -2
  76. package/plugins/specweave/lib/hooks/translate-file.ts +3 -2
  77. package/plugins/specweave/lib/hooks/translate-living-docs.js +4 -3
  78. package/plugins/specweave/lib/hooks/translate-living-docs.ts +4 -3
  79. package/plugins/specweave/lib/utils/fs-native.js +182 -0
  80. package/plugins/specweave/lib/utils/fs-native.ts +283 -0
  81. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.d.ts +8 -4
  82. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +45 -21
  83. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
  84. package/plugins/specweave/skills/SKILLS-INDEX.md +26 -2
  85. package/plugins/specweave/skills/increment-planner/SKILL.md +2 -2
  86. package/plugins/specweave-ado/commands/specweave-ado-close-workitem.md +1 -1
  87. package/plugins/specweave-ado/commands/specweave-ado-create-workitem.md +1 -1
  88. package/plugins/specweave-ado/commands/specweave-ado-status.md +1 -1
  89. package/plugins/specweave-ado/commands/specweave-ado-sync.md +1 -1
  90. package/plugins/specweave-diagrams/agents/diagrams-architect/AGENT.md +1 -1
  91. package/plugins/specweave-diagrams/skills/diagrams-generator/SKILL.md +4 -4
  92. package/plugins/specweave-github/lib/github-client-v2.js +2 -1
  93. package/plugins/specweave-github/lib/github-client-v2.ts +1 -1
  94. package/plugins/specweave-github/lib/github-feature-sync.js +30 -17
  95. package/plugins/specweave-github/lib/github-feature-sync.ts +54 -24
  96. package/plugins/specweave-mobile/README.md +1 -1
  97. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +72 -0
  98. package/plugins/specweave/skills/task-builder/README.md +0 -84
@@ -1 +1 @@
1
- {"version":3,"file":"sync-coordinator.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,MAAM,EAAiB,MAAM,oBAAoB,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,cAAc,GAAG,WAAW,GAAG,WAAW,CAAC;IACrD,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,sBAAsB;IAM3C;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,UAAU,CAAC;IA4EpD;;OAEG;YACW,aAAa;IA8B3B;;OAEG;YACW,kBAAkB;IAmEhC;;OAEG;YACW,2BAA2B;IAqEzC;;OAEG;YACW,UAAU;IAWxB;;OAEG;YACW,gBAAgB;CAyB/B"}
1
+ {"version":3,"file":"sync-coordinator.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,MAAM,EAAiB,MAAM,oBAAoB,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,cAAc,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC;IACrE,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,sBAAsB;IAM3C;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,UAAU,CAAC;IA0FpD;;OAEG;YACW,aAAa;IAyD3B;;OAEG;YACW,kBAAkB;IAmEhC;;OAEG;YACW,2BAA2B;IAqEzC;;OAEG;YACW,UAAU;IAWxB;;OAEG;YACW,gBAAgB;CAyB/B"}
@@ -31,13 +31,25 @@ export class SyncCoordinator {
31
31
  this.logger.log(`\n🔄 Syncing increment ${this.incrementId} with format preservation...`);
32
32
  // 1. Load config
33
33
  const config = await this.loadConfig();
34
- // 2. Check if sync is enabled
34
+ // 2. Check if sync is enabled (GATE 2: canUpdateExternalItems)
35
35
  if (!config.sync?.settings?.canUpdateExternalItems) {
36
36
  this.logger.log('ℹ️ External sync disabled (canUpdateExternalItems=false)');
37
37
  result.syncMode = 'read-only';
38
38
  result.success = true;
39
39
  return result;
40
40
  }
41
+ // GATE 3: Check if automatic sync is enabled
42
+ // DEFAULT: true (automatic sync enabled for better UX)
43
+ const autoSync = config.sync?.settings?.autoSyncOnCompletion ?? true;
44
+ if (!autoSync) {
45
+ this.logger.log('⚠️ Automatic sync disabled (autoSyncOnCompletion=false)');
46
+ this.logger.log(' Living docs updated locally, but external tools require manual sync');
47
+ this.logger.log(' Run /specweave-github:sync or /specweave-jira:sync to sync manually');
48
+ result.syncMode = 'manual-only';
49
+ result.success = true;
50
+ return result;
51
+ }
52
+ this.logger.log('✅ Automatic sync enabled (autoSyncOnCompletion=true)');
41
53
  // 3. Load living docs User Stories for this increment
42
54
  const userStories = await this.loadUserStoriesForIncrement();
43
55
  if (userStories.length === 0) {
@@ -93,7 +105,13 @@ export class SyncCoordinator {
93
105
  const completionData = await this.loadCompletionData(usFile);
94
106
  // Determine external tool and create client
95
107
  const externalSource = usFile.external_source || 'github'; // Default to GitHub
108
+ // GATE 4: Check if the specific tool is enabled
96
109
  if (externalSource === 'github') {
110
+ const githubEnabled = config.sync?.github?.enabled ?? false;
111
+ if (!githubEnabled) {
112
+ this.logger.log(' ⏭️ GitHub sync SKIPPED (sync.github.enabled = false)');
113
+ return;
114
+ }
97
115
  // Extract owner/repo from config or detect from git
98
116
  const githubConfig = config.sync?.github || {};
99
117
  const repoInfo = await this.detectGitHubRepo(githubConfig);
@@ -103,8 +121,28 @@ export class SyncCoordinator {
103
121
  const client = GitHubClientV2.fromRepo(repoInfo.owner, repoInfo.repo);
104
122
  await syncService.syncUserStory(usFile, completionData, client);
105
123
  }
124
+ else if (externalSource === 'jira') {
125
+ const jiraEnabled = config.sync?.jira?.enabled ?? false;
126
+ if (!jiraEnabled) {
127
+ this.logger.log(' ⏭️ JIRA sync SKIPPED (sync.jira.enabled = false)');
128
+ return;
129
+ }
130
+ // TODO: Implement JIRA sync
131
+ this.logger.log(' ⚠️ JIRA sync not yet fully implemented');
132
+ this.logger.log(' 💡 Use /specweave-jira:sync for manual JIRA sync');
133
+ }
134
+ else if (externalSource === 'ado' || externalSource === 'azure-devops') {
135
+ const adoEnabled = config.sync?.ado?.enabled ?? false;
136
+ if (!adoEnabled) {
137
+ this.logger.log(' ⏭️ Azure DevOps sync SKIPPED (sync.ado.enabled = false)');
138
+ return;
139
+ }
140
+ // TODO: Implement ADO sync
141
+ this.logger.log(' ⚠️ Azure DevOps sync not yet fully implemented');
142
+ this.logger.log(' 💡 Use /specweave-ado:sync for manual ADO sync');
143
+ }
106
144
  else {
107
- this.logger.log(` ⚠️ ${externalSource} sync not yet implemented`);
145
+ this.logger.log(` ⚠️ Unknown external source: ${externalSource}`);
108
146
  }
109
147
  }
110
148
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sync-coordinator.js","sourceRoot":"","sources":["../../../src/sync/sync-coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-coordinator.js","sourceRoot":"","sources":["../../../src/sync/sync-coordinator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Native Node.js fs API Helpers
3
+ *
4
+ * Drop-in replacements for fs-extra methods using only Node.js stdlib.
5
+ * All methods use native Node.js 20+ APIs with no external dependencies.
6
+ *
7
+ * Migration from fs-extra:
8
+ * - import fs from 'fs-extra' → import * as fs from './utils/fs-native.js'
9
+ * - All fs-extra methods work as drop-in replacements
10
+ *
11
+ * Benefits:
12
+ * - Zero bundle overhead (no npm packages)
13
+ * - Works in marketplace (no node_modules needed)
14
+ * - Faster startup (native APIs)
15
+ * - Better debugging (native stack traces)
16
+ */
17
+ import { promises as fsPromises, existsSync, mkdirSync, readFileSync, writeFileSync, statSync, readdirSync, rmSync, unlinkSync } from 'fs';
18
+ /**
19
+ * Ensures that a directory exists. If the directory does not exist, it is created.
20
+ * @param dirPath - The directory path to ensure
21
+ */
22
+ export declare function ensureDir(dirPath: string): Promise<void>;
23
+ /**
24
+ * Synchronous version of ensureDir
25
+ */
26
+ export declare function ensureDirSync(dirPath: string): void;
27
+ /**
28
+ * Alias for ensureDirSync (fs-extra compatibility)
29
+ */
30
+ export declare function mkdirpSync(dirPath: string): void;
31
+ /**
32
+ * Check if a path exists
33
+ * @param filePath - The path to check
34
+ */
35
+ export declare function pathExists(filePath: string): Promise<boolean>;
36
+ /**
37
+ * Synchronous version of pathExists
38
+ */
39
+ export { existsSync };
40
+ /**
41
+ * Read a JSON file and parse it
42
+ * @param filePath - The JSON file path
43
+ */
44
+ export declare function readJson(filePath: string): Promise<any>;
45
+ /**
46
+ * Synchronous version of readJson
47
+ */
48
+ export declare function readJsonSync(filePath: string): any;
49
+ /**
50
+ * Write a JSON file with formatting
51
+ * @param filePath - The JSON file path
52
+ * @param data - The data to write
53
+ * @param options - Options (spaces for indentation)
54
+ */
55
+ export declare function writeJson(filePath: string, data: any, options?: {
56
+ spaces?: number;
57
+ }): Promise<void>;
58
+ /**
59
+ * Synchronous version of writeJson
60
+ */
61
+ export declare function writeJsonSync(filePath: string, data: any, options?: {
62
+ spaces?: number;
63
+ }): void;
64
+ /**
65
+ * Remove a file or directory (recursively)
66
+ * @param targetPath - The path to remove
67
+ */
68
+ export declare function remove(targetPath: string): Promise<void>;
69
+ /**
70
+ * Synchronous version of remove
71
+ */
72
+ export declare function removeSync(targetPath: string): void;
73
+ /**
74
+ * Copy a file or directory
75
+ * @param src - Source path
76
+ * @param dest - Destination path
77
+ * @param options - Copy options
78
+ */
79
+ export declare function copy(src: string, dest: string, options?: {
80
+ overwrite?: boolean;
81
+ filter?: (src: string) => boolean;
82
+ }): Promise<void>;
83
+ /**
84
+ * Synchronous version of copy
85
+ */
86
+ export declare function copySync(src: string, dest: string, options?: {
87
+ overwrite?: boolean;
88
+ filter?: (src: string) => boolean;
89
+ }): void;
90
+ /**
91
+ * Ensure a file exists (create if it doesn't)
92
+ * @param filePath - The file path
93
+ */
94
+ export declare function ensureFile(filePath: string): Promise<void>;
95
+ /**
96
+ * Synchronous version of ensureFile
97
+ */
98
+ export declare function ensureFileSync(filePath: string): void;
99
+ export declare const readFile: typeof fsPromises.readFile, writeFile: typeof fsPromises.writeFile, appendFile: typeof fsPromises.appendFile, stat: typeof fsPromises.stat, readdir: typeof fsPromises.readdir, access: typeof fsPromises.access, unlink: typeof fsPromises.unlink, rmdir: typeof fsPromises.rmdir, rename: typeof fsPromises.rename, chmod: typeof fsPromises.chmod;
100
+ export { readFileSync, writeFileSync, statSync, readdirSync, unlinkSync, mkdirSync, rmSync, };
101
+ declare const _default: {
102
+ ensureDir: typeof ensureDir;
103
+ pathExists: typeof pathExists;
104
+ readJson: typeof readJson;
105
+ writeJson: typeof writeJson;
106
+ remove: typeof remove;
107
+ copy: typeof copy;
108
+ ensureFile: typeof ensureFile;
109
+ readFile: typeof fsPromises.readFile;
110
+ writeFile: typeof fsPromises.writeFile;
111
+ appendFile: typeof fsPromises.appendFile;
112
+ stat: typeof fsPromises.stat;
113
+ readdir: typeof fsPromises.readdir;
114
+ access: typeof fsPromises.access;
115
+ unlink: typeof fsPromises.unlink;
116
+ ensureDirSync: typeof ensureDirSync;
117
+ mkdirpSync: typeof mkdirpSync;
118
+ existsSync: typeof existsSync;
119
+ readJsonSync: typeof readJsonSync;
120
+ writeJsonSync: typeof writeJsonSync;
121
+ removeSync: typeof removeSync;
122
+ copySync: typeof copySync;
123
+ ensureFileSync: typeof ensureFileSync;
124
+ readFileSync: typeof readFileSync;
125
+ writeFileSync: typeof writeFileSync;
126
+ statSync: import("fs").StatSyncFn;
127
+ readdirSync: typeof readdirSync;
128
+ unlinkSync: typeof unlinkSync;
129
+ mkdirSync: typeof mkdirSync;
130
+ rmSync: typeof rmSync;
131
+ };
132
+ export default _default;
133
+ //# sourceMappingURL=fs-native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-native.d.ts","sourceRoot":"","sources":["../../../src/utils/fs-native.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAgB,MAAM,IAAI,CAAC;AAIzJ;;;GAGG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAInD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEnE;AAED;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAG7D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAGlD;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,IAAI,CAIN;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAInD;AAED;;;;;GAKG;AACH,wBAAsB,IAAI,CACxB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,GACnE,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,GACnE,IAAI,CA4BN;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAKrD;AAGD,eAAO,MACL,QAAQ,8BACR,SAAS,+BACT,UAAU,gCACV,IAAI,0BACJ,OAAO,6BACP,MAAM,4BACN,MAAM,4BACN,KAAK,2BACL,MAAM,4BACN,KAAK,yBACO,CAAC;AAGf,OAAO,EACL,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,WAAW,EACX,UAAU,EACV,SAAS,EACT,MAAM,GACP,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGF,wBAiCE"}
@@ -0,0 +1,224 @@
1
+ /**
2
+ * Native Node.js fs API Helpers
3
+ *
4
+ * Drop-in replacements for fs-extra methods using only Node.js stdlib.
5
+ * All methods use native Node.js 20+ APIs with no external dependencies.
6
+ *
7
+ * Migration from fs-extra:
8
+ * - import fs from 'fs-extra' → import * as fs from './utils/fs-native.js'
9
+ * - All fs-extra methods work as drop-in replacements
10
+ *
11
+ * Benefits:
12
+ * - Zero bundle overhead (no npm packages)
13
+ * - Works in marketplace (no node_modules needed)
14
+ * - Faster startup (native APIs)
15
+ * - Better debugging (native stack traces)
16
+ */
17
+ import { promises as fsPromises, existsSync, mkdirSync, readFileSync, writeFileSync, statSync, readdirSync, rmSync, unlinkSync, copyFileSync } from 'fs';
18
+ import path from 'path';
19
+ /**
20
+ * Ensures that a directory exists. If the directory does not exist, it is created.
21
+ * @param dirPath - The directory path to ensure
22
+ */
23
+ export async function ensureDir(dirPath) {
24
+ if (!existsSync(dirPath)) {
25
+ await fsPromises.mkdir(dirPath, { recursive: true });
26
+ }
27
+ }
28
+ /**
29
+ * Synchronous version of ensureDir
30
+ */
31
+ export function ensureDirSync(dirPath) {
32
+ if (!existsSync(dirPath)) {
33
+ mkdirSync(dirPath, { recursive: true });
34
+ }
35
+ }
36
+ /**
37
+ * Alias for ensureDirSync (fs-extra compatibility)
38
+ */
39
+ export function mkdirpSync(dirPath) {
40
+ ensureDirSync(dirPath);
41
+ }
42
+ /**
43
+ * Check if a path exists
44
+ * @param filePath - The path to check
45
+ */
46
+ export async function pathExists(filePath) {
47
+ return existsSync(filePath);
48
+ }
49
+ /**
50
+ * Synchronous version of pathExists
51
+ */
52
+ export { existsSync };
53
+ /**
54
+ * Read a JSON file and parse it
55
+ * @param filePath - The JSON file path
56
+ */
57
+ export async function readJson(filePath) {
58
+ const content = await fsPromises.readFile(filePath, 'utf-8');
59
+ return JSON.parse(content);
60
+ }
61
+ /**
62
+ * Synchronous version of readJson
63
+ */
64
+ export function readJsonSync(filePath) {
65
+ const content = readFileSync(filePath, 'utf-8');
66
+ return JSON.parse(content);
67
+ }
68
+ /**
69
+ * Write a JSON file with formatting
70
+ * @param filePath - The JSON file path
71
+ * @param data - The data to write
72
+ * @param options - Options (spaces for indentation)
73
+ */
74
+ export async function writeJson(filePath, data, options) {
75
+ const spaces = options?.spaces ?? 2;
76
+ const content = JSON.stringify(data, null, spaces);
77
+ await fsPromises.writeFile(filePath, content, 'utf-8');
78
+ }
79
+ /**
80
+ * Synchronous version of writeJson
81
+ */
82
+ export function writeJsonSync(filePath, data, options) {
83
+ const spaces = options?.spaces ?? 2;
84
+ const content = JSON.stringify(data, null, spaces);
85
+ writeFileSync(filePath, content, 'utf-8');
86
+ }
87
+ /**
88
+ * Remove a file or directory (recursively)
89
+ * @param targetPath - The path to remove
90
+ */
91
+ export async function remove(targetPath) {
92
+ if (existsSync(targetPath)) {
93
+ await fsPromises.rm(targetPath, { recursive: true, force: true });
94
+ }
95
+ }
96
+ /**
97
+ * Synchronous version of remove
98
+ */
99
+ export function removeSync(targetPath) {
100
+ if (existsSync(targetPath)) {
101
+ rmSync(targetPath, { recursive: true, force: true });
102
+ }
103
+ }
104
+ /**
105
+ * Copy a file or directory
106
+ * @param src - Source path
107
+ * @param dest - Destination path
108
+ * @param options - Copy options
109
+ */
110
+ export async function copy(src, dest, options) {
111
+ const srcStat = await fsPromises.stat(src);
112
+ if (srcStat.isFile()) {
113
+ // Copy single file
114
+ await fsPromises.mkdir(path.dirname(dest), { recursive: true });
115
+ await fsPromises.copyFile(src, dest);
116
+ }
117
+ else if (srcStat.isDirectory()) {
118
+ // Copy directory recursively
119
+ await fsPromises.mkdir(dest, { recursive: true });
120
+ const entries = await fsPromises.readdir(src, { withFileTypes: true });
121
+ for (const entry of entries) {
122
+ const srcPath = path.join(src, entry.name);
123
+ const destPath = path.join(dest, entry.name);
124
+ // Apply filter if provided
125
+ if (options?.filter && !options.filter(srcPath)) {
126
+ continue;
127
+ }
128
+ if (entry.isDirectory()) {
129
+ await copy(srcPath, destPath, options);
130
+ }
131
+ else {
132
+ await fsPromises.copyFile(srcPath, destPath);
133
+ }
134
+ }
135
+ }
136
+ }
137
+ /**
138
+ * Synchronous version of copy
139
+ */
140
+ export function copySync(src, dest, options) {
141
+ const srcStat = statSync(src);
142
+ if (srcStat.isFile()) {
143
+ // Copy single file
144
+ mkdirSync(path.dirname(dest), { recursive: true });
145
+ copyFileSync(src, dest);
146
+ }
147
+ else if (srcStat.isDirectory()) {
148
+ // Copy directory recursively
149
+ mkdirSync(dest, { recursive: true });
150
+ const entries = readdirSync(src, { withFileTypes: true });
151
+ for (const entry of entries) {
152
+ const srcPath = path.join(src, entry.name);
153
+ const destPath = path.join(dest, entry.name);
154
+ // Apply filter if provided
155
+ if (options?.filter && !options.filter(srcPath)) {
156
+ continue;
157
+ }
158
+ if (entry.isDirectory()) {
159
+ copySync(srcPath, destPath, options);
160
+ }
161
+ else {
162
+ copyFileSync(srcPath, destPath);
163
+ }
164
+ }
165
+ }
166
+ }
167
+ /**
168
+ * Ensure a file exists (create if it doesn't)
169
+ * @param filePath - The file path
170
+ */
171
+ export async function ensureFile(filePath) {
172
+ if (!existsSync(filePath)) {
173
+ await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
174
+ await fsPromises.writeFile(filePath, '', 'utf-8');
175
+ }
176
+ }
177
+ /**
178
+ * Synchronous version of ensureFile
179
+ */
180
+ export function ensureFileSync(filePath) {
181
+ if (!existsSync(filePath)) {
182
+ mkdirSync(path.dirname(filePath), { recursive: true });
183
+ writeFileSync(filePath, '', 'utf-8');
184
+ }
185
+ }
186
+ // Re-export common fs/promises methods for convenience
187
+ export const { readFile, writeFile, appendFile, stat, readdir, access, unlink, rmdir, rename, chmod, } = fsPromises;
188
+ // Re-export common synchronous methods
189
+ export { readFileSync, writeFileSync, statSync, readdirSync, unlinkSync, mkdirSync, rmSync, };
190
+ // Default export for convenience
191
+ export default {
192
+ // Async methods
193
+ ensureDir,
194
+ pathExists,
195
+ readJson,
196
+ writeJson,
197
+ remove,
198
+ copy,
199
+ ensureFile,
200
+ readFile,
201
+ writeFile,
202
+ appendFile,
203
+ stat,
204
+ readdir,
205
+ access,
206
+ unlink,
207
+ // Sync methods
208
+ ensureDirSync,
209
+ mkdirpSync,
210
+ existsSync,
211
+ readJsonSync,
212
+ writeJsonSync,
213
+ removeSync,
214
+ copySync,
215
+ ensureFileSync,
216
+ readFileSync,
217
+ writeFileSync,
218
+ statSync,
219
+ readdirSync,
220
+ unlinkSync,
221
+ mkdirSync,
222
+ rmSync,
223
+ };
224
+ //# sourceMappingURL=fs-native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-native.js","sourceRoot":"","sources":["../../../src/utils/fs-native.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specweave",
3
- "version": "0.23.2",
3
+ "version": "0.23.4",
4
4
  "description": "Spec-driven development framework for Claude Code. AI-native workflow with living documentation, intelligent agents, and multilingual support (9 languages). Enterprise-grade traceability with permanent specs and temporary increments.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -20,6 +20,18 @@
20
20
  "living-docs"
21
21
  ],
22
22
  "hooks": {
23
+ "PreToolUse": [
24
+ {
25
+ "matcher": "TodoWrite",
26
+ "hooks": [
27
+ {
28
+ "type": "command",
29
+ "command": "${CLAUDE_PLUGIN_ROOT}/hooks/pre-task-completion.sh",
30
+ "timeout": 60
31
+ }
32
+ ]
33
+ }
34
+ ],
23
35
  "PostToolUse": [
24
36
  {
25
37
  "matcher": "TodoWrite",