factory-reset-vscode-fork-ide

Installation
SKILL.md

VSCode 二次开发 IDE 出厂还原

适用于 Windows(Git Bash 执行)。目标:扩展数归零 + 用户配置归出厂。默认不留任何备份(用户偏好),删除一律走回收站(SendToRecycleBin),不直接物理删除。

审计附件:历次实战处理过的全部 C 盘路径(各 IDE 扩展文件夹、个人配置三件套、未动的相邻目录、恢复指引)见 references/cleanup-audit-log.md。执行新目标前可对照该清单确认同类路径的处理边界;每次完成新清理后应追加更新该清单。

铁律(踩过的坑)

  1. CLI 入口要挑对:fork 的 bin/ 下常有多个 .cmd(如 code.cmd、qoder-cn.cmd)。逐个试 --list-extensions,能输出扩展列表的才是 IDE 管理入口;另一个多半是独立 agent CLI 的壳,不支持扩展参数。
  2. 不要猜数据目录:~/.xxx/extensions 这种目录可能属于另一个同门产品(共享或历史遗留)。唯一权威来源是 <安装目录>/resources/app/product.json 的 dataFolderName 字段。
  3. 内置导入扩展必须 --force:报 marked as a Built-in extension 不是失败,加 --force 重来。
  4. 卸载后必扫残留:CLI 卸载会留下空壳文件夹、.GUID 临时目录和 .obsolete 标记,物理目录要手动清。
  5. 依赖会阻塞卸载:报 Cannot uninstall 'X'. 'Y' extension depends on this 时,先卸依赖方 Y(若 Y 是内置"not installed",等 IDE 进程退出后重试 X 通常即通);报 is not installed 说明该项已在别处清掉,跳过即可,不算失败。
  6. IDE 进程必须先退出:运行中的实例退出时会写回 extensions.json 和用户配置,覆盖清理结果。动手前 tasklist | grep -i <IDE名>,有进程先让用户关闭。
  7. extensions.json 计数为 0 才算完:文件夹删了但注册表没清 = 没清干净。
  8. 绝不动相邻产品目录:只动目标 fork 自己的 ~/.<dataFolderName>(且只碰其 extensions 子目录)和 %APPDATA%\<AppName>\User,同前缀的其他目录是别的产品的家(.qoder / .qoder-cn / .qoderwork 分属不同产品,归属以各自 product.json 为准)。
  9. CLI 卸载路径可能整个坏掉:若所有扩展都报同一个 JS 错误(如 Trae EN 的 Cannot read properties of undefined (reading 'isProtectedExtension'),带不带 --force 都一样),说明 fork 改坏了卸载功能,不是单个扩展的问题。不要逐个重试——直接切换「注册表直改方案」(见标准流程 §3 的兜底分支)。

标准流程

Installs
2
GitHub Stars
5
First Seen
Sep 29, 2026