forge-orkes 0.3.10 → 0.3.11

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.
@@ -84,9 +84,10 @@ function collectFiles(dir, base) {
84
84
 
85
85
  /**
86
86
  * Compare and overwrite framework-owned or template-only files.
87
+ * If autoClean is true, delete dest files not in template (for framework-owned dirs).
87
88
  * Returns { updated, added, unchanged, removed } arrays of relative paths.
88
89
  */
89
- function upgradeDir(relDir) {
90
+ function upgradeDir(relDir, { autoClean = false } = {}) {
90
91
  const srcDir = path.join(templateDir, relDir);
91
92
  const destDir = path.join(targetDir, relDir);
92
93
 
@@ -122,6 +123,16 @@ function upgradeDir(relDir) {
122
123
  for (const rel of destFiles) {
123
124
  const srcPath = path.join(srcDir, rel);
124
125
  if (!fs.existsSync(srcPath)) {
126
+ const destPath = path.join(destDir, rel);
127
+ if (autoClean) {
128
+ fs.unlinkSync(destPath);
129
+ // Remove empty parent dirs up to relDir
130
+ let dir = path.dirname(destPath);
131
+ while (dir !== destDir && fs.existsSync(dir) && fs.readdirSync(dir).length === 0) {
132
+ fs.rmdirSync(dir);
133
+ dir = path.dirname(dir);
134
+ }
135
+ }
125
136
  result.removed.push(path.join(relDir, rel));
126
137
  }
127
138
  }
@@ -304,9 +315,9 @@ async function upgrade() {
304
315
  removed: [],
305
316
  };
306
317
 
307
- // 1. Process framework-owned directories
318
+ // 1. Process framework-owned directories (auto-clean stale files)
308
319
  for (const dir of FRAMEWORK_OWNED_DIRS) {
309
- const dirResult = upgradeDir(dir);
320
+ const dirResult = upgradeDir(dir, { autoClean: true });
310
321
  results.updated.push(...dirResult.updated);
311
322
  results.added.push(...dirResult.added);
312
323
  results.unchanged.push(...dirResult.unchanged);
@@ -365,9 +376,9 @@ async function upgrade() {
365
376
  }
366
377
 
367
378
  if (results.removed.length > 0) {
368
- console.log(` Removed from template (${results.removed.length}):`);
379
+ console.log(` Cleaned up (${results.removed.length}):`);
369
380
  for (const f of results.removed) {
370
- console.log(` ${f} (still in your project delete manually if unused)`);
381
+ console.log(` ${f} (removedno longer in framework)`);
371
382
  }
372
383
  console.log();
373
384
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forge-orkes",
3
- "version": "0.3.10",
3
+ "version": "0.3.11",
4
4
  "description": "Set up the Forge meta-prompting framework for Claude Code in your project",
5
5
  "bin": {
6
6
  "create-forge": "./bin/create-forge.js"