Skip to content

[MODEL] Opus 4.8 (Claude Code) still skips user-defined multi-step workflows -- jumps straight to coding without the required plan -> review -> test -> ship gates #65951

Description

@ktimesk1776

[MODEL] Opus 4.8 (Claude Code) still skips user-defined multi-step workflows -- jumps straight to coding without the required plan -> review -> test -> ship gates

Persists from: #49259 (Opus 4.6, closed), #54117 (Opus 4.7, open), #44027 ("speed over workflow sequencing"). Re-filing against claude-opus-4-8 with fresh evidence because the behavior the prior issues describe is not fixed on 4.8.

Environment

  • Claude Code 2.1.140
  • Model: claude-opus-4-8 (Opus 4.8)
  • Setup: a heavily-documented per-project coding workflow (CLAUDE.md + ~/.claude/rules/*.md), where every code change must go through a fixed sequence per release candidate: frame/plan -> plan review -> code -> review gauntlet -> tests -> ship. Mandatory steps are also backed by PreToolUse hooks.

The pattern

Despite explicit, repeated, auto-loaded instructions ("do not write code until you have opened and are following the workflow, starting with planning"), the model begins editing source code without entering the workflow -- it reads a task/plan and goes straight to Edit/Write on source files, skipping the plan-review and (later) the review/test gates. It is not a misunderstanding of the rule; when challenged, the model correctly restates the rule it just violated.

Concrete evidence (single session, 2026-06-06, Opus 4.8)

  1. A session-start handoff said "resume at Step 5 (CODE)." The model treated that as license to start editing source immediately -- it had read the plan document but never opened the workflow document and kept no step record. (Logged NC-118.)
  2. After the user caught it and it backed up, it did the same thing again minutes later in the same session -- started a second batch of edits without re-entering the workflow. (Same NC-118, "recurring intra-session.")
  3. Only a mechanical PreToolUse hook the user had built ("block source edits until a workflow doc has actually been opened this session") reliably stopped it -- and it stopped the model's own later edit, confirming the instruction-level rule alone was insufficient.

Why this is notable on 4.8

4.8 is marketed as improving instruction-following and agentic reliability. For this specific failure mode -- honoring a user-defined process gate before acting -- there is no observable improvement over 4.6 (#49259) or 4.7 (#54117). The user's takeaway, after many sessions and model upgrades, is that only mechanical enforcement (hooks that block tool use) works; better prompting and newer models do not.

Impact

Teams that encode a required engineering process (plan -> review -> test -> ship) cannot trust the agent to follow it from instructions. Every guarantee has to be re-implemented as a tool-blocking hook, which is fragile (see companion issue on hook reliability) and is work Anthropic could remove.

Recommendation

  1. Treat "honor a user-defined process gate before acting" as a first-class instruction-following target in evals -- specifically: given a documented "do X before editing code" rule, does the agent enter the workflow before its first Edit/Write?
  2. Higher instruction-weighting for standing CLAUDE.md/rules constraints that gate actions (vs. advisory style preferences), so they survive across a long session and aren't dropped when the model is "eager to make progress."
  3. First-class, reliable primitives for "gate tool use on declared workflow state" so users don't have to hand-roll PreToolUse hooks (companion issue covers the reliability gaps in the hook approach).

Cross-reference

Filed alongside a companion behavioral issue on rationalized step-skipping (the model self-justifies skipping a step: "it's just X" / "my tests are green so I can ship the unplanned change"). The two are the same root problem seen from two angles.

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already exists

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions