@@ -8,35 +8,83 @@ This directory contains the **Codex plugin manifest** for ECC.
88.codex-plugin/
99└── plugin.json — Codex plugin manifest (name, version, skills ref, MCP ref)
1010.mcp.json — MCP server configurations at plugin root (NOT inside .codex-plugin/)
11+ hooks/codex-hooks.json — Codex-compatible lifecycle hook projection
1112```
1213
1314## What This Provides
1415
15- - ** 249 skills** from ` ./skills/ ` — reusable Codex workflows for TDD, security,
16+ - ** 281 skills** from ` ./skills/ ` — reusable Codex workflows for TDD, security,
1617 code review, architecture, and more
17- - ** 6 MCP servers** — GitHub, Context7, Exa, Memory, Playwright, Sequential Thinking
18+ - ** 1 default MCP server** — Chrome DevTools; retired connectors remain opt-in
19+ - ** Codex lifecycle hooks** — synchronous command hooks on supported events,
20+ with explicit review and trust in ` /hooks `
1821
1922## Installation
2023
21- Codex plugin support is marketplace-backed. The repo exposes a repo-scoped
22- marketplace at ` .agents/plugins/marketplace.json ` ; Codex can add and track that
23- marketplace source from the CLI:
24+ Codex 0.146.0 and newer use ` plugin add ` , not ` plugin install ` . Add ECC's
25+ repository marketplace, install the native plugin, and verify the registration:
2426
2527``` bash
26- # Add the public repo marketplace
2728codex plugin marketplace add affaan-m/ECC
29+ codex plugin add ecc@ecc
30+ codex plugin list --json
31+ ```
32+
33+ Both add commands are safe to run again. A repeated marketplace add reports
34+ ` alreadyAdded: true ` , and a repeated plugin add keeps the same enabled plugin
35+ registration. To fetch a newer marketplace snapshot before applying a new ECC
36+ release, run:
37+
38+ ``` bash
39+ codex plugin marketplace upgrade ecc
40+ codex plugin add ecc@ecc
41+ ```
42+
43+ For local development, the same native journey accepts a checkout path:
2844
29- # Or add a local checkout while developing
45+ ``` bash
3046codex plugin marketplace add /absolute/path/to/ECC
47+ codex plugin add ecc@ecc
3148```
3249
33- The marketplace entry points at ` plugins/ecc/ ` — Codex does not discover
34- plugins whose local marketplace ` source.path ` is the marketplace root (` ./ ` ),
35- so the entry must target a concrete plugin subdirectory (see
36- [ #2128 ] ( https://github.com/affaan-m/ECC/issues/2128 ) ). That thin plugin folder
37- references the root ` skills/ ` and ` .mcp.json ` so content stays single-sourced.
38- After adding or updating the marketplace, restart Codex and install or enable
39- ` ecc ` from the plugin directory.
50+ ECC's marketplace entry points at the repository root. Codex copies the selected
51+ plugin source into its cache, so the root source keeps ` skills/ ` , ` .mcp.json ` ,
52+ ` hooks/ ` , hook scripts, and presentation assets together. Parent-relative paths
53+ from a thin plugin directory would escape that cache and produce an installed
54+ registration with missing runtime content.
55+
56+ Restart Codex after installation. You can also open ` /plugins ` in Codex CLI to
57+ inspect, enable, disable, or remove the plugin. The native Codex plugin does not
58+ use Claude's ` user ` , ` project ` , or ` local ` install scopes: its enabled state is
59+ stored once in the active ` CODEX_HOME ` (normally ` ~/.codex ` ) and applies to
60+ Codex sessions using that home.
61+
62+ ## Hooks and reconfiguration
63+
64+ The Codex manifest uses the documented ` hooks ` field to bundle
65+ ` ./hooks/codex-hooks.json ` . This provider-specific projection keeps the
66+ synchronous ` SessionStart ` bootstrap verified against Codex 0.146. Claude hook
67+ profiles are not Codex hook profiles: handlers that block tools, use unsupported
68+ events, run asynchronously, or fail Codex's hook protocol stay out of the native
69+ bundle. Codex enables hook support by default, but native plugin installation
70+ does not silently authorize commands. Start a new Codex session, open ` /hooks ` ,
71+ then review and trust the ECC hook definition before enabling it.
72+ Codex records trust against each definition's hash, so changed hooks require
73+ review again. Use ` /plugins ` for plugin enablement and ` /hooks ` for hook trust;
74+ these are separate controls.
75+
76+ Once the cached skills are available, invoke ` $configure-ecc ` inside Codex for
77+ ECC's guided configuration. Installing the plugin again is idempotent and does
78+ not create a second scope or duplicate hook registration.
79+
80+ ## Native plugin versus legacy managed sync
81+
82+ The commands above are the native Codex plugin path. The legacy managed sync
83+ (` bash scripts/sync-ecc-to-codex.sh ` ) is a separate compatibility
84+ path that merges files into ` ~/.codex ` . It is not a native plugin install and
85+ does not create a marketplace registration. Prefer the native path on current
86+ Codex; use the legacy managed sync only when you intentionally need its copied
87+ configuration layer.
4088
4189After install, ` codex plugin list ` is only a registration check. From an ECC
4290checkout, run the cache check to verify that the installed manifest can resolve
@@ -46,22 +94,6 @@ its referenced skills, MCP config, and assets:
4694node scripts/codex/check-plugin-cache.js
4795```
4896
49- > ** Plugin mode is currently fragile on Codex.** Marketplace discovery and
50- > install work with this layout, but runtime skill loading from local/repo
51- > marketplaces is unreliable upstream
52- > ([ openai/codex #26037 ] ( https://github.com/openai/codex/issues/26037 ) ) — Codex
53- > copies only the plugin folder into its install cache, so parent-referenced
54- > content may not be exposed in a fresh session. The safer, fully supported
55- > path today is the manual sync flow:
56- > ` npm install && bash scripts/sync-ecc-to-codex.sh ` .
57-
58- Official Plugin Directory publishing is coming soon. For official OpenAI
59- plugin-directory review, package this repo under the ` openai/plugins `
60- repository shape: ` plugins/ecc/.codex-plugin/plugin.json ` ,
61- ` plugins/ecc/skills/ ` , and the supporting README/assets. Until that listing is
62- accepted, treat the public repo marketplace as the supported Codex distribution
63- path and keep release copy framed as repo-marketplace/manual installation.
64-
6597The installed plugin registers under the short slug ` ecc ` so tool and command names
6698stay below provider length limits.
6799
0 commit comments