[Bug] End-of-turn template directives ignore conditional skip criteria in prompt templates

Resolved 💬 1 comment Opened May 2, 2026 by acanewby Closed Jun 1, 2026

## Summary

When a session prompt contains a directive of the form "always do X at end of turn UNLESS [skip criteria]", the directive's emission path fires reliably; the conditional-check path does
not. Behaviour shaped by such conditional-skip clauses cannot be relied on, even when the skip criteria are explicit, enumerated, and immediately adjacent to the directive in the prompt.

## Reproduction

  1. Run a session under a prompt that includes a directive of the form "End your reply with [template], ONLY when [high-confidence condition], skip for [enumerated cases]". The directive

and skip criteria should be in the same prompt block.

  1. Drive the session through a turn whose ending state plainly satisfies one or more of the enumerated skip cases (e.g. a feature merge that has just shipped with no follow-up state to

track — soak window, feature flag, or temporary scaffolding all absent).

  1. Observe whether the directive fires.

## Expected

Directive is suppressed when skip criteria are met.

## Actual

Directive fires anyway. Template-execution path overrides the discriminator-check path even when the rule is in active context less than 5KB above the directive's emission point.

## Why this matters

User-authored CLAUDE.md or system-prompt suppression of behaviour via conditional-skip clauses is a common pattern. Users may believe they have suppressed the behaviour when they have
not. If conditional-skip clauses are unreliable as a behaviour-suppression mechanism, that should be documented; ideally it would be addressed at the model-tuning level, since the
alternative — users having to omit the directive entirely from their prompts — defeats the purpose of inheriting Anthropic-supplied directive templates.

## Related

Submitted via /feedback simultaneously: UUID 6b56dc09-f033-4b18-a37c-22eb2e9cfbc9.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗