setuplisted
Install: claude install-skill mubit-ai/plugins
**This skill never installs anything.** It writes two configuration files the user already
owns, tells them exactly what it is about to write, and confirms the instance answers. It does
not install packages, start services, or touch the user's shell profile. A memory plugin that
runs installers is a trust failure.
It does have more to do under Codex than under Claude Code, and the reason is worth stating
before you start, because it decides the whole shape of the work:
> **Codex does not read the `hooks.json` this plugin ships, and cannot resolve a plugin's
> `.mcp.json` entry point.** A bare `hooks.json` at a plugin's root is copied into the install
> cache and then ignored — the manifest has to name it (`"hooks": "./hooks.json"`), or it has
> to be at `hooks/hooks.json`, and this plugin's is neither. And a plugin-declared MCP server
> gets no path substitution of any kind: `${CLAUDE_PLUGIN_ROOT}/x.mjs`, `./x.mjs` and `x.mjs`
> all fail to start, because a relative path resolves against the *project* directory and
> there is no variable layer at all.
So the file this plugin ships is **data**, and this skill installs it into the user layer,
where `hooks/list` reports it as `source: "user"` with `pluginId: null`. (A plugin whose
manifest *did* declare its hooks is discovered and reported against its own `pluginId`;
`test/codex-oracle.test.mjs` pins that, and changing this plugin to that shape is a change
nobody has made yet. Until someone does, the procedure below is the on