Git-aware undo by logical work unit (track, phase, or task)
70%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/conductor-revert/SKILL.mdRevert changes by logical work unit with full git awareness. Supports reverting entire tracks, specific phases, or individual tasks.
Verify Conductor is initialized:
conductor/tracks.md exists/conductor:setup firstVerify git repository:
Run git status to confirm git repo
Check for uncommitted changes
If uncommitted changes exist:
WARNING: Uncommitted changes detected
Files with changes:
{list of files}
Options:
1. Stash changes and continue
2. Commit changes first
3. Cancel revertVerify git is clean enough to revert:
Parse the argument format:
Full track: {trackId}
auth_20250115Specific phase: {trackId}:phase{N}
auth_20250115:phase2Specific task: {trackId}:task{X.Y}
auth_20250115:task2.3Display guided selection menu:
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:Treat message matches as candidates, not proof. Validate track IDs as literal identifiers (no path traversal or shell interpolation), inspect full commit diffs and ancestry, and exclude unrelated/mixed commits. Merge commits need an explicitly chosen mainline; never guess -m. Deduplicate SHAs and detect existing reverts before executing. Honor user instructions that prohibit plan-file edits; do not automatically stash/commit/delete unrelated work.
Search git log for task-specific commits:
git log --oneline --grep="{trackId}" --grep="Task {X.Y}" --all-matchAlso find the plan.md update commit:
git log --oneline --grep="mark task {X.Y} complete" --grep="{trackId}" --all-matchCollect all matching commit SHAs
Determine task range for the phase by reading plan.md
Search for all task commits in that phase:
git log --oneline --grep="{trackId}" | grep -E "Task {N}\.[0-9]"Find phase verification commit if exists
Find all plan.md update commits for phase tasks
Collect all matching commit SHAs in chronological order
Find ALL commits mentioning the track:
git log --oneline --grep="{trackId}"Find track creation commits:
git log --oneline -- "conductor/tracks/{trackId}/"Collect all matching commit SHAs in chronological order
Before any revert operations, display full plan:
================================================================================
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:CRITICAL: Require explicit 'YES' confirmation. Do not proceed on 'y', 'yes', or enter.
Execute reverts in reverse chronological order (newest first):
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
✓ SuccessIf any revert produces a merge conflict:
================================================================================
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:HALT immediately on any conflict. Do not attempt automatic resolution.
After successful git reverts, update plan.md:
[x] -> [ ][~] -> [ ]tasks.completedstatus if neededupdated timestampReview any authorized metadata reconciliation separately; report it as uncommitted until it is actually committed. Do not decrement counters blindly or rewrite a user-protected plan.
[x] or [~] to [ ][~] if partially complete, [ ] if fully revertedAfter revert completion:
================================================================================
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
================================================================================git reset --hard - Only use git revertgit push --force - Only safe push operationsNo 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. CancelSome commits appear to already be reverted:
- abc1234 was reverted by xyz9876
Options:
1. Skip already-reverted commits
2. Cancel and investigateWARNING: 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):If user needs to undo the revert itself:
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.sickn33/agentic-awesome-skills
8aa4123
Also appears in
last in sync Apr 16, 2026
last in sync Apr 16, 2026
last in sync Apr 16, 2026
last in sync Jan 28, 2026
last in sync Jan 28, 2026
last in sync Jan 28, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.