SKILL.md file that teaches an agent its command surface without the agent having to read the whole --help tree first. Installing it is the same three-step shape everywhere: fetch the bundle, let the agent read it, run commands from it.
Install
skills package’s own invocation:
skills add subcommand. edstem and ontrack have skills generate alone — it rebuilds the tracked SKILL.md from the CLI’s own commands, which is what you’d run if you were contributing to one of these repos, not what a person installing the skill runs day to day.
What SKILL.md contains
Every SKILL.md in the family is generated from that CLI’s own commands --json output, not hand-written, so it can’t drift from what the binary actually does without someone noticing. It typically has:
- An intent table — what a person or agent might ask for, mapped to the exact command, with
UNIT/TASK/SECTIONplaceholders instead of real identifiers. - A short list of agent rules: prefer the narrowest command, use
readfor Markdown output, treat mutating commands as needing explicit intent plus confirmation or--yes, never print a token or session cookie. - A full command reference table (arguments, options, mutating flag) or a pointer to
commands --jsonfor the exact machine-readable version. - The exit-code table.
moodle-cli and edstem-cli verify automatically that SKILL.md still matches the CLI’s actual commands, so the bundle can’t ship stale. ontrack doesn’t run that check yet — if you edit ontrack’s commands, regenerating the skill locally before committing is on you.Where skills install
npx skills add <url> is the shared installer across all three. It writes the skill’s files under .agents/skills/<name>/ in the current project and records what it installed in a skills-lock.json alongside it, so a later run can tell whether the installed copy still matches its source.
Codex
moodle-cli additionally ships agents/openai.yaml, a Codex-specific agent manifest (display name, short description, and a default prompt: “Use $moodle-cli to inspect my Moodle data, retrieve a file through MCP, or download selected files locally with the narrowest relevant operation.”). It’s generated alongside SKILL.md and kept in sync the same way. Neither edstem-cli nor ontrack ships a Codex-specific manifest at this version.
Prompting an agent
The intent → command mapping these skill bundles are built from, merged across all three tools.