git clone https://github.com/rootcastleco/rei-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/rootcastleco/rei-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/conductor-revert" ~/.claude/skills/rootcastleco-rei-skills-conductor-revert && rm -rf "$T"
skills/conductor-revert/SKILL.mdRevert Track
Revert changes by logical work unit with full git awareness. Supports reverting entire tracks, specific phases, or individual tasks.
Use this skill when
- Working on revert track tasks or workflows
- Needing guidance, best practices, or checklists for revert track
Do not use this skill when
- The task is unrelated to revert track
- You need a different domain or tool outside this scope
Instructions
- Clarify goals, constraints, and required inputs.
- Apply relevant best practices and validate outcomes.
- Provide actionable steps and verification.
- If detailed examples are required, open
.resources/implementation-playbook.md
Pre-flight Checks
-
Verify Conductor is initialized:
- Check
existsconductor/tracks.md - If missing: Display error and suggest running
first/conductor:setup
- Check
-
Verify git repository:
-
Run
to confirm git repogit status -
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 revert
-
-
Verify git is clean enough to revert:
- No merge in progress
- No rebase in progress
- If issues found: Halt and explain resolution steps
Target Selection
If argument provided:
Parse the argument format:
Full track:
{trackId}
- Example:
auth_20250115 - Reverts all commits for the entire track
Specific phase:
{trackId}:phase{N}
- Example:
auth_20250115:phase2 - Reverts commits for phase N and all subsequent phases
Specific task:
{trackId}:task{X.Y}
- Example:
auth_20250115:task2.3 - Reverts commits for task X.Y only
If no argument:
Display 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:
Commit Discovery
For Task Revert
-
Search git log for task-specific commits:
git log --oneline --grep="{trackId}" --grep="Task {X.Y}" --all-match -
Also find the plan.md update commit:
git log --oneline --grep="mark task {X.Y} complete" --grep="{trackId}" --all-match -
Collect all matching commit SHAs
For Phase Revert
-
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
For Full Track Revert
-
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
Execution Plan Display
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.
Revert Execution
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 ✓ Success
On Merge Conflict
If 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.
Plan.md Updates
After successful git reverts, update plan.md:
- Read current plan.md
- For each reverted task, change marker:
->[x][ ]
->[~][ ]
- Write updated plan.md
- Update metadata.json:
- Decrement
tasks.completed - Update
if neededstatus - Update
timestampupdated
- Decrement
Do NOT commit plan.md changes - they are part of the revert operation
Track Status Updates
If reverting entire track:
- In tracks.md: Change
or[x]
to[~][ ] - Consider offering to delete the track directory entirely
If reverting to incomplete state:
- In tracks.md: Ensure marked as
if partially complete,[~]
if fully reverted[ ]
Verification
After 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 - Use 'git revert HEAD~{N}..HEAD' to undo the reverts ================================================================================
Safety Rules
- NEVER use
- Only usegit reset --hardgit revert - NEVER use
- Only safe push operationsgit push --force - NEVER auto-resolve conflicts - Always halt for human intervention
- ALWAYS show full plan - User must see exactly what will happen
- REQUIRE explicit 'YES' - Not 'y', not enter, only 'YES'
- HALT on ANY error - Do not attempt to continue past failures
- PRESERVE history - Revert commits are preferred over history rewriting
Edge Cases
Track Never Committed
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
Commits Already Reverted
Some commits appear to already be reverted: - abc1234 was reverted by xyz9876 Options: 1. Skip already-reverted commits 2. Cancel and investigate
Remote Already Pushed
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):
Undo the Revert
If user needs to undo the revert itself:
To undo this revert operation: git revert HEAD~{N}..HEAD This will create new commits that restore the reverted changes. Alternatively, if not yet pushed: git reset --soft HEAD~{N} git checkout -- . (Use with caution - this discards the revert commits)
🏰 Rei Skills — Curated by Rootcastle Engineering & Innovation | Batuhan Ayrıbaş
Engineering Beyond Boundaries | admin@rootcastle.com