关于 gsd-reapply-patches
供 GSD Agent 使用的技能,可在 GSD 更新后将备份的本地修改合并回新文件。它会比较新旧版本;遇到上游也有修改的冲突时,请用户决定保留哪一方。
主要功能
- 01查找备份的本地补丁
- 02比较旧版与更新后的文件
- 03合并兼容的修改
- 04请求处理冲突
- 05报告补丁状态
适用场景
- 01GSD 更新后恢复工作流修改
- 02上游文件变更时保留自定义修改
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ shoootyou/ get-shit-done-multi --skill gsd-reapply-patches安装后在 Claude Code 中输入/gsd-reapply-patches确认已加载。
详细介绍
GSD 更新会清除并重新安装文件。此命令会将用户之前保存的本地修改合并回新版本。它会进行智能比对,以处理上游文件也发生变化的情况。
步骤 1:检测备份补丁
检查本地补丁目录:
# Global install (path templated at install time)
PATCHES_DIR={{PLATFORM_ROOT}}/gsd-local-patches
# Local install fallback
if [ ! -d "$PATCHES_DIR" ]; then
PATCHES_DIR={{PLATFORM_ROOT}}/gsd-local-patches
fi
从补丁目录读取 backup-meta.json。
如果没有找到补丁:
No local patches found. Nothing to reapply.
Local patches are automatically saved when you run {{COMMAND_PREFIX}}update
after modifying any GSD workflow, command, or agent files.
退出。
步骤 2:显示补丁摘要
## Local Patches to Reapply
**Backed up from:** v{from_version}
**Current version:** {read VERSION file}
**Files modified:** {count}
| # | File | Status |
|---|------|--------|
| 1 | {file_path} | Pending |
| 2 | {file_path} | Pending |
步骤 3:合并每个文件
对于 backup-meta.json 中的每个文件:
-
读取备份版本(用户在
gsd-local-patches/中修改的副本) -
读取新安装的版本(更新后的当前文件)
-
比对并合并:
- 如果新文件与备份文件相同:跳过(修改已合并到上游)
- 如果新文件不同:找出用户的修改并将其应用到新版本
合并策略:
- 完整读取两个版本
- 找出用户添加或修改的部分(查找新增内容,而不只是路径替换造成的差异)
- 将用户添加或修改的内容应用到新版本
- 如果用户修改的部分也被上游修改:标记为冲突,展示两个版本,并询问用户要保留哪一个
-
将合并后的结果写入已安装文件所在位置
-
报告状态:
Merged— 用户的修改已顺利应用Skipped— 修改已存在于上游Conflict— 用户已选择解决方案
步骤 4:更新清单
重新应用修改后,重新生成文件清单,以便后续更新能正确识别这些文件是用户修改过的:
# The manifest will be regenerated on next {{COMMAND_PREFIX}}update
# For now, just note which files were modified
步骤 5:清理选项
询问用户:
- “保留补丁备份以供参考?”→ 保留
gsd-local-patches/ - “清理补丁备份?”→ 删除
gsd-local-patches/目录
步骤 6:报告
## Patches Reapplied
| # | File | Status |
|---|------|--------|
| 1 | {file_path} | ✓ Merged |
| 2 | {file_path} | ○ Skipped (already upstream) |
| 3 | {file_path} | ⚠ Conflict resolved |
{count} file(s) updated. Your local modifications are active again.
<success_criteria>
- 已处理所有备份补丁
- 已将用户修改合并到新版本
- 已根据用户输入解决冲突
- 已报告每个文件的状态 </success_criteria>
评论
支持 Markdown