| name | baseline-restorer |
| user-invocable | false |
| description | Use when multiple fix attempts fail and you need to systematically restore to a working baseline and reimplement instead of fixing broken code. |
| allowed-tools | ["Read","Bash","Grep","Glob","Edit"] |
Baseline Restorer
Enforces methodical problem-solving by reverting to last known working state and
reimplementing step-by-step instead of trying to fix accumulated broken changes.
Core Philosophy
Reimplement, don't fix the mess
When something breaks after multiple failed fix attempts:
- Stop trying to fix forward
- Revert to last known working state
- Understand what worked and why
- Reimplement the needed change ONE step at a time
- Verify each step before proceeding
When to Use This Skill
Trigger conditions
- 2+ failed fix attempts for the same issue
- "This should work but doesn't" situations
- Pipeline failures persisting across multiple commits
- User says "the old version worked fine"
- Complex accumulated changes with unclear impact
Red flags requiring this skill
- Making assumptions about root cause without verification
- Blaming "pre-existing issues"
- Adding more changes to fix previous changes
- Not testing locally before committing
Systematic Process
Phase 1: Identify Working Baseline
git log --oneline -20
git show origin/beta:path/to/file.sh
git diff origin/beta -- path/to/file.sh
git stash
git checkout origin/beta -- path/to/file.sh
Questions to answer
- What was the last commit where this worked?
- What branch has a working version? (beta, main, prod)
- What specific files/scripts were working?
Phase 2: Compare Current vs Baseline
git diff baseline..current -- path/to/file.sh
Document findings
- List every change made
- Note which changes were necessary
- Note which changes broke things
- Identify assumptions that were wrong
Phase 3: Revert to Baseline
git checkout origin/beta -- path/to/file.sh
git add path/to/file.sh
git commit -m "Revert to working baseline from beta"
./test-locally.sh
Critical: Don't proceed until baseline is verified working.
Phase 4: Reimplement ONE Change at a Time
For each needed change
-
Make ONE small change
-
Test locally immediately
./run-generation-script.sh
terraform validate
-
Commit if working
git add changed-file.sh
git commit -m "Replace sed with awk in function X"
-
If it breaks, revert immediately
git reset --hard HEAD~1
-
Repeat for next change
Phase 5: Verify Complete Solution
make test
terraform validate
git push
Verification Checklist
Before committing ANY change:
Anti-Patterns to Avoid
DON'T
- ❌ "Let me try one more fix" (revert instead)
- ❌ "This is probably a pre-existing issue" (verify with baseline)
- ❌ "The logic should work" (test it, don't assume)
- ❌ Change 5 things and hope one fixes it
- ❌ Commit without local verification
- ❌ Blame the user's code/environment
DO
- ✅ "Let me check what worked in beta"
- ✅ "Reverting to baseline first"
- ✅ "Testing this one change locally"
- ✅ Make ONE change, verify, commit
- ✅ Test before every commit
- ✅ Take responsibility for breakage
Examples
Example 1: Terraform Generation Scripts
Broken approach (Example 1)
Baseline approach (Example 1)
git show origin/beta:terraform/build-module.sh > /tmp/beta-version.sh
bash /tmp/beta-version.sh
git checkout origin/beta -- terraform/build-module.sh
Example 2: Pipeline Failures
Broken approach (Example 2)
Baseline approach (Example 2)
git log --oneline | head -20
git diff <last-passing-commit>
Commands
git log --oneline --all | grep "known working feature"
git show origin/beta:path/to/file
git diff origin/beta -- path/to/file
git diff <working-commit> -- path/to/file
git checkout origin/beta -- path/to/file
git checkout <working-commit> -- path/to/file
terraform validate
mix test
yarn test
git diff
Remember
- Reimplement, don't fix - Start from working state
- One change at a time - Test each change immediately
- Local verification first - Never commit untested changes
- Baseline is truth - If baseline works, your changes broke it
- Stop digging - After 2 failed fixes, revert and rethink
- Question assumptions - Verify, don't assume
- Take responsibility - Your changes, your bugs