name: skill-creator description: Create, revise, evaluate, and validate Vercel-backed Agent Skills for this repository. Use when writing a new skill, improving an existing skill, tuning skill descriptions, deciding what belongs in SKILL.md, references, scripts, or assets, validating discovery, or reviewing whether a skill should exist.
Skill Creator
Use this skill to create and maintain project-local skills under .agents/skills.
The Vercel skills CLI is the source of truth for format and discovery. Do not maintain a separate local validator unless the user explicitly asks for one.
Skills should encode repeatable project expertise: real conventions, recurring failure modes, fragile workflows, and corrections the agent would otherwise miss. Do not turn one-off advice into a skill.
Read references/evaluation.md when tuning trigger descriptions, comparing skill versions, evaluating behavior, auditing imported skills, or checking source links.
Read references/composition-audit.md when grilling how a cluster of skills composes rather than one skill: after extracting, merging, or renaming a skill, after adding a trigger phrase, or when routing feels ambiguous. It carries the role model (hub / move / mechanic / adapter), the mechanical detectors (routing collisions, duplicated bodies, dead links, coupling), and the continuous-grill loop.
Compose With
Use other skills for their owned domains:
writing-voice: user-facing prose, UI text, errors, docs, and tone.agent-instruction-hygiene: deciding whether guidance belongs inAGENTS.md, a skill, a reference, or should be deleted.- Domain skills such as
workspace-api,svelte, orauth: package conventions the new skill must encode. git: staging, commits, branch work, and commit messages.plugin-creator: Codex plugins, not agent skills.skill-installer: installing third-party skills.
Decide Update Or New
Update an existing skill when it already owns the same user intent. Create a new skill only when the task is a separate coherent capability with distinct triggers.
Split a skill only when workflows are mutually exclusive, the routing description becomes broad or ambiguous, or a reference file would be loaded for the wrong jobs. Prefer small composable skills over broad manuals.
Supported Shape
Every skill is a flat directory with a required SKILL.md:
.agents/skills/<skill-name>/
|-- SKILL.md
|-- references/ optional, detailed context loaded only when needed
|-- scripts/ optional, executable helpers for repeatable fragile work
|-- assets/ optional, files used in generated output
Use .agents/skills for project-local portable skills. The Vercel CLI discovers this path, and Codex uses it as the project skill location.
The required frontmatter is:
---
name: skill-name
description: What this skill does and when agents should use it.
---
Use lowercase hyphenated names. Vercel CLI discovery only requires name and
description, and treats metadata.internal: true specially for hidden
internal skills. The broader Agent Skills format also permits useful optional
fields such as license, arbitrary metadata, argument-hint, and
disable-model-invocation. Do not remove those fields just because Vercel CLI
does not need them for --list.
Use optional frontmatter intentionally:
argument-hint: slash-invoked skills that need user input.disable-model-invocation: skills that should be explicit-only, not model-auto-invoked.license: bundled or imported skills whose license terms matter.metadata: provenance, version, or internal routing facts that a client may preserve even if another client ignores them.
Avoid agent-specific execution-control fields such as allowed-tools, hooks,
and context: fork unless the user explicitly targets an agent that supports
them.
What Not To Add
Keep repository skills portable and boring. Do not add these as part of the standard:
agents/openai.yaml
scripts/init_skill.py
scripts/quick_validate.py
scripts/generate_openai_yaml.py
references/openai_yaml.md
decorative assets
Those can exist in personal or system skill installations, but they are not the Vercel-backed skill format.
Create A Skill
Default to project-local skills:
cd /Users/braden/Code/epicenter/.agents/skills
bun x --package skills skills init <skill-name>
Then edit .agents/skills/<skill-name>/SKILL.md directly.
Before drafting body content:
- Classify the skill as
process,tool workflow,convention, ordomain pattern. - Gather real source material: completed tasks, diffs, review comments, issue threads, runbooks, execution traces, and repeated corrections.
- Confirm the task, target users, trigger use cases, supporting references, and whether any repeated fragile work needs a script.
- If those answers are missing and cannot be discovered from repo files, ask before drafting.
- Write the description before expanding body content.
- Ensure the draft states the job to be done, required inputs or prerequisites, ordered workflow, output format, guardrails, and final checks.
- Keep the core workflow small and move conditional detail to
references/.
Write The Description First
The description is always loaded and drives selection. It must carry the trigger logic because the body is loaded only after the skill is selected.
Include:
- What the skill does.
- Concrete situations that should trigger it.
- Important file types, packages, tools, or phrases the user might mention.
Use Use when... phrasing. Describe user intent, not implementation mechanics. Keep the description concise and under the 1024 character limit.
Good:
description: Workspace API patterns for defineTable, defineKv, migrations, observation, and attach primitives. Use when defining schemas, reading or writing table data, observing changes, writing migrations, or composing workspace attachments.
Weak:
description: Helps with workspace stuff.
For subtle routing, test 2 or 3 should-trigger prompts and 1 or 2 near-miss should-not-trigger prompts. Do not stuff exact keywords unless the keyword represents a real trigger category.
Use Progressive Disclosure
Put only essential workflow in SKILL.md. Aim for under 100 lines when practical, and keep the Vercel guideline of under 500 lines as the outer bound.
Use this split:
SKILL.md: core rules, recurring gotchas, decision points, commands, and links.references/: long examples, conditional gotchas, eval notes, decision tables, API details, and edge cases.scripts/: repeated deterministic helpers the agent would otherwise recreate.assets/: templates, images, boilerplate, or other files used in generated output.
Every reference link needs a concrete load condition, for example: "Read references/api-errors.md when the API returns a non-200 status."
Use scripts/ only for repeated, deterministic, fragile, or error-prone work. Scripts should be documented in SKILL.md, non-interactive, retry-friendly, clear about prerequisites, structured on stdout, diagnostics on stderr, and bounded in output.
Use Bun by default in this repository. Translate upstream Agent Skills CLI examples from npx skills ... to bun x --package skills skills .... For other npm package commands, preserve the package and use bun x or bunx, pinning versions when behavior must be reproducible.
Calibrate control to fragility. Be prescriptive for exact commands, migrations, destructive operations, and brittle formats. For batch, destructive, external-state, or high-blast-radius operations, use plan-validate-execute: create the plan, validate it against the source of truth, then execute. For judgment-heavy reviews or design work, give defaults and decision rules rather than rigid scripts.
Evaluate A Skill
Do a lightweight eval when creating a new skill, changing trigger descriptions, or revising subtle behavior.
Escalate to references/evaluation.md when the user asks to tune descriptions, compare versions, prove a skill works, audit an imported skill, or diagnose poor skill behavior.
Use this loop:
- Start with 2 or 3 realistic prompts.
- Compare against no skill for new skills, or the previous version for updates.
- Use a clean context where possible.
- Record failures, wasted steps, and missed project conventions.
- Revise the description or core workflow first.
- Move detail to references only when it is conditionally useful.
Read references/evaluation.md for trigger evals, execution trace review, and security checks.
Validate With Vercel CLI
Validate discovery with the same path the CLI uses before installation:
bun x --package skills skills add /Users/braden/Code/epicenter/.agents/skills --list
For one skill, pass the source directory plus the skill name:
bun x --package skills skills add /Users/braden/Code/epicenter/.agents/skills --skill <skill-name> --list
The useful signal is:
Local path validated
Found N skill(s)
If the skill does not appear, fix SKILL.md and run the command again. When the current CLI supports it, use skills use <source> to forward-test a skill prompt without installing it.
Do not validate a local skill by passing the skill subdirectory itself. Current
CLI behavior validates that path but can report No skills found. For
metadata.internal: true skills, pass --skill <name> and confirm the named
skill appears in the listing.
Update A Skill
When updating an existing skill:
- Read the current
SKILL.md. - Decide whether this should update the existing skill or become a new skill.
- Check whether linked
references/,scripts/, orassets/still earn their keep. - Review the description against realistic trigger and near-miss prompts.
- Remove stale local-only scaffolding from the guidance.
- Validate with the commands in Validate With Vercel CLI.
- Forward-test subtle behavior with realistic prompts.
Ask draft review questions when the scope is uncertain: does this cover the target use cases, is anything missing, and should any section move to references/?
Use sharper review questions when the design still feels soft:
- What repeated failure does this prevent?
- Which future prompt should not trigger this?
- Which other skill should compose with this instead?
- What concrete run would prove this skill helped?
Review Checklist
- The description has concrete triggers and near-miss boundaries.
SKILL.mdcontains the core workflow, not a copied source essay.- References have clear load conditions.
- Scripts are justified, non-interactive, and portable.
- Required tools are stated as prerequisites; the skill does not imply access to apps, files, connectors, or credentials.
- Optional frontmatter is intentional: keep cross-agent fields like
license,argument-hint,disable-model-invocation, and usefulmetadata; avoid agent-specific execution-control fields unless the target agent supports them. - The skill avoids time-sensitive facts unless sourced and necessary.
- No orphan
CLAUDE.mdfiles are created; sibling shims only import@AGENTS.md. - Punctuation follows
writing-voice: no en dash characters, and em dash characters only when they earn the emphasis. - Validation passed with the Vercel
skillsCLI.