Code-crew task-rollback
Reverts the last task's file changes using git. Reads task history for modified files and git reference, shows a preview, requires user confirmation, then reverts and updates the index.
git clone https://github.com/d3x293/code-crew
T=$(mktemp -d) && git clone --depth=1 https://github.com/d3x293/code-crew "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/task-rollback" ~/.claude/skills/d3x293-code-crew-task-rollback && rm -rf "$T"
skills/task-rollback/SKILL.mdTask Rollback - Undo Last Task
Reverts file changes made by the most recent
/crew task execution using git.
When to Activate
- User runs
/crew rollback
Prerequisites
must exist with at least one entry.claude/crew-history.json- Project must be a git repository
- The
field should be present in the last history entry (captured by execution-orchestrator before task execution)gitRefBefore
If history is missing: "No task history found. Nothing to roll back." If not a git repo: "Not a git repository. Rollback requires git."
Rollback Process
Step 1: Read Last Task
Read
.claude/crew-history.json and get the last entry:
- Extract
— the files that were changedfilesModified - Extract
— the git commit hash before the task startedgitRefBefore - Extract
— the original task descriptiontask - Extract
— when the task rantimestamp
Step 2: Show Preview
Display what will be rolled back:
Rollback: "{task}" ({timestamp}) Files: {file1}, {file2}, {file3} Revert to: {gitRefBefore}
Step 3: Ask for Confirmation
This is mandatory — never skip confirmation.
Ask: "Proceed with rollback? (y/n)"
If user says no: "Cancelled."
Step 4: Execute Rollback
Two strategies based on available data:
Strategy A: gitRefBefore is available (preferred)
git checkout {gitRefBefore} -- {file1} {file2} {file3}
This reverts only the specific files to their pre-task state without affecting other changes.
Strategy B: gitRefBefore is not available (fallback)
git diff HEAD -- {file1} {file2} {file3} # Show what will change git checkout HEAD~1 -- {file1} {file2} {file3} # Revert to previous commit
Warning: This is less precise — only works if the task's changes are in the most recent commit.
If files have been modified since the task (additional changes on top):
- Warn the user: "Warning: {file} has been modified since the task. Rolling back will also undo those changes."
- Ask for confirmation again
Step 5: Update Index
After rollback:
- Invoke the
skill for all reverted filesindex-updater - This ensures the index reflects the rolled-back state
Step 6: Update History
Mark the last task entry in history:
{ "...existing fields...", "rolledBack": true, "rolledBackAt": "2026-04-04T13:00:00Z" }
Step 7: Report
Rolled back {count} files. Index updated.
Safety Rules
- Always show preview and ask for confirmation — never auto-rollback
- Only rollback the most recent task by default
- Warn about subsequent modifications to the same files
- If gitRefBefore is missing, warn that the rollback may be imprecise
- Never force-push or reset — only checkout specific files