Visitar URL original
ProjectTemplate/host-setup/agent-safety/codex/README.md at develop · ptr727/ProjectTemplate · GitHub
Skip to content

Latest commit

 

History

History
48 lines (40 loc) · 2.88 KB

README.md

File metadata and controls

48 lines (40 loc) · 2.88 KB

Codex Host-Safety Gap

No hook implements ../README.md's requirements for Codex yet. Tracked at issue #781.

What To Keep Enabled Meanwhile

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.

Implementing Against the Spec

../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.

Auditing

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.