Hook output schemas allow values later rejected by parser

Open 💬 0 comments Opened Jun 1, 2026 by bar-d

What happened?

The generated hook output schemas appear to allow values that the hook output parser later treats as unsupported.

For example, the PreToolUse output schema allows legacy decision: "approve" and permissionDecision: "ask". It also allows universal fields such as continue: false, stopReason, and suppressOutput.

The parser then rejects some of these values with unsupported-output errors, such as:

  • PreToolUse hook returned unsupported decision:approve
  • PreToolUse hook returned unsupported continue:false
  • PreToolUse hook returned unsupported stopReason
  • PreToolUse hook returned unsupported suppressOutput

This can make the generated schema misleading for hook authors and tooling that validates hook output before passing it to Codex.

Expected behavior

The generated hook output schemas should match the values the parser actually accepts, or the docs/schema should clearly mark fields that are syntactically valid but currently unsupported for each hook event.

Additional context

I searched open issues and PRs for terms including hook output schema, decision approve, permissionDecision ask, and unsupported hook output, and did not find an existing open item that appears to cover this schema/parser mismatch.

View original on GitHub ↗