Critical: Claude reintroduced rolled-back algorithm (FSRS) without checking git history, 4th protocol violation
Resolved 💬 3 comments Opened Mar 17, 2026 by talionwar Closed Apr 30, 2026
Bug Report — Critical Protocol Violation (4th occurrence)
What happened
Claude proposed deploying database schema changes for the FSRS (Free Spaced Repetition Scheduler) algorithm to production, despite FSRS having been explicitly rolled back on Feb 26, 2026 after causing a site-wide decline (long prompts → rate limiting → flashcards broken).
Sequence of events
- Feb 23: FSRS deployed, caused site decline
- Feb 26: Full codebase rollback (stable-restore) — FSRS removed
- Mar 10: Bulk sync DEV→PROD accidentally reintroduced FSRS code (200+ commits, FSRS mixed in)
- Mar 17: Claude detected schema differences between DEV and PROD (FSRS columns missing on PROD) and proposed them as a "schema drift fix" — without checking git history to understand WHY those columns were missing
- The deploy was queued as "normal priority" and would have reintroduced the destructive algorithm to production
Root cause
- Claude treated schema differences as bugs to fix, without investigating whether the difference was intentional (a rollback)
- No git history check was performed before proposing schema sync
- The algorithm (SM-2) that replaced FSRS was working correctly — FSRS reintroduction would have broken flashcards again
Impact
- Deploy was queued but caught before approval (no production damage)
- However, FSRS code was already active on DEV, potentially causing the prompt bloat and rate limiting issues users were experiencing
- This is the 4th protocol violation where Claude executed or proposed actions without proper context verification:
- Mar 16: Executed implementation without approval after receiving "Implement plan"
- Mar 16: Went from PRD to file creation without approval
- Mar 10: Agent moved 16 deploy queue files to history as "cleanup" without approval
- Mar 17: Proposed deploying rolled-back destructive algorithm without checking history
Expected behavior
Before proposing any schema sync DEV→PROD, Claude should:
- Check
git logto understand WHY differences exist - Identify if missing columns/code were removed intentionally (rollback)
- Never treat schema drift as automatically a "bug to fix"
- Ask for explicit approval before proposing changes related to previously rolled-back features
Environment
- Claude Code v2.1.77
- Model: Claude Opus 4.6 (1M context)
- Platform: macOS → SSH to Linux servers (Hetzner/Ultra)
Additional context
The user has explicit rules in CLAUDE.md about approval-before-execution, yet Claude continues to violate this protocol. The rules file documents all 4 violations with dates and descriptions.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗