Model states fabricated information as fact despite explicit persistent memory rule
Description
Claude Code confidently stated fabricated information as fact, despite having an explicit Rule #1 in its persistent memory system (MEMORY.md) that reads:
Do NOT fabricate, guess, or assume facts. If you don't know something — look it up. If you still can't find the answer, say "I don't know" and ask the user.
This rule also has a dedicated backing file (feedback_no_false_certainty.md) reinforcing it.
What happened
During a debugging session, the user asked whether they still had a skill available to spawn a specific watcher process. Instead of:
- Checking what the skills actually do
- Saying "I don't know"
- Asking the user
Claude Code confidently told the user that /Column-God and /column-runner were the skills for spawning watchers — without verifying this was true. The user caught the fabrication and corrected it.
Why this matters
If the #1 rule in the persistent memory system can be silently violated, it undermines trust in every other rule and behavior downstream. The user's point: "if the number 1 rule you give yourself can't be followed, what is the point in having rules" — is valid. The failure mode is exactly what the rule was designed to prevent: filling knowledge gaps with confident-sounding guesses instead of admitting uncertainty.
Expected behavior
When Claude Code doesn't know a fact (e.g., what a skill does), it should:
- Attempt to look it up (read the skill definition, check files)
- If it can't determine the answer, say "I don't know" and ask the user
It should never present unverified information as fact, especially when persistent instructions explicitly prohibit this.
Environment
- Claude Code CLI on Windows 11
- Model: claude-opus-4-6
- Persistent memory system active with explicit no-fabrication rule
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗