Adds a Codex CLI skill integration by creating the two files Codex's real
loader actually reads:
- .agents/skills/last30days/SKILL.md (real file, not a symlink - Codex's
loader skips symlinked files per codex-rs/core-skills/src/loader.rs)
- .codex-plugin/plugin.json with {"name": "last30days"} as a namespace
marker, per codex-rs/utils/plugins/src/plugin_namespace.rs
When Codex CLI runs in a checkout of this repo, it walks .agents/skills/
from CWD up to the project root, picks up .agents/skills/last30days/SKILL.md,
and walks ancestors looking for .codex-plugin/plugin.json to resolve the
plugin namespace. The skill registers as last30days:last30days.
The SKILL.md is a verbatim copy of the root SKILL.md at this point to
avoid content drift during the rollout. A future PR can slim the Codex copy
or introduce a sync mechanism.
Verified against Codex CLI's own source by running codex exec from the
repo CWD and having it trace the loader logic.
Replaces PR #153, which used a fake $schema URL
(https://openai.com/codex/plugin.schema.json returns 404) and put a
misunderstanding of Codex's plugin manifest (Codex only reads the `name`
field - all other fields like version, description, author, skills[] are
silently ignored).
This contribution was developed with AI assistance (Codex + Claude Code).
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>