mcpField
C
conductor-revert

conductor-revert

github.com/sickn33开发48.7k214 次安装今天更新
代码仓库

关于 conductor-revert

conductor-revert 是用于在 Git 仓库中撤销 Conductor 工作轨道、阶段或单项任务的工作流技能。它指导提交筛选、明确确认、执行与验证,并强调保留历史以及遇错或冲突时停止。

主要功能

  1. 01按工作轨道、阶段或任务撤销
  2. 02Git 状态与仓库预检
  3. 03提交发现与验证
  4. 04执行前要求明确确认
  5. 05冲突处理与撤销后验证

适用场景

  1. 01撤销已完成的 Conductor 工作轨道
  2. 02撤销某阶段及其后续阶段
  3. 03撤销特定任务的提交
  4. 04在修改 Git 历史前检查安全步骤

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill conductor-revert

安装后在 Claude Code 中输入/conductor-revert确认已加载。

详细介绍

撤销 Track

按逻辑工作单元撤销更改,并充分考虑 Git 状态。支持撤销整个 Track、特定阶段或单个任务。

适用场景

  • 处理撤销 Track 相关任务或工作流
  • 需要撤销 Track 方面的指导、最佳实践或检查清单

不适用场景

  • 任务与撤销 Track 无关
  • 需要使用此范围之外的其他领域知识或工具

说明

  • 明确目标、约束和所需输入。
  • 应用相关最佳实践并验证结果。
  • 提供可执行的步骤和验证方法。

执行前检查

  1. 验证 Conductor 已初始化:

    • 检查 conductor/tracks.md 是否存在
    • 如果不存在:显示错误并建议先运行 /conductor:setup
  2. 验证 Git 仓库:

    • 运行 git status,确认当前目录是 Git 仓库

    • 检查是否存在未提交的更改

    • 如果存在未提交的更改:

      WARNING: Uncommitted changes detected
      
      Files with changes:
      {list of files}
      
      Options:
      1. Stash changes and continue
      2. Commit changes first
      3. Cancel revert
      
  3. 验证 Git 状态适合执行撤销:

    • 当前没有正在进行的合并
    • 当前没有正在进行的变基
    • 如果发现问题:停止操作并说明解决步骤

目标选择

如果提供了参数:

解析参数格式:

整个 Track: {trackId}

  • 示例:auth_20250115
  • 撤销整个 Track 的所有提交

特定阶段: {trackId}:phase{N}

  • 示例:auth_20250115:phase2
  • 撤销阶段 N 及所有后续阶段的提交

特定任务: {trackId}:task{X.Y}

  • 示例:auth_20250115:task2.3
  • 仅撤销任务 X.Y 的提交
如果未提供参数:

显示引导式选择菜单:

What would you like to revert?

Currently In Progress:
1. [~] Task 2.3 in dashboard_20250112 (most recent)

Recently Completed:
2. [x] Task 2.2 in dashboard_20250112 (1 hour ago)
3. [x] Phase 1 in dashboard_20250112 (3 hours ago)
4. [x] Full track: auth_20250115 (yesterday)

Options:
5. Enter specific reference (track:phase or track:task)
6. Cancel

Select option:

查找提交

将提交消息匹配结果视为候选项,而非确凿证据。将 Track ID 验证为字面标识符(不得用于路径遍历或 Shell 插值),检查完整提交差异和提交历史,并排除无关或混合提交。合并提交必须明确指定主线;不得猜测 -m 参数。执行前对 SHA 去重,并检测是否已有对应的撤销提交。遵守用户禁止修改计划文件的指示;不得自动暂存、提交或删除无关的工作。

撤销任务
  1. 在 Git 日志中搜索特定任务的提交:

    git log --oneline --grep="{trackId}" --grep="Task {X.Y}" --all-match
    
  2. 同时查找更新 plan.md 的提交:

    git log --oneline --grep="mark task {X.Y} complete" --grep="{trackId}" --all-match
    
  3. 收集所有匹配的提交 SHA

撤销阶段
  1. 阅读 plan.md,确定该阶段的任务范围

  2. 搜索该阶段的所有任务提交:

    git log --oneline --grep="{trackId}" | grep -E "Task {N}\.[0-9]"
    
  3. 查找阶段验证提交(如果存在)

  4. 查找该阶段任务对应的所有 plan.md 更新提交

  5. 按时间顺序收集所有匹配的提交 SHA

撤销整个 Track
  1. 查找所有提及该 Track 的提交:

    git log --oneline --grep="{trackId}"
    
  2. 查找创建该 Track 的提交:

    git log --oneline -- "conductor/tracks/{trackId}/"
    
  3. 按时间顺序收集所有匹配的提交 SHA

显示执行计划

在执行任何撤销操作前,显示完整计划:

================================================================================
                           REVERT EXECUTION PLAN
================================================================================

Target: {description of what's being reverted}

Commits to revert (in reverse chronological order):
  1. abc1234 - feat: add chart rendering (dashboard_20250112)
  2. def5678 - chore: mark task 2.3 complete (dashboard_20250112)
  3. ghi9012 - feat: add data hooks (dashboard_20250112)
  4. jkl3456 - chore: mark task 2.2 complete (dashboard_20250112)

Files that will be affected:
  - src/components/Dashboard.tsx (modified)
  - src/hooks/useData.ts (will be deleted - was created in these commits)
  - conductor/tracks/dashboard_20250112/plan.md (modified)

Plan updates:
  - Task 2.2: [x] -> [ ]
  - Task 2.3: [~] -> [ ]

================================================================================
                              !! WARNING !!
================================================================================

This operation will:
- Create {N} revert commits
- Modify {M} files
- Reset {P} tasks to pending status

This CANNOT be easily undone without manual intervention.

================================================================================

Type 'YES' to proceed, or anything else to cancel:

重要:必须要求用户明确输入 YES 确认。输入 y、yes 或直接按回车均不得继续。

执行撤销

按时间倒序执行撤销(从最新提交开始):

Executing revert plan...

[1/4] Reverting abc1234...
      git revert --no-edit abc1234
      ✓ Success

[2/4] Reverting def5678...
      git revert --no-edit def5678
      ✓ Success

[3/4] Reverting ghi9012...
      git revert --no-edit ghi9012
      ✓ Success

[4/4] Reverting jkl3456...
      git revert --no-edit jkl3456
      ✓ Success
发生合并冲突时

如果任何撤销操作产生合并冲突:

================================================================================
                           MERGE CONFLICT DETECTED
================================================================================

Conflict occurred while reverting: {sha} - {message}

Conflicted files:
  - src/components/Dashboard.tsx

Options:
1. Show conflict details
2. Abort revert sequence (keeps completed reverts)
3. Open manual resolution guide

IMPORTANT: Reverts 1-{N} have been completed. You may need to manually
resolve this conflict before continuing or fully undo the revert sequence.

Select option:

出现任何冲突时,立即停止。不得尝试自动解决。

更新 plan.md

Git 撤销成功后,更新 plan.md:

  1. 读取当前的 plan.md
  2. 对每个已撤销的任务,修改标记:
    • [x] -> [ ]
    • [~] -> [ ]
  3. 写入更新后的 plan.md
  4. 更新 metadata.json:
    • 减少 tasks.completed
    • 根据需要更新 status
    • 更新 updated 时间戳

单独审查任何经授权的元数据协调操作;只有实际提交后,才能报告为已提交。不得盲目递减计数,也不得改写受用户保护的计划。

更新 Track 状态

如果撤销整个 Track:
  • 在 tracks.md 中:将 [x] 或 [~] 改为 [ ]
  • 可考虑询问用户是否要删除整个 Track 目录
如果恢复到未完成状态:
  • 在 tracks.md 中:如果部分完成,确保标记为 [~];如果完全恢复,标记为 [ ]

验证

恢复完成后:

================================================================================
                           REVERT COMPLETE
================================================================================

Summary:
  - Reverted {N} commits
  - Reset {P} tasks to pending
  - {M} files affected

Git log now shows:
  {recent commit history}

Plan.md status:
  - Task 2.2: [ ] Pending
  - Task 2.3: [ ] Pending

================================================================================

Verify the revert was successful:
  1. Run tests: {test command}
  2. Check application: {relevant check}

If issues are found, you may need to:
  - Fix conflicts manually
  - Re-implement the reverted tasks
  - Inspect and revert only the exact recorded revert SHAs to undo this operation

================================================================================

安全规则

  1. 绝不使用 git reset --hard——仅使用 git revert
  2. 绝不使用 git push --force——仅使用安全的推送操作
  3. 绝不自动解决冲突——始终暂停并等待人工干预
  4. 始终展示完整计划——用户必须确切了解将要执行的操作
  5. 必须明确输入“YES”——不能是“y”,也不能只按回车
  6. 出现任何错误都必须暂停——失败后不得尝试继续
  7. 保留历史记录——优先使用恢复提交,而不是改写历史记录

边缘情况

从未提交的 Track
No commits found for track: {trackId}

The track exists but has no associated commits. This may mean:
- Implementation never started
- Commits used different format

Options:
1. Delete track directory only
2. Cancel
已恢复的提交
Some commits appear to already be reverted:
  - abc1234 was reverted by xyz9876

Options:
1. Skip already-reverted commits
2. Cancel and investigate
已推送到远程
WARNING: Some commits have been pushed to remote

Commits on remote:
  - abc1234 (origin/main)
  - def5678 (origin/main)

Reverting will create new revert commits that you'll need to push.
This is the safe approach (no force push required).

Continue with revert? (YES/no):

撤销恢复操作

如果用户需要撤销恢复操作本身:

To undo this revert operation:

  git revert <exact-revert-sha>  # inspect each recorded revert, newest first

This will create new commits that restore the reverted changes.

Do not use reset plus checkout as a shortcut: it can discard unrelated work.

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为环境特定验证、测试或专家审查的替代品。
  • 如果缺少必需的输入、权限、安全边界或成功标准,请停止并请求澄清。

评论

支持 Markdown