Skip to content

I3410 — A Codex prompt is captured through Codex's own UserPromptSubmit hook, and capture status stops calling Codex prompts unadapted

Add a codex line to MJ_CAPTURE_ADAPTERS that reads Codex's prompt field, with the shim and config entry capture install writes, in the way it writes the Claude one. Before building, re-verify the dated vendor evidence in share/providers.yaml against the installed Codex.

BLOCKED wave 2 · p3 · implementation profile · parallel safe

Part of a-provider-carries-the-contract-natively — Each agent client carries the contract through its own extension points, generated once and checked for drift.

Blocked. This issue cannot start until I3303, I3406 are done. The status is derived from that, not declared.

Objective

Add a codex line to MJ_CAPTURE_ADAPTERS that reads Codex's prompt field, with the shim and config entry capture install writes, in the way it writes the Claude one. Before building, re-verify the dated vendor evidence in share/providers.yaml against the installed Codex.

Why

The owner's 2026-10-19 Cognitive Fabric pack asks that event ingestion use the hooks each client actually offers (campaigns/prismatic-way-cognitive-fabric-prompt-pack/prompts/02_EVENTS_INTENTS.md). Codex sessions work this repository daily, and their prompts are never events. I3303 plans Codex session events and the guard, not prompts.

Current state

share/providers.yaml:135-154 records Codex UserPromptSubmit with the raw text in prompt. lib/capture.sh:249 has only a claude-code adapter, and lib/capture.sh:2037 reports Codex prompts unadapted.

Desired state

A Codex prompt payload writes one record with provider codex. capture status reports Codex prompts as wired or unwired by running the shim. Gemini stays unadapted and is reported so.

Scope

  • lib/capture.sh
  • share/providers.yaml
  • test/cases/29_prompt_capture.sh
  • .ai/repo/project/intents

Out of scope

  • A Gemini adapter (deferred, as in I3303)
  • Codex session or edit-guard events (I3303)

Dependencies

Acceptance criteria

  • A Codex-shaped payload piped into the generated shim writes one record with provider codex
  • The same prompt id from claude-code and codex writes two records (I3406's key)
  • capture status no longer lists Codex prompts as unadapted once the adapter is installed

Validation

  • bash test/run.sh 29_prompt_capture 170_provider_lifecycle_declared
  • majordomus capture status --json

Evidence required

  • case_a_codex_prompt_is_captured (an assertion block added to test/cases/29_prompt_capture.sh)

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3410.yaml. Read it back with majordomus plan show I3410.

Searches the titles and descriptions of every page this site publishes.