用途
conductor-revert 用于按逻辑工作单元撤销代码变更,具备完整的 Git 感知能力。它面向使用 Conductor 工作流管理开发任务的团队或个人,允许回退整个 track、特定 phase 或单个 task 三个粒度的工作。
主要能力
- 多粒度回退:支持整个 track(如 auth_20250115)、特定 phase(如 auth_20250115:phase2,会回退该 phase 及其后所有 phase)、单个 task(如 auth_20250115:task2.3,仅回退该任务)。
- 提交发现:通过 git log --grep 搜索绑定 trackId 和任务编号的提交,同时查找 plan.md 更新提交,按时间顺序收集所有匹配的 SHA。
- 执行计划预览:在任何回退操作前,显示完整计划,包括按时间倒序排列的待回退提交列表、受影响的文件、plan.md 状态变更,并明确提示该操作无法轻易撤销。
- 显式确认:要求用户输入大写 'YES' 才会执行,'y'、'yes' 或直接回车均会被取消。
- 冲突处理:如果任何回退产生合并冲突,立即中止,不尝试自动解决,提供查看冲突详情、中止序列或打开手动解决指南的选项。
- 状态同步:成功回退后更新 plan.md 中任务标记([x] -> [ ]、[~] -> [ ]),更新 metadata.json 的完成计数和状态,并在整个 track 回退时更新 tracks.md。
- 验证提示:回退完成后显示摘要,包括回退的提交数、重置的任务数、受影响文件数,并提示运行测试和检查应用。
使用方式
该技能通过参数或引导菜单选择目标。带参数时解析格式 {trackId}、{trackId}:phase{N} 或 {trackId}:task{X.Y};无参数时展示引导菜单,列出进行中和最近完成的工作供选择。执行前需验证 conductor/tracks.md 存在,并检查 git 仓库状态,如有未提交变更会提供 stash、先提交或取消选项。回退按时间倒序使用 git revert --no-edit 逐个执行。
适用场景
- 使用 Conductor 工作流管理的开发项目,需要撤销某个 task 或 phase 的代码变更。
- 需要以逻辑工作单元而非零散提交为单位回退代码。
- 希望在回退前获得完整的执行计划预览和安全确认。
限制
- 安全规则:绝不使用 git reset --hard,绝不使用 git push --force,绝不自动解决冲突,必须在任何错误时停止,保留历史记录(优先使用 revert 提交而非重写历史)。
- 需要 Conductor 已初始化,否则提示先运行 /conductor:setup。
- 对于未提交的 track、已回退的提交、已推送到远端的提交等边缘情况有专门处理流程,但具体测试命令和检查步骤在资料中未提供。