Skip to content

Look into a persistent output-style mechanism for Codex, the way Claude Code has output-styles #144

Description

@BaseInfinity

What we did upstream

claude-sdlc-harness now ships a communication-style file at ~/.claude/output-styles/operator.md, activated by a single settings key ("outputStyle": "Operator"). It targets a senior engineer reader: conclusion in the first sentence, one idea per sentence under ~20 words, active voice with the actor named, no preamble or closing offers, one word for one meaning, and "state what you verified and how" instead of "everything looks good."

The idea came from a widely-shared suggestion to put ASD-STE-100 (Simplified Technical English, the aerospace controlled-language standard) into CLAUDE.md. Worth reading the community thread's own caveat before copying it: STE is a controlled vocabulary with an approved word list. Telling a model "use ASD-STE-100" without that list gets you the register, not the standard, and several people reported it decaying after ~100k tokens. So we lifted the transferable rules and skipped the label.

The file, verbatim, is on the upstream branch fix/617-shape-and-target-required at ~/.claude/output-styles/operator.md — it is user-level config, so it is not in the repo tree. Copy the rules from this issue rather than hunting for the path.

The question for this repo

Does Codex CLI have an equivalent, and if so, is it worth wiring the same way? Genuinely unknown here — nobody has checked. Concretely:

  • Does codex support a persistent user-level style/persona file, the way Claude Code supports ~/.claude/output-styles/*.md plus an outputStyle settings key?
  • If not, what is the nearest mechanism — AGENTS.md, a config key in ~/.codex/config.toml, a -c override, a system-prompt append?
  • Does it survive long sessions, or decay the way the community reports the CLAUDE.md approach does?

Do not port this on faith. The rule that applies is the same one upstream keeps relearning: an instruction you have not run is not a claim you may ship. If the mechanism does not exist, the honest outcome of this issue is "Codex has no equivalent; here is what it has instead," written down — not a file added because the sibling repo has one.

Why it might matter beyond ergonomics

This is not only about tone. In this ecosystem Codex is the adversarial cross-model reviewer, and its output is read under time pressure while a merge is blocked. A reviewer that leads with its verdict and separates observed from inferred is materially cheaper to act on than one that narrates its way to a conclusion.

There is a live example upstream. A review leg returned CONFIDENCE: 93 with zero findings and never said what the missing 7% was. The merge gate refused it — correctly — and the recovery cost a full extra round to ask "what is the 7%", get the answer (an identity binding it had not checked and a redundancy claim it had asserted rather than measured), and have it re-post at 97. A style that requires naming the residual alongside the number would have collapsed that round into the first message.

Suggested rules, if a mechanism exists

  • Conclusion, verdict, or failure in the first sentence. Evidence after.
  • One idea per sentence. Active voice. Name the actor.
  • No preamble, no restating the question, no closing offer of further help.
  • One word for one meaning — no synonym variety in technical writing.
  • Separate what was observed from what is inferred; say "I have not verified X" rather than implying you did.
  • Report failures immediately and plainly; never bury a failure under what succeeded.
  • Corrections in one sentence, then move on.
  • Length is a cost. Spend it when it buys the reader something, never to appear thorough.

Acceptance

  • Answer whether Codex CLI has a persistent style mechanism, with the doc or --help output that proves it
  • If yes: wire it, then use it once and observe the difference before closing — an edited config file is not evidence
  • If no: record what the nearest mechanism is and whether it holds across a long session
  • Either way, say whether it changed review-leg output quality, or say that it was not measured

Filed from claude-sdlc-harness as a cross-repo share. No urgency and no dependency — upstream is mid-flight on #617 and this is not a blocker for it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions