ms
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."
More from tkersey/dotfiles
grill-me
>
99complexity-mitigator
Mitigate incidental complexity in existing code when control flow is tangled, nesting is deep, names are hard to parse, or reasoning requires cross-file hops. Use when a review stalls on readability, you need an analysis-first refactor plan before edits, or you want essential-vs-incidental verdicts, dominant-risk triage, ranked simplification steps, one visibility artifact, and a TRACE assessment. Do not use for greenfield requirements discovery, architecture selection, or delivery planning.
59creative-problem-solver
Lateral-thinking playbook that always returns a five-tier strategy portfolio (Quick Win through Moonshot). Use when you need options, alternatives, or trade-offs; when progress is stalled or failing repeatedly; or when you ask to think creatively, reframe constraints, and choose a strategic path before execution.
59mesh
Use `$mesh` for homogeneous leaf-batch execution over `spawn_agents_on_csv`: once planning has shaped repeated independent units, prefer one substantive row per unit with structured results and explicit concurrency.
47web-browser
Use when tasks need real-browser web automation in Chrome/Chromium via CDP: open or navigate URLs, click/type/select in forms, run page JS, wait for selectors, scrape structured content, capture screenshots, validate UI flows, or run measured web-browser latency checks (`bench:eval`, `bench:all`) for perf regressions.
43invariant-ace
Turn 'should never happen' into 'cannot happen' by defining owned inductive invariants and enforcing them at parse/construct/API/DB/lock/txn boundaries with a verification signal. Use when prompts mention invariants, impossible states, validation sprawl, cache/index drift, idempotency/versioning, retries/duplicates/out-of-order events, race/linearization bugs, loop correctness, or hardening another implementation workflow with invariant checks first.
31