Create, update, or refactor Codex skills in this repo, including SKILL.md, frontmatter trigger text, agents/openai.yaml, and scripts/references/assets. Use when asked to create or improve a skill, tighten trigger descriptions from usage evidence (for example via $seq), regenerate/verify agents/openai.yaml, or adjust skill metadata/workflows.
Resources
1Install
npx skillscat add tkersey/dotfiles/ms Install via the SkillsCat registry.
SKILL.md
ms
Overview
Create and update Codex skills with minimal diffs. Work directly in the skill folder (no external registry) and keep the skill lean.
Hard constraints
- Minimal diff: change only what is needed to satisfy the new requirement.
- No extra docs: do not add README/INSTALL/CHANGELOG-style files.
- Frontmatter:
- Default: only
nameanddescription. - Preserve existing allowed keys (e.g.,
metadata,license,allowed-tools) when updating system skills. namemust be hyphen-case (<=64 chars) and match the folder name.descriptionis the trigger surface: include "when to use" cues; no angle brackets; <=1024 chars.
- Default: only
- SKILL.md body:
- Imperative voice.
- Keep under 500 lines; spill deep details into
references/. - Do not put trigger guidance in the body; put it in frontmatter
description.
agents/openai.yaml(if present/needed):- Prefer generating via
generate_openai_yaml.py. short_descriptionmust be 25-64 chars.default_promptmust be one short sentence and mention$skill-name.
- Prefer generating via
- Proof of completion (required):
- Record
agents/openai.yamldisposition as one of:regenerated,verified unchanged, ornot present. - Include the exact
quick_validate.pycommand used and its pass/fail result in the final summary.
- Record
- Always run
quick_validate.pybefore calling it done.- Recommended (no global installs):
uv run --with pyyaml -- python3 codex/skills/.system/skill-creator/scripts/quick_validate.py <path/to/skill>
- Note: skill-creator scripts require PyYAML (
import yaml).
- Recommended (no global installs):
Workflow Decision Tree
- If a matching skill already exists: run Update Workflow.
- If no matching skill exists: run Create Workflow.
- If the name, location, or triggers are unclear: ask 1-3 targeted questions, then proceed.
- If refining
msitself: run the Seq Feedback Loop first and use that evidence to choose the smallest update set.
Create Workflow
- De-duplicate: search for an existing skill that already covers the intent; prefer updating over creating a near-duplicate.
- Discover and define: collect 2-3 concrete user prompts, then write:
- Problem statement (1 line)
- Success criteria (how we'll know it works)
- Plan reusable assets: decide whether
scripts/,references/, orassets/are required; create only what is necessary. - Initialize (scaffold):
uv run --with pyyaml -- python3 codex/skills/.system/skill-creator/scripts/init_skill.py <skill-name> --path codex/skills- Add
--resources scripts,references,assetsonly when needed. - If you need UI metadata now, pass
--interface key=value(repeatable).
- Author
SKILL.md:- Update frontmatter
descriptionto include concrete triggers (file types, tools, tasks, key phrases). - Keep the body procedural and composable (decision tree + steps + pointers into
references/).
- Update frontmatter
- Sync UI metadata (optional but recommended for new skills):
- Generate or regenerate:
uv run --with pyyaml -- python3 codex/skills/.system/skill-creator/scripts/generate_openai_yaml.py codex/skills/<skill-name> --interface key=value - If the skill already had
default_prompt, include it again in overrides (generator does not infer it). - For field constraints, read
codex/skills/.system/skill-creator/references/openai_yaml.md.
- Generate or regenerate:
- Validate:
uv run --with pyyaml -- python3 codex/skills/.system/skill-creator/scripts/quick_validate.py codex/skills/<skill-name>
- Iterate with the user: tighten triggers, remove redundancy, and promote repeatable code into
scripts/.
Update Workflow (In Place)
- Locate the target skill folder in
codex/skills(orcodex/skills/.systemfor system skills). - Read the current
SKILL.mdand resources to identify the smallest set of required changes. - Edit in place:
- Update frontmatter
descriptionif triggers changed. - Adjust workflows, tasks, or references with minimal diffs (no formatting churn).
- Add or remove resource folders only when they create real reuse.
- Update frontmatter
- Sync UI metadata:
- If
agents/openai.yamlexists, keep it consistent with the skill and regenerate if stale. - If missing and UI metadata is desired, create it with
uv run --with pyyaml -- python3 codex/skills/.system/skill-creator/scripts/generate_openai_yaml.py <path/to/skill> --interface key=value.
- If
- Validate with
uv run --with pyyaml -- python3 codex/skills/.system/skill-creator/scripts/quick_validate.py <path/to/skill>. - Summarize changes and next steps.
- Include
openai_yaml: regenerated|verified unchanged|not present. - Include
quick_validate: <exact command> -> <result>.
- Include
Seq Feedback Loop (for improving ms)
When the target skill is ms, mine recent sessions before editing:
- Collect assistant outputs that mention
$ms:uv run codex/skills/seq/scripts/seq.py query --root ~/.codex/sessions --spec '{"dataset":"messages","where":[{"field":"role","op":"eq","value":"assistant"},{"field":"text","op":"contains","value":"$ms"}],"select":["path","timestamp","text"],"sort":["timestamp"],"format":"jsonl"}'
- Compute adherence rates for required proof markers:
quick_validate.pyuv run --with pyyaml -- python3 codex/skills/.system/skill-creator/scripts/quick_validate.pyagents/openai.yamlgenerate_openai_yaml.py
- Promote repeated misses into minimal-incision SKILL.md constraints/workflow edits.
Trigger Examples
- "Create a skill to manage OpenAPI specs and generate SDKs."
- "Update skill X to include a new workflow and regenerate agents/openai.yaml."
- "Refactor this skill's SKILL.md and add references/ for schemas."
- "Refactor this skill's SKILL.md, move deep details into references/, and keep it under 500 lines."