No hook implements ../README.md's requirements for Codex yet. Tracked at
issue #781.
Keep Codex's own sandbox and execution policies enabled. The host-wide rules reach Codex through
${CODEX_HOME:-~/.codex}/AGENTS.md, which ../global_rules.py writes from the same
blocks the Claude kit renders. A Codex AGENTS.override.md that is not blank takes precedence over
that file, so the rules do not reach Codex while one exists. The status then reports them as
SHADOWED and not current. The carried repository rules and those host-wide rules remain the
fleet's only behavioral layer in a fleet checkout until a hook exists. They include GOVERNANCE.md
"Repository Boundaries and Write Safety" and the rest of the fleet's prose. Where an override shadows
the host-wide rules, the override is Codex's instruction layer in their place. There is no mechanical
backstop for Codex today. That means a mistake that the Claude Code hook would deny goes through
unblocked in a Codex session.
../README.md states each requirement as an agent-agnostic decision rule, not tied to any
one hook API. ../claude/gh-write-guard.py is a worked reference implementation of
requirements 1 to 7 against Claude Code's PreToolUse hook. That implementation includes its
tokenizer, its self-test matrix (--selftest), and its documented fail-open/fail-closed choices per
requirement. It is useful as a model for argv parsing and edge cases, not as something to port line
for line. That is because Codex's own approval/sandbox extension points differ from Claude Code's
hook shape. Whatever mechanism Codex offers for intercepting or gating a command before it runs is
the place to implement requirements 1 to 7. Requirement 8 is not one of them. It reports the
processes a session leaves behind, so it belongs wherever Codex signals that a session has ended.
../claude/stray-process-sweep.py is the worked reference for that one. Requirement
9 wraps every command rather than judging one, so it belongs wherever Codex lets a command be run
through a wrapper. ../claude/tool-containment.py is its reference. If Codex
offers none of these extension points, that finding belongs on issue #781, not silently
worked around.
Once a Codex-side implementation exists, audit it the way ../README.md "Auditing an
Implementation Against This Spec" describes. Run its own self-test and check every case against the
requirements, not against gh-write-guard.py's source.