Adds an `agents/openai.yaml` beside each `SKILL.md` so the skills work in Codex as well as Claude Code, without generated copies: - `interface.display_name` + `interface.short_description` for the Codex skill picker, hand-written for all 39 skills. - `policy.allow_implicit_invocation: false` on the 22 user-invoked skills — the Codex analog of `disable-model-invocation: true`, so Codex excludes them from implicit invocation while explicit `$skill` still works. - Document the dual-harness invocation model in `.agents/invocation.md`, `CLAUDE.md`, and the promoted-bucket READMEs. - Add `AGENTS.md` as a symlink to `CLAUDE.md` so Codex reads the same instructions; note Codex as a `link-skills.sh` install target. Slimmed-down rework of the approach prototyped in #522: keeps the essential cross-harness metadata, drops the Ruby validator, the runtime-detector test, per-skill `default_prompt`s, and the unrelated promotion changes. Co-authored-by: gabimoncha <gabimoncha@users.noreply.github.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.6 KiB
Skills are organized into bucket folders under skills/:
engineering/— daily code workproductivity/— daily non-code workflow toolsmisc/— kept around but rarely used, not promotedpersonal/— tied to my own setup, not promotedin-progress/— drafts not yet ready to shipdeprecated/— no longer used
Every skill in engineering/ or productivity/ (the promoted buckets) must have a reference in the top-level README.md and an entry in .claude-plugin/plugin.json. Skills in misc/, personal/, in-progress/, and deprecated/ must not appear in either.
Each skill entry in the top-level README.md must link the skill name to its SKILL.md.
Each bucket folder has a README.md that lists every skill in the bucket with a one-line description, with the skill name linked to its SKILL.md. The promoted buckets' README.mds and the top-level README.md group entries into User-invoked and Model-invoked; non-promoted bucket README.mds (misc/, personal/) use a flat list.
Skills in engineering/ and productivity/ also have a human-facing docs page at docs/<bucket>/<skill-name>.md (the docs tree mirrors those two bucket folders under skills/). The published URL is https://aihero.dev/skills-<skill-name> regardless of bucket — the docs path is repo organisation only. When you add, rename, or change the behaviour of a skill in engineering/ or productivity/, create or re-sync its docs page following .agents/writing-docs.md. Skills in the non-promoted buckets (misc/, personal/, in-progress/, deprecated/) get no docs page.
Every SKILL.md is either user-invoked (disable-model-invocation: true plus policy.allow_implicit_invocation: false in agents/openai.yaml, reachable only by the human) or model-invoked (model- or user-reachable). See .agents/invocation.md.
ask-matt is the router that maps every user-reachable skill and how they relate. The same trigger that re-syncs a docs page applies to it: whenever you add, rename, remove, or change how a user-reachable skill fits the flows, re-read ask-matt's SKILL.md and update it so the map stays accurate — a new skill it never mentions, or a stale one it still routes to, is a router that lies.
To (re)link every skill into the local harness skill directories (~/.claude/skills, ~/.agents/skills), run scripts/link-skills.sh. Each entry is a symlink into this repo, so a git pull keeps installed skills current; re-run the script after adding, removing, or renaming a skill.