[BUG] Custom output styles cannot set `turnReminder`, so they steer weaker than built-ins by construction

Status Open
Reported on v2.1.237
Maintainer reply None cached
Activity 1 comment · opened Aug 20, 2026

What's Wrong?

Built-in output styles carry two payloads: a prompt injected once into the system prompt, and a turnReminder re-injected after every user turn and every tool-result batch. Concise sets turnReminder to "Be concise: lead with the result, skip preamble and narration, keep only what the user needs." Proactive sets its own.

Custom file-based output styles get only the first. The loader builds its object from frontmatter with no turnReminder key:

{name, description, prompt, source, baseDir, keepCodingInstructions}

The built-in registry sets turnReminder alongside prompt; the custom-style path has no way to populate it. A custom style is therefore injected once at session start and never re-fires, while a built-in re-asserts itself on every turn.

Custom styles appear in the /config picker and are documented as a first-class extension point, so the asymmetry is invisible — a user who writes stricter rules than Concise still gets weaker steering, with nothing indicating why.

What Should Happen?

Custom output styles should be able to set a per-turn reminder, via a frontmatter key such as:

---
name: my-style
description: ...
turn-reminder: Lead with the result; no preamble.
---

Absent that, /config should indicate that custom styles do not re-assert per turn, so the weaker steering is at least visible.

Steps to Reproduce

  1. ~/.claude/output-styles/test.md:

``
---
name: test
description: test style
---
Never begin a response with "Let me" or "I'll".
``

  1. Set "outputStyle": "test" in ~/.claude/settings.json, restart.
  2. Confirm loaded — the system prompt contains # Output Style: test and the rule.
  3. Observe: no reminder text follows user turns or tool results.
  4. Switch to "outputStyle": "Concise", restart. Observe "Be concise: lead with the result, skip preamble and narration, keep only what the user needs." after every user turn and every tool-result batch.

The difference in injection frequency is directly observable in both cases.

Is this a regression?

No, this never worked.

Claude Code Version

2.1.237

Additional Information

Related, same theme of custom styles being second-class relative to built-ins:

  • #86490 — a loaded custom style drifts over a session; no mechanism identified
  • #85246, #86599 — custom styles missing from the /config picker

Environment

  • Claude Code version: 2.1.237
  • Platform: Anthropic API
  • OS: macOS
  • Terminal: Terminal.app
  • Model: Opus
  • Regression: No, this never worked

View original on GitHub ↗

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