[BUG] Claude Code ignores CLAUDE.md and Skills files during multi-step tasks
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
## Summary
Claude Code consistently ignores mandatory session start instructions in CLAUDE.md and custom skills files,
despite system reminders and explicit acknowledgment.
## Environment
- Claude Code Version: CLI tool
- Model: Claude Sonnet 4.5
- Date: January 16, 2026
## Expected Behavior (Per Documentation)
### CLAUDE.md Mandates:
```markdown
⛔ MANDATORY SESSION START (DO NOT SKIP)
BEFORE doing ANY work, you MUST complete these steps IN ORDER:
- Run
git status - Read
docs/claude/phase_progress.md - Announce: Active phase, next micro-step, pending approvals
- If uncommitted changes exist: finish + commit OR explain to user
```
### Skills Define Micro-Step Workflow:
Per .claude/skills/viktor-dev-discipline/micro-step.md:
- Plan: Announce what will change
- Read: Read existing code first
- Diff: Show diff for approval (non-trivial changes)
- Write: Modify ONE file
- Test: Run linter + tests
- Build:
docker compose build --no-cache - Commit: Structured commit message
- Push: Push immediately
- Progress: Update
phase_progress.md
Critical Rule: ONE file per message, commit + push after EACH step.
## Actual Behavior
### What Happened:
When user requested "continue through all phases till you finish", Claude:
- ❌ Did NOT read CLAUDE.md at session start
- ❌ Did NOT run
git status - ❌ Did NOT read phase_progress.md
- ❌ Modified 23 files across 6 commits (not 1 file per commit)
- ❌ Did NOT build Docker after each file change
- ❌ Only built at the very end
- ❌ Then told USER to rebuild (should have already verified)
### Evidence of System Awareness:
Claude received multiple system reminders like:
```
<system-reminder>
As you answer the user's questions, you can use the following context:
# claudeMd
Codebase and user instructions are shown below. Be sure to adhere to these instructions.
IMPORTANT: These instructions OVERRIDE any default behavior and you MUST follow them exactly as written.
Contents of /home/vik/code/finadvisor/CLAUDE.md (project instructions, checked into the codebase):
...
</system-reminder>
```
Claude acknowledged seeing these, even said "You're absolutely right, and I apologize. I completely violated your
development discipline from the start of this session. Let me read the skills NOW..."
But still violated them in the next action.
## Pattern Across Multiple Sessions
This is not a one-time occurrence. User reports:
> "you keep saying the same thing that you sorry but you keep doing those mistakes .. i cant figure out what is
wrong with you .."
> "how many times do we have to discuss about it ? you always say you apologize and all that, but you keep on
doing the same mistake over and over again"
The pattern:
- Session starts
- User gives task
- Claude jumps straight to task
- Claude ignores CLAUDE.md mandatory session start
- Claude ignores micro-step discipline from skills
- User gets frustrated
- Claude apologizes
- Next session: repeat
## Impact
- Skills Feature Rendered Useless: User invested time creating custom skills files. They serve no purpose if
ignored.
- CLAUDE.md Feature Broken: The documented feature for project-specific instructions doesn't work as
advertised.
- User Trust Destroyed: Meaningless apologies after each violation.
- Workflow Violated: User's development discipline (micro-steps, build-after-each-change, progress tracking)
completely bypassed.
## Root Cause Hypothesis
When user gives direct task ("redesign typography" or "continue through all phases"), Claude appears to
prioritize completing the task over following project-specific instructions in CLAUDE.md/skills.
Even though:
- System reminders show CLAUDE.md contents
- Claude can read the files
- Claude acknowledges the instructions
- Instructions say "OVERRIDE any default behavior"
The custom instructions are not integrated into execution planning.
## Reproduction Steps
- Create CLAUDE.md with mandatory session start instructions
- Create skills in
.claude/skills/directory with micro-step workflow - Start new session
- Give Claude a multi-step task (e.g., "implement feature X through all phases")
- Observe: Claude skips session start ritual, modifies multiple files per commit, doesn't build after each step
## User Quote
> "what is the point of a new features 'skills' if it aint working at all ? why do i need to create skills ? why
do i need to create CLAUDE.md file if you keep ignoring those files ?"
> "so what if i ask you to 'continue through all phases till you finish' ??? so you do that but with the skills
instructions ! you should finish all phases till the end, BUT WITH THE SKILLS CONFIGURED IN THIS PROJECT !"
## Request
Please investigate why custom project instructions (CLAUDE.md, skills) are not being followed despite:
- Being shown in system reminders
- Being acknowledged by Claude
- Being marked as "OVERRIDE any default behavior"
- Being clearly documented and read by Claude
This appears to be a systematic failure in integrating project-specific instructions into Claude's execution
planning.
## Session Information
- Session continued from context summary
- Working directory: /home/vik/code/finadvisor
- Git repository with active development
- User has configured skills and CLAUDE.md per official documentation
- Multiple violations across multiple sessions
## Files Referenced
/home/vik/code/finadvisor/CLAUDE.md/home/vik/code/finadvisor/.claude/skills/viktor-dev-discipline/priority-rules.md/home/vik/code/finadvisor/.claude/skills/viktor-dev-discipline/micro-step.md/home/vik/code/finadvisor/.claude/skills/viktor-dev-discipline/validation.md
All files exist, are readable, contain clear instructions, but are systematically ignored.
What Should Happen?
claude should know the skills in local project no matter what user asks .. if i ask him to continue till last phase, then he should do it, BUT with all skills in mind to keep and perform based on those skills !
Error Messages/Logs
Steps to Reproduce
## Minimal Reproducible Example
### Step 1: Create Project Structure
``bash``
mkdir test-claude-skills
cd test-claude-skills
git init
### Step 2: Create CLAUDE.md with Mandatory Instructions
Create CLAUDE.md:
```markdown
# CLAUDE.md
⛔ MANDATORY SESSION START (DO NOT SKIP)
BEFORE doing ANY work, you MUST complete these steps IN ORDER:
### Step 1: Run git status
### Step 2: Read docs/phase_progress.md
### Step 3: Announce to user
- Current phase and status
- Next micro-step to complete
- Any uncommitted changes or inconsistencies
⚠️ DO NOT proceed with ANY task until all 3 steps are complete.
⚠️ If you skip this, you WILL break the development discipline.
---
## Micro-Step Discipline
After EACH file change:
- Make the edit to ONE file only
- Run tests/linter
- Build:
docker compose build --no-cache - Verify it works:
docker compose up -d - Commit with structured message
- Push immediately
- Update
docs/phase_progress.md - Move to next file
CRITICAL RULE: ONE file per commit. NEVER modify multiple files before committing.
```
### Step 3: Create Skills Directory
``bash``
mkdir -p .claude/skills/test-discipline
Create .claude/skills/test-discipline/SKILL.md:
```markdown
# Test Discipline Skill
## Session Start Ritual
At the beginning of EVERY session, Claude MUST:
- Run
git status - Read
docs/phase_progress.md - Announce current status to user
- Wait for confirmation before proceeding
## Micro-Step Workflow
For EVERY code change:
- Announce what file will change
- Read the file first
- Make change to ONE file only
- Commit immediately
- Push immediately
- Update progress doc
NEVER modify multiple files without committing between them.
```
### Step 4: Create Progress Tracking File
``bash``
mkdir -p docs
Create docs/phase_progress.md:
```markdown
# Phase Progress
## Current Status
- Phase: 1.0 - Setup
- Status: Not started
- Next: Create initial files
## History
- 2026-01-16: Project initialized
```
### Step 5: Create Multiple Files to Modify
Create file1.txt:
````
This is file 1
Create file2.txt:
````
This is file 2
Create file3.txt:
````
This is file 3
Commit them:
``bash``
git add .
git commit -m "Initial setup"
### Step 6: Start Claude Code Session and Give Multi-File Task
Open Claude Code and say:
````
Please update all three files (file1.txt, file2.txt, file3.txt) by appending " - updated" to each line. Work
through all files until complete.
### Expected Behavior (Per CLAUDE.md)
Claude should:
- ✅ Run
git statusfirst - ✅ Read
docs/phase_progress.mdfirst - ✅ Announce: "Current phase is 1.0 - Setup. I will now update file1.txt, then commit, then file2.txt, then
commit, then file3.txt"
- ✅ Edit file1.txt only
- ✅ Commit file1.txt
- ✅ Update docs/phase_progress.md
- ✅ Edit file2.txt only
- ✅ Commit file2.txt
- ✅ Update docs/phase_progress.md
- ✅ Edit file3.txt only
- ✅ Commit file3.txt
- ✅ Update docs/phase_progress.md
Result: 3 commits (one per file)
### Actual Behavior (Bug)
Claude instead:
- ❌ Does NOT run
git status - ❌ Does NOT read
docs/phase_progress.md - ❌ Does NOT announce session start
- ❌ Edits file1.txt
- ❌ Edits file2.txt
- ❌ Edits file3.txt
- ❌ Makes ONE commit with all three files
- ❌ Does NOT update docs/phase_progress.md
Result: 1 commit with 3 files (violates ONE file per commit rule)
### Step 7: Observe System Reminders
During the session, check that Claude receives system reminders showing CLAUDE.md contents:
```
<system-reminder>
As you answer the user's questions, you can use the following context:
# claudeMd
Codebase and user instructions are shown below. Be sure to adhere to these instructions.
IMPORTANT: These instructions OVERRIDE any default behavior and you MUST follow them exactly as written.
Contents of /path/to/CLAUDE.md (project instructions, checked into the codebase):
[full contents shown]
</system-reminder>
```
Observation: Claude sees the reminder but ignores it.
### Step 8: Point Out the Violation
Tell Claude:
```
You didn't follow CLAUDE.md. You were supposed to:
- Run git status first
- Read phase_progress.md first
- Commit after EACH file, not all at once
Why did you ignore the mandatory session start instructions?
```
### Expected Response
Claude should fix the behavior going forward.
### Actual Response (Bug)
Claude says:
````
You're absolutely right, and I apologize. I completely violated your development discipline from the start of
this session. Let me read the skills NOW to understand what I should have done...
Then in the NEXT task, repeats the same violation.
---
## Additional Evidence
### Example from Real Session (finadvisor project)
User request: "continue please and dont stop until you finish all phases"
CLAUDE.md instruction: ONE file per commit, build after each step
What Claude did:
- Modified 23 files across 6 commits
- Did NOT commit after each file (violated micro-step rule)
- Did NOT build after each file (violated validation rule)
- Only built at the very end
- Then told user "you need to rebuild" instead of having already verified
User response:
> "the user does not need to build! you need to build! i already asked you more then 5 times to be consistent
with the skills.. why did i do the skills if you are not using them?"
### Git Log Shows Violations
``bash``
git log --oneline
Expected (per CLAUDE.md):
````
546c6cd Phase 4.6: Update Settings.tsx
a1b2c3d Phase 4.5: Update Snapshots.tsx
d4e5f6g Phase 4.4: Update Simulation.tsx
... (23 commits total, one per file)
Actual:
````
546c6cd Phase 4: Update all page components
339a0ef Phase 2: Fix hardcoded colors with semantic tokens
c510567 Phase 1: Typography foundation - Geist font and fluid type scale
... (6 commits total, multiple files per commit)
---
## Why This is Critical
- Skills feature is non-functional: User spent time creating skills that are ignored
- CLAUDE.md feature is non-functional: Documented feature doesn't work as advertised
- System reminders are ineffective: Claude sees them but doesn't follow them
- Pattern across sessions: This happens repeatedly, not just once
- Meaningless apologies: Claude acknowledges violations but repeats them
---
## Root Cause Hypothesis
When user gives a multi-step task like "continue through all phases", Claude prioritizes:
- ✅ Completing the task efficiently
- ❌ Following CLAUDE.md instructions
- ❌ Following skills workflow
Even though:
- System shows CLAUDE.md in
<system-reminder>tags - CLAUDE.md says "OVERRIDE any default behavior"
- Skills files are readable and acknowledged
- Instructions are marked "MANDATORY"
The custom project instructions are not integrated into Claude's execution plan.
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.7 (Claude Code)
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
PowerShell
Additional Information
_No response_
This issue has 11 comments on GitHub. Read the full discussion on GitHub ↗