github.com web signal

OpenAI Codex ships skill-creator sample for reusable agent instructions

TL;DR

  • OpenAI's Codex repo now carries a sample 'skill-creator' SKILL.md that teaches Codex how to author new folder-based skills with YAML frontmatter.
  • Skills disclose information in three stages: name and description at selection, the SKILL.md body when triggered, and supporting references on demand.
  • Automatic skill selection is on by default; setting policy.allow_implicit_invocation to false makes a skill callable only as $skill-name.

"Assume Codex is already capable." That is the first of four core principles in a sample SKILL.md file committed to the openai/codex repository, under a path — `codex-rs/skills/src/assets/samples/skill-creator/` — that quietly tells you Codex now has a skills subsystem and ships a meta-skill for authoring more of them.

A skill, as the document describes it, is a folder. A required `SKILL.md` with YAML frontmatter carries the instructions; optional `scripts/`, `references/`, `assets/`, and `agents/openai.yaml` subdirectories carry executables, on-demand documentation, output files, and UI metadata. Names are lowercase with hyphens, under 64 characters. The default location is `$CODEX_HOME/skills`, falling back to `~/.codex/skills`. A helper called `scripts/quick_validate.py` runs on the folder, but the file is candid about its limits: it "checks frontmatter, naming, and unfinished scaffold placeholders; it does not prove that the skill makes good decisions."

The stance on scope is unusually flat for a config sample. "Approval to complete a task does not expand its scope or execution permissions," the file reads. "For retrying or externally mutating workflows, define a stopping condition proportional to the risk." Skill information is disclosed "in three stages" — name and description at selection, the SKILL.md body when the skill applies, supporting resources only when the task needs them. Automatic skill selection is on by default; setting `policy: allow_implicit_invocation: false` in `agents/openai.yaml` keeps the skill available only when a user types `$skill-name`.

Two of the practitioners on our watchlist circulated the file this week, which is how a sample buried four directories deep in a Rust crate gets noticed at all.

Shared on Bluesky by 2 AI experts