the codex adapter stops at T1 (mcp wire). codex reads AGENTS.md for project instructions the same way cursor does — and the cursor adapter already ships this exact tier (adapters/cursor/install.yaml T2: AGENTS.md.snippet with fenced_append: true). without it, a codex session gets the kb tools but no standing instructions on when to recall or how to propose through the review gate.
proposed change
- add
adapters/codex/AGENTS.md.snippet — same content contract as cursor's snippet (what vouch is, recall-before-answering, propose-don't-write, pointer to vouch review), phrased host-neutrally so the two snippets stay in sync.
- add a T2 tier to
adapters/codex/install.yaml with the standard fence markers (<!-- BEGIN vouch --> / <!-- END vouch -->), fenced_append: true, dst AGENTS.md.
_install_fenced in src/vouch/install_adapter.py already handles create-vs-append and idempotence; no installer changes needed.
acceptance criteria
the codex adapter stops at T1 (mcp wire). codex reads
AGENTS.mdfor project instructions the same way cursor does — and the cursor adapter already ships this exact tier (adapters/cursor/install.yamlT2:AGENTS.md.snippetwithfenced_append: true). without it, a codex session gets the kb tools but no standing instructions on when to recall or how to propose through the review gate.proposed change
adapters/codex/AGENTS.md.snippet— same content contract as cursor's snippet (what vouch is, recall-before-answering, propose-don't-write, pointer tovouch review), phrased host-neutrally so the two snippets stay in sync.adapters/codex/install.yamlwith the standard fence markers (<!-- BEGIN vouch -->/<!-- END vouch -->),fenced_append: true, dstAGENTS.md._install_fencedinsrc/vouch/install_adapter.pyalready handles create-vs-append and idempotence; no installer changes needed.acceptance criteria
AGENTS.mdand creates the file when absenttests/test_install_adapter.py