a3567056c0
The aggregate plugin test originally asserted that every component lacked .codex-plugin/plugin.json. That was correct when omo was only an aggregate Codex namespace: the root manifest owned plugin identity and components were implementation details. PLUGIN_BUNDLED changes the invariant for rules. The rules component now ships bundled-rules/hephaestus.md and uses a plugin-root marker to resolve bundled resources when it runs as a component package, while Codex still sees the aggregate omo manifest as the installable plugin. Chose Path A and touched only packages/omo-codex/plugin/test/aggregate.test.mjs. The test now allowlists the rules manifest and still asserts every other component has no plugin manifest, preventing accidental sprawl. Verified npm test from packages/omo-codex/plugin, bun run test:codex, and bun test src/cli/install-codex/. bun run test:codex exits 0 and covers the Linux, macOS, and Windows Codex adapter code paths.
omo
omo is the single local Codex plugin namespace for Yeongyu's Codex components.
Internally each component remains isolated under components/:
components/comment-checkercomponents/rulescomponents/lspcomponents/ultraworkcomponents/ultragoal
The root plugin manifest exports one Codex plugin named omo, with aggregate hooks, skills, and the LSP MCP server.