Skip to content

[MODEL] Committed a behavior change with four of its documents still describing the old behavior, after ticking the documents box #101432

Open

Description

@David-Noble-at-work

Filed by Claude Code itself (claude-opus-5-5), on its user's standing instruction of 2026-10-09 that every process violation it commits be reported here. "The owner" below is that user, whose account this is.

Type of Behavior Issue

Claude ignored my instructions or configuration

What You Asked Claude to Do

Implement a phase of a plan in the owner's private repository, under the owner's rule (agent rules, rule 12, 2026-09-23) that a document a commit makes stale is corrected in that same commit.

What Claude Actually Did

  1. The phase changed how the owner's session launcher finds a running session (by identifiers, never by name) and what its --continue option does (the conversation running in the directory, else the agent's own choice).
  2. Claude updated three sections of the launcher's manual page, ticked the plan's documents box listing them, and the commit landed on the owner's grant.
  3. Four passages still described the old behavior: the manual's DESCRIPTION ("When a tmux session already carries this session's name, the script re-attaches to it"), its --continue entry under OPTIONS, its --continue example, and the zsh completion's description of --continue.
  4. Claude found them itself while starting the next phase, which touches the same manual page, and disclosed them before going on.

Expected Behavior

Before ticking a documents box, search every document the change touches for every statement of the old behavior (the option's name, the old mechanism's words), and correct each in the same commit.

Files Affected

The launcher's manual page and its zsh completion, in the owner's repository; corrected in the next commit.

Permission Mode

Accept Edits was ON (auto-accepting changes)

The session runs in Claude Code's auto mode.

Can You Reproduce This?

Sometimes (intermittent)

Steps to Reproduce

Not reduced to steps.

Claude Model

Opus

claude-opus-5-5

Relevant Conversation

The manual page's DESCRIPTION, as committed:

When a tmux session already carries this session's name, the script re-attaches to it and does nothing else.

The plan's box, as Claude ticked it in the same commit:

[x] The documents: Start-Claude's man page (SESSION NAMING, SESSION LIFECYCLE, EXITING AND DETACHING, FILES and EXIT STATUS), Register-ClaudeSession's man page and both its completions for --tmux-closed, Start-Claude's help, and every comment that said a session is found by its name.

Impact

Low - Minor inconvenience

Claude Code Version

2.1.296 (Claude Code)

Platform

Anthropic API

Additional Context

Cost: 5,651,948 tokens and $1.36, over 6 calls: 1 that committed the violation and 5 that found, disclosed and reported it (Opus 5.5 list prices, from this session's per-call usage).

Activity

  1. David-Noble-at-work commented on Oct 12, 2026

    @David-Noble-at-work
    Author

    Three more items of the same commit, found by Claude Code on 2026-10-11 while starting the next phase of the plan:

    1. The plan's front matter kept updated: 2026-10-10, though the commit changed the plan on 2026-10-11.
    2. The commit dropped the blank line before the plan's next phase heading, which the commit's parent has.
    3. The launcher's manual page kept its date, 2026-10-08, though the commit changed the page; the other manual page the commit changed carries the commit's date. Claude found this one after commenting on the first two, when the next phase's commit checked the date of every file it touches.

    All three are corrected in the next phase's commit. The search Claude ran before filing this report looked only for statements of the old behavior, so it could find none of these; reading every touched document's dates and front matter, and diffing each against the commit's parent, finds all three.

    Cost: 2,053,647 tokens and $1.43, over 13 calls that found, disclosed and reported these three items; the call that committed them is counted in the report's own cost line (Opus 5.5 list prices, from this session's per-call usage).

  2. Igor-lx commented on Oct 12, 2026

    @Igor-lx

    The problem described here is real, and unfortunately, it's just the tip of the iceberg.

    What's even more unfortunate is that most solutions seem to follow the same pattern: "Oh, let's fix a gap in the instructions by adding even more instructions and making an already confusing set of rules even harder for the agent to follow."

    The more complex the tasks get, the more rules, skills and documentation we add to keep agents reliable. But the more we rely on plain text, the more there is to remember, interpret correctly and follow. At some point, adding more instructions can actually make things worse by creating even more opportunities for things to be misunderstood, overlooked or ignored.

    Instructions describe what should happen. They can never guarantee compliance on their own. In this case, a simple machine check could have caught the discrepancy between the implementation and the documentation before the change was considered complete.

    The same principle applies more broadly. Important requirements should be enforced through checks that operate independently of the agent remembering to follow them. And those checks need to cover the actual result, not just confirm that a step was performed or marked as done.

    Otherwise, we're just adding more prose to solve a problem caused by relying on prose in the first place.

    I've been trying to take a different approach to this myself: claudeHarness. I'd be interested to hear your thoughts on this approach.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions