| name | revert |
| description | Git-aware logical undo at track, phase, or task level with confirmation gates |
| version | 1.0.0 |
| tags | conductor, revert, undo, git, rollback |
| keywords | revert, undo, rollback, git, track, phase, task |
**Before starting**, create todo list with these 5 phases:
1. Scope Selection - Identify what to revert (track/phase/task)
2. Impact Analysis - Find commits, files, status changes
3. User Confirmation - Present impact and get approval
4. Execution - Create revert commits and update files
5. Validation - Verify consistency and report results
**Update continuously**:
- Mark "in_progress" when starting each phase
- Mark "completed" immediately after finishing
- Keep only ONE phase "in_progress" at a time
</todowrite_requirement>
<confirmation_required>
ALWAYS require explicit user confirmation before:
- Reverting any commits
- Modifying plan.md status
- Deleting track files
Show exactly what will be changed BEFORE doing it.
</confirmation_required>
<non_destructive_default>
Default to creating revert commits, not force-pushing.
Preserve git history unless user explicitly requests otherwise.
</non_destructive_default>
<state_validation>
After any revert:
1. Verify plan.md matches git state
2. Verify metadata.json is consistent
3. Run project quality checks
4. Report any inconsistencies
</state_validation>
<principle name="Preview Before Action" priority="critical">
Show user exactly what will be reverted before doing it.
List commits, files, status changes.
</principle>
<principle name="Graceful Degradation" priority="high">
If full revert fails, offer partial revert options.
Never leave project in inconsistent state.
</principle>
<phase number="2" name="Impact Analysis">
<step>Read metadata.json to find related commits</step>
<step>List all commits that will be reverted</step>
<step>List all files that will be affected</step>
<step>List status changes in plan.md</step>
</phase>
<phase number="3" name="User Confirmation">
<step>Present impact analysis to user</step>
<step>Ask for explicit confirmation</step>
<step>If declined, abort with no changes</step>
</phase>
<phase number="4" name="Execution">
<step>Create revert commits for each original commit</step>
<step>Update plan.md statuses back to [ ]</step>
<step>Update metadata.json to reflect revert</step>
<step>Remove completed tasks from history</step>
</phase>
<phase number="5" name="Validation">
<step>Verify git state matches plan.md</step>
<step>Run project quality checks</step>
<step>Report final state to user</step>
</phase>
**Phase Level:**
- Reverts all tasks in phase
- Updates all task statuses to [ ]
- Preserves other phases
**Track Level:**
- Reverts entire track
- Optionally deletes track files
- Updates tracks.md index
**Hard Reset (Requires explicit request):**
- Reset branch to before commits
- Loses history (unless pushed)
- Cannot be easily undone
Scope: {Task/Phase/Track} {identifier}
Commits to Revert: {N} {#each commit}
- {short_sha}: {message} {/each}
Files Affected: {N} {#each file}
- {filepath} {/each}
Status Changes in plan.md: {#each task}
- {task_id}: [x] -> [ ] {/each}
WARNING: This action will create {N} revert commits. Git history will be preserved.
Proceed with revert? [Yes/No]
Reverted: {scope} {identifier} Commits Created: {N} revert commits Tasks Reset: {N} tasks now pending
Validation:
- Plan.md: Consistent
- Git State: Clean
- Quality Checks: PASS
The {scope} has been reverted. You can re-implement or abandon this work.