safe-remove 用于安全移除插件资产,支持 skill、agent、rule、script、hook 五种类型。用法为 /safe-remove <type> <name> [--execute] [--dry-run]。默认行为是 --dry-run,仅输出移除计划;提供 --execute 时才实际删除,并需 AskUserQuestion 确认;若两者同时给出,以 --dry-run 为准。
工作流程分五阶段:解析目标文件、构建引用图、影响分类、执行、验证。影响分两层:BLOCKER 为结构化运行时绑定,移除会破坏执行,需先解决并附 file:line 信息;PATCHABLE 为文档或散文引用,可自动修补。执行顺序为先修补后删除,修补包括从 docs/skill-catalog.yml、README 及多语言变体、其他 skill/rule 中移除或更新条目;删除时按类型处理,如 skill 删除整个 skills/<name>/ 目录及对应测试文件,hook 删除脚本、JSON 条目及测试。删除后清理空目录,最后按类型运行验证,检查是否有残留引用。
限制:禁止自动触发,仅可显式调用;未加 --execute 并确认前不得删除;存在 BLOCKER 时禁止强制删除;不得修改移除范围外文件。BLOCKER/PATCHABLE 分类规则及逐类型矩阵见 references/removal-policy.md。具体收费、价格与平台信息暂未提供。