@ikunin/sprintpilot 2.0.8 → 2.0.9
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/lib/commands/install.js
CHANGED
|
@@ -368,7 +368,7 @@ async function stripLegacyMarkers(projectRoot) {
|
|
|
368
368
|
// Evict v1 skill dirs from tool skill dirs INSIDE projectRoot only. We
|
|
369
369
|
// deliberately do NOT touch user-global ~/.claude/skills/ — a project-level
|
|
370
370
|
// install must not reach across projects on the same machine.
|
|
371
|
-
async function evictV1SkillsFromToolDirs(projectRoot) {
|
|
371
|
+
async function evictV1SkillsFromToolDirs(projectRoot, { dryRun = false } = {}) {
|
|
372
372
|
const removed = [];
|
|
373
373
|
const toolSkillDirs = [];
|
|
374
374
|
for (const tool of ALL_TOOLS) {
|
|
@@ -382,7 +382,7 @@ async function evictV1SkillsFromToolDirs(projectRoot) {
|
|
|
382
382
|
for (const v1Name of V1_SKILL_NAMES) {
|
|
383
383
|
const target = path.join(dir, v1Name);
|
|
384
384
|
if (await fs.pathExists(target)) {
|
|
385
|
-
await fs.remove(target);
|
|
385
|
+
if (!dryRun) await fs.remove(target);
|
|
386
386
|
removed.push(path.relative(projectRoot, target));
|
|
387
387
|
}
|
|
388
388
|
}
|
|
@@ -1001,6 +1001,22 @@ async function runInstall(options = {}) {
|
|
|
1001
1001
|
throw err;
|
|
1002
1002
|
}
|
|
1003
1003
|
|
|
1004
|
+
// 1b. Sweep orphaned v1-named skill dirs from tool dirs unconditionally.
|
|
1005
|
+
// evictV1Installation only fires when _bmad-addons/ is present, so a
|
|
1006
|
+
// user who upgraded long ago (and removed _bmad-addons/) never gets
|
|
1007
|
+
// stale .claude/skills/bmad-ma-* cleaned up — they linger as live
|
|
1008
|
+
// duplicates of the new sprintpilot-* skills. Idempotent, no-op when
|
|
1009
|
+
// nothing matches.
|
|
1010
|
+
const orphanedV1Skills = await evictV1SkillsFromToolDirs(projectRoot, { dryRun });
|
|
1011
|
+
if (orphanedV1Skills.length > 0) {
|
|
1012
|
+
console.log('');
|
|
1013
|
+
console.log(pc.yellow('Orphaned v1 skill directories found:'));
|
|
1014
|
+
for (const e of orphanedV1Skills) {
|
|
1015
|
+
console.log(` ${dryRun ? 'Would remove' : 'Removed'} legacy skill: ${e}`);
|
|
1016
|
+
}
|
|
1017
|
+
console.log('');
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1004
1020
|
// 2. Resolve output_folder
|
|
1005
1021
|
const outputFolder = await readOutputFolder(projectRoot);
|
|
1006
1022
|
if (outputFolder !== '_bmad-output') {
|
package/package.json
CHANGED