name: codex-skill-builder description: Design, draft, review, and refine Codex agent skills that follow current Codex conventions and the open Agent Skills format. Use when the user wants to create a new skill, update an existing SKILL.md, improve a skill's trigger description, decide whether to add scripts/references/assets, add agents/openai.yaml, or validate and test a skill package before installing it. Common triggers include "create a Codex skill", "make a skill", and "improve this SKILL.md".
Codex Skill Builder
Build skills that are narrow, composable, reliable to trigger, and cheap to load.
Default posture
- Start from concrete use cases and trigger phrases, not from file layout.
- Prefer instruction-only skills. Add
scripts/only when deterministic behavior or repeated code materially improves reliability. - Keep
SKILL.mdfocused on workflow, guardrails, and navigation. Move detailed docs, schemas, and large examples toreferences/. - Use only
nameanddescriptioninSKILL.mdfrontmatter. Put UI metadata, invocation policy, and dependencies inagents/openai.yaml. - Avoid restating basics Codex already knows. Keep only the information another Codex instance would genuinely need.
Authoring workflow
1. Understand the job
- Capture 2-5 concrete requests that should trigger the skill.
- Capture near-miss requests that should not trigger it.
- Decide whether the skill is problem-first or tool-first. See
references/patterns.md. - If an existing skill is provided, inspect current
SKILL.md,agents/openai.yaml,scripts/,references/, andassets/before restructuring anything.
2. Define success
- Write a small set of must-pass checks across outcome, process, style, and efficiency.
- At minimum, prepare:
- trigger tests
- functional tests
- one baseline comparison against working without the skill
- See
references/testing-checklist.md.
3. Plan the package
- Required:
SKILL.md - Optional:
references/,scripts/,assets/,agents/openai.yaml - Do not add
README.md, changelog files, installation guides, or other human-only docs inside the skill folder. - Keep one job per skill. Split overloaded skills rather than hiding multiple products in one description.
4. Write frontmatter first
- Choose a short kebab-case name that matches the folder.
- Write a description that:
- says what the skill does
- says when it should trigger using phrases users would actually say
- mentions relevant file types, tools, or contexts
- adds negative triggers or boundaries when over-triggering is likely
- Put all trigger logic in
description; do not rely on a "When to use" section in the body. - See
references/frontmatter-rubric.md.
5. Write the body
- Use imperative steps with explicit inputs, outputs, ordering, and stop conditions.
- For fragile sequences, include validation checkpoints and rollback or fallback instructions.
- Reference bundled files explicitly:
- use
references/...for detailed documentation, schemas, long examples, and policies - use
scripts/...for deterministic helpers - use
assets/...only for files copied into outputs or used by generated artifacts
- use
- Prefer concise examples over long narrative explanation.
- If quality improves through iteration, include a refinement loop with a clear exit condition.
- Keep
SKILL.mdlean. Prefer staying under roughly 500 lines and keep references one level deep fromSKILL.md. - For longer reference files, add a short table of contents near the top.
6. Add agents/openai.yaml when useful
- Add user-facing metadata in
agents/openai.yaml. - Consider
policy.allow_implicit_invocation: falsefor narrow skills that would otherwise trigger too often. - Declare MCP or tool dependencies there when they materially improve installation and use.
- See
references/workflow-checklist.mdfor a minimal example.
7. Validate and test
- Run
python scripts/validate_skill.py <skill-folder>when the validator exists. - Then manually check:
- obvious trigger prompts
- paraphrased trigger prompts
- should-not-trigger prompts
- one realistic end-to-end run
- the quality of the final files
- If the skill under-triggers, improve the description with concrete language and user phrasing.
- If it over-triggers, narrow the description and add negative triggers.
8. Deliver
- Return only the files that belong in the final skill.
- Default repo-local output path:
.agents/skills/<skill-name>/ - Use user-level placement only when the skill should apply across repositories.
Review mode
When the user asks to review or improve an existing skill:
- Read the current skill files before proposing structure changes.
- Preserve working behavior unless there is a clear triggering, scope, or reliability problem.
- Prioritize fixes in this order:
- name and description quality
- scope clarity
- missing validation or error handling
- poor reference organization
- unnecessary files or duplicated guidance
- Return a concise diagnosis plus the concrete file edits.
Required output for new skills
SKILL.md- test prompts
- any required bundled files
- optional
agents/openai.yaml
Reference guide
references/skill-template.mdreferences/frontmatter-rubric.mdreferences/workflow-checklist.mdreferences/patterns.mdreferences/testing-checklist.md