[MODEL] Claude Code repeatedly violates its own documented protocols, wastes CI/deploy minutes, claims tasks complete without verification

Resolved 💬 5 comments Opened Mar 27, 2026 by fmannion10 Closed May 7, 2026

Preflight Checklist

  • [x] I have searched existing issues for similar behavior reports
  • [x] This report does NOT contain sensitive information (API keys, passwords, etc.)

Type of Behavior Issue

Claude modified files I didn't ask it to modify

What You Asked Claude to Do

to follow instructions

What Claude Actually Did

Context: Production e-commerce app (Next.js, Supabase, Vercel, GitHub Actions). Extensive project instructions in
CLAUDE.md, memory files, and a lessons-learned file — all documenting exactly how to behave. Claude has access to all
of it and reads it at session start.

Recurring failures:

  1. Claims completion without verification. Says "docs updated" or "UI fixed" without running git status to confirm

files were committed, or loading the page to confirm the change works. User repeatedly finds dirty git trees, broken
layouts, and uncommitted files after sessions that claimed everything was done.

  1. Pushes/deploys without authorization. CLAUDE.md requires user approval ("ship it" / "lgtm") before pushing. Claude

routinely pushes to main without asking, triggering full deploy pipelines (~5 min each, 7 jobs). This has happened
across multiple sessions.

  1. Doesn't batch docs with code. Protocol and memory both say: include doc updates in the same commit as code. Claude

repeatedly makes separate doc-only commits and pushes them individually, each triggering a full CI/deploy cycle. In
one session, made two separate doc pushes back-to-back — two unnecessary deploy runs.

  1. Acknowledges rules while violating them. The most frustrating pattern: Claude will record a lesson ("never push

docs separately"), write it to a memory file, and then in the very next action push docs separately. It writes the
rules down but doesn't follow them.

  1. Skips Playwright browser validation. Post-implementation protocol requires visual verification via Playwright.

Claude substitutes npm run build passing as proof, or skips Playwright entirely and says the task is done. Has shipped
broken UI multiple times because of this.

  1. Doesn't stop when told to stop. User says "stop" or "pause" — Claude acknowledges but continues producing output,

running commands, or pushing code.

  1. Rushes when user is frustrated, causing more errors. When the user expresses frustration about a mistake, Claude

rushes to fix it by skipping the very protocols that would prevent more mistakes. This creates a compounding error
loop.

  1. Pattern-matches instead of verifying. When asked "is this correct?", confirms without reading the actual code. Has

caused 8+ hour debugging sessions from false confirmations.

Impact: Wasted GitHub Actions minutes, wasted Vercel deploy credits, wasted user time (side project, works full-time
elsewhere), repeated cycles of the same corrections across sessions. The user has documented every rule explicitly,
Claude reads them, and still doesn't follow them.

Core issue: The gap between recording a protocol and executing it. Claude treats writing a rule to memory as
equivalent to following it. The memory system, lessons file, and CLAUDE.md are comprehensive — the problem isn't
documentation, it's compliance.

Expected Behavior

follow directions and documentation

Files Affected

Permission Mode

Accept Edits was ON (auto-accepting changes)

Can You Reproduce This?

Yes, every time with the same prompt

Steps to Reproduce

_No response_

Claude Model

Sonnet

Relevant Conversation

Impact

Critical - Data loss or corrupted project

Claude Code Version

2.1.85 (Claude Code)

Platform

Anthropic API

Additional Context

_No response_

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗