fix(install): preserve USER-PROFILE.md and dev-preferences.md on update
The uninstall step wipes get-shit-done/ and commands/gsd/ directories entirely, destroying user-generated files like USER-PROFILE.md (from /gsd:profile-user) and dev-preferences.md. These files are now read before rmSync and restored immediately after. Closes #1423 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -3650,9 +3650,20 @@ function uninstall(isGlobal, runtime = 'claude') {
|
||||
// Gemini: still uses commands/gsd/
|
||||
const gsdCommandsDir = path.join(targetDir, 'commands', 'gsd');
|
||||
if (fs.existsSync(gsdCommandsDir)) {
|
||||
// Preserve user-generated files before wipe (#1423)
|
||||
const devPrefsPath = path.join(gsdCommandsDir, 'dev-preferences.md');
|
||||
const preservedDevPrefs = fs.existsSync(devPrefsPath) ? fs.readFileSync(devPrefsPath, 'utf-8') : null;
|
||||
|
||||
fs.rmSync(gsdCommandsDir, { recursive: true });
|
||||
removedCount++;
|
||||
console.log(` ${green}✓${reset} Removed commands/gsd/`);
|
||||
|
||||
// Restore user-generated files
|
||||
if (preservedDevPrefs) {
|
||||
fs.mkdirSync(gsdCommandsDir, { recursive: true });
|
||||
fs.writeFileSync(devPrefsPath, preservedDevPrefs);
|
||||
console.log(` ${green}✓${reset} Preserved commands/gsd/dev-preferences.md`);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Claude Code: remove skills/gsd-*/ directories
|
||||
@@ -3684,9 +3695,20 @@ function uninstall(isGlobal, runtime = 'claude') {
|
||||
// 2. Remove get-shit-done directory
|
||||
const gsdDir = path.join(targetDir, 'get-shit-done');
|
||||
if (fs.existsSync(gsdDir)) {
|
||||
// Preserve user-generated files before wipe (#1423)
|
||||
const userProfilePath = path.join(gsdDir, 'USER-PROFILE.md');
|
||||
const preservedProfile = fs.existsSync(userProfilePath) ? fs.readFileSync(userProfilePath, 'utf-8') : null;
|
||||
|
||||
fs.rmSync(gsdDir, { recursive: true });
|
||||
removedCount++;
|
||||
console.log(` ${green}✓${reset} Removed get-shit-done/`);
|
||||
|
||||
// Restore user-generated files
|
||||
if (preservedProfile) {
|
||||
fs.mkdirSync(gsdDir, { recursive: true });
|
||||
fs.writeFileSync(userProfilePath, preservedProfile);
|
||||
console.log(` ${green}✓${reset} Preserved get-shit-done/USER-PROFILE.md`);
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Remove GSD agents (gsd-*.md files only)
|
||||
|
||||
Reference in New Issue
Block a user