Filed by the SaaS launch review. Priority P0.22 — severity critical, category security.
Problem
The project added a PreToolUse guard for claude-code precisely because GitHub Issues import (#565) turns externally-authored issue bodies into task prompts. The same prompts are fed unguarded to the other engines: CodexAdapter defaults to approval_policy='auto' with sandbox_mode=None and _handle_approval approves every tool call without inspecting parameters; OpenCode and Kilocode's --auto attach no equivalent guard. The raised floor against injected destructive commands exists for exactly one of four delegated engines. Bringing codex and opencode into launch scope brings their unguarded execution paths into launch scope with them.
Evidence
codeframe/core/adapters/codex.py:348
codeframe/core/adapters/codex.py:52
codeframe/core/adapters/claude_code_guard.py:5
Acceptance criteria
Dependencies
Atomic by construction: one developer, one focused session.
Problem
The project added a PreToolUse guard for claude-code precisely because GitHub Issues import (#565) turns externally-authored issue bodies into task prompts. The same prompts are fed unguarded to the other engines: CodexAdapter defaults to approval_policy='auto' with sandbox_mode=None and _handle_approval approves every tool call without inspecting parameters; OpenCode and Kilocode's --auto attach no equivalent guard. The raised floor against injected destructive commands exists for exactly one of four delegated engines. Bringing codex and opencode into launch scope brings their unguarded execution paths into launch scope with them.
Evidence
codeframe/core/adapters/codex.py:348codeframe/core/adapters/codex.py:52codeframe/core/adapters/claude_code_guard.py:5Acceptance criteria
Dependencies
opencode runand require file changes for the OpenCode engine #913 (P0.19)Atomic by construction: one developer, one focused session.