Skip to content

Track Codex plugin manifest, hooks, marketplace, and policy parity #188

Description

@ScriptedAlchemy

Summary

Documentation-coverage follow-up for the current Codex plugin system observed on 2026-09-01. This is the Codex-specific child of #100/#107. It excludes Skill IR work already tracked by #108, canonical event-family routing on #97, schema adoption on #133, and end-user installation on #181/#101.

The current adapter emits .codex-plugin/plugin.json, .mcp.json, hooks/hooks.json, skills, and a local marketplace through packages/agent-bundle/src/adapters/codex.ts, but its pinned schema/capability record only models a subset of the now-documented surface.

Sources

Observed 2026-09-01:

Checklist

Every item must become implemented, explicitly delegated, or recorded in the Codex capability table as unavailable/deferred with a reason.

Manifest/package

  • Full .codex-plugin/plugin.json metadata (author details, homepage, repository, license, keywords)
  • Complete interface fields: display/short/long descriptions, developer, category, capabilities, legal/site URLs, starter prompts, brand color, icons/logo/screenshots
  • apps / .app.json registered MCP mapping compatibility surface
  • mcpServers, skills, and hooks as documented path forms; hooks allow path, path array, inline object, or inline-object array
  • Optional assets and submission-facing package constraints
  • MCP server policy under plugins.<plugin>.mcp_servers.<server> (enabled/tools/approval modes)
  • PLUGIN_ROOT/PLUGIN_DATA plus CLAUDE_PLUGIN_ROOT/CLAUDE_PLUGIN_DATA compatibility environment

Hook contract

  • Pin the release-documented events: SessionStart, SessionEnd, PreToolUse, PermissionRequest, PostToolUse, PreCompact, PostCompact, UserPromptSubmit, SubagentStart, SubagentStop, and Stop
  • Credit the running SubagentStart/SubagentStop correction lane; do not reimplement it here
  • Reconcile generated-schema-only Interrupt as deferred until the release behavior docs support it
  • Support or explicitly reject handler types: command and mcp_tool; keep parsed-but-skipped prompt/agent truthful
  • mcp_tool structured input expansion, connected-server requirement, synchronous/non-recursive execution, and timeout behavior
  • async command hooks, eight-per-session concurrency, cancellation at session end, and non-controlling output rules
  • additionalContextLimit spill behavior and configuration diagnostics
  • commandWindows/command_windows, statusMessage, and per-event timeout rules
  • Exact matcher semantics by event, including ignored matchers, apply_patch aliases (Edit/Write), local-function coverage, and hosted-tool exclusions
  • Trust-by-current-hash review, /hooks control, plugin hooks skipped until trusted, managed hooks immutable
  • Validate event I/O against the generated schemas under codex-rs/hooks/schema/generated rather than the current open-ended event map

Marketplace/install/policy

  • Repo/personal marketplace discovery and legacy .claude-plugin/marketplace.json compatibility
  • Local, Git root, git-subdir, and npm sources; path containment, ref/SHA, lifecycle-script prohibition, and unresolved-entry behavior
  • Marketplace interface, plugin policy.installation, policy.authentication, category, cache layout, and enable state in config.toml
  • CLI codex plugin add/list/remove and marketplace add/list/upgrade/remove JSON contracts
  • features.plugins, features.hooks, deprecated codex_hooks, inline [hooks], and managed requirements.toml
  • allow_managed_hooks_only and marketplace restrict_to_allowed_sources behavior
  • Public submission/publish controls and requirements are documented as distribution policy, not claimed as local compiler behavior

Acceptance

  • No documented Codex surface remains implicit: each has a four-state capability row with dated evidence.
  • Requested unsupported behavior fails before publication rather than being dropped by permissive schemas.
  • Compile semantic Agent event routes into native host hooks #97 owns canonical event-route expansion; this issue owns native Codex manifest/hook/lifecycle fidelity.

Related: #107 #100 #97 #101 #108 #133 #181

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthost-integrationAgent host capabilities, projection, discovery, and lifecyclemeta-frameworkAgent Bundle compiler-coupled meta-framework

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions