Agent skill

Skill Creator

by harperreed in harperreed/dotfiles

Create or update a Codex skill with appropriately scoped instructions and any needed supporting resources.

Apache-2.0Auto-check passedAgent Workflows

Install Skill Creator

skills CLI
$ npx skills add harperreed/dotfiles --skill skill-creator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install harperreed/dotfiles skill-creator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/harperreed/dotfiles.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/.system/skill-creator .claude/skills/skill-creator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
skill-creator
GitHub stars
334
Used in
2 other repos
Token cost
~3.8k tokens
SKILL.md length
1,855 words
Files
9 (incl. scripts, references, assets)
Skills in repo
32
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create or update a Codex skill with appropriately scoped instructions and any needed supporting resources.

  • Works in 3 steps: Name and description: Available during… → SKILL.md body: Loaded when the skill… → Supporting resources: Read or execute…
  • Tasks that involve Skill authoring
  • SKILL.md covers Core Principles, Anatomy of a Skill, Progressive Disclosure in… and Create or Update a Skill, plus 1 more section
  • Runs Python scripts from its folder

What it does

Skill Creator is an agent skill from harperreed/dotfiles. Create or update a Codex skill with appropriately scoped instructions and any needed supporting resources.

Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files, including scripts, reference files and assets (for example `agents/openai.yaml`, `references/openai_yaml.md` and `scripts/generate_openai_yaml.py`).

It sits in Agent Workflows, covering Skill authoring. The repository describes itself as: Dotfiles. Managed by YADM. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Skill authoring

Example prompts

  • “/skill-creator”

Requirements

  • Python 3

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Name and description: Available during skill selection, so keep them concise and discriminating.
  2. SKILL.md body: Loaded when the skill applies, so keep its instructions relevant to that task.
  3. Supporting resources: Read or execute only when the current task actually needs them.

What it can do on your machine

Read from SKILL.md and the folder at commit b78c10e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 3 files in scripts/ (Python), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Skill Creator loads about 3.8k tokens when it runs, and up to ~4.4k if it reads all its reference files. Until then it costs about 30 tokens; SKILL.md has 1,855 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~30
When it runs · the whole SKILL.md, loaded when a task matches
~3.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from harperreed/dotfiles at commit b78c10e, republished under its Apache-2.0 licence (© harperreed). 1,855 words, ~3,828 tokens.

Download SKILL.mdSave it as .claude/skills/skill-creator/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
skill-creator
description
Create or update a Codex skill with appropriately scoped instructions and any needed supporting resources.
metadata.short-description
Create or update a skill

Skill Creator

Create skills that give Codex useful, non-obvious guidance without constraining unrelated work.

Core Principles

Assume Codex is already capable. Include only information that changes its decisions or improves its work. Remove generic advice, repeated instructions, speculative edge cases, and examples that do not materially clarify the task.

Preserve user intent and scope. A skill should support the requested task, not replace the user's chosen product, expand the assignment, modify unrelated configuration, or imply permission for additional external actions. Do not turn a particular example, past failure, or personal preference into a universal requirement.

Approval to complete a task does not expand its scope or execution permissions. For retrying or externally mutating workflows, define a stopping condition proportional to the risk.

Match specificity to the risk. Give the model room to choose an appropriate approach when multiple approaches are reasonable. Use detailed steps, deterministic scripts, or absolute language only when correctness, safety, permissions, or a genuinely fragile workflow requires them.

For open-ended work, describe the outcome and relevant decision criteria. For workflows with a preferred shape, offer useful examples or configurable scripts. Reserve fixed sequences and narrow parameters for operations where deviation would cause a concrete problem. Preserve non-obvious operational invariants, distinguish actual requirements from optional recommendations or local conventions, and avoid restating policies already enforced elsewhere.

Keep discovery cheap and precise. Skill names and descriptions are available before a skill is loaded. Describe the actual capability and when it applies, adding exclusions only when they prevent likely misrouting. Avoid exhaustive capability lists and catchalls that attract unrelated requests.

Keep skills self-contained; refer to another skill or tool only when the requested workflow genuinely requires it and it is available in the target environment. Specialized review, hardening, or audit workflows should apply when requested or genuinely needed, not merely because ordinary work touches the same subject.

Disclose detail progressively. Keep shared purpose, essential constraints, and useful routing in SKILL.md. Put substantial mode-specific guidance, schemas, examples, or procedures in supporting references and read only the references relevant to the current task. A simple self-contained skill does not need a router or extra files.

Anatomy of a Skill

Every skill is a folder containing a required SKILL.md file and any optional resources its actual workflow needs:

text
skill-name/
|-- SKILL.md                 Required skill instructions
|   |-- YAML frontmatter     Required name and description
|   `-- Markdown body        Instructions loaded when the skill is used
|-- agents/                  Optional UI metadata and invocation policy
|   `-- openai.yaml
|-- scripts/                 Optional executable helpers
|-- references/              Optional documentation loaded as needed
`-- assets/                  Optional files used in generated output

Choose the structure that fits the actual task. Some skills are short and self-contained; others route among operating modes or delegate complex mechanics to scripts. Avoid creating directories, placeholders, examples, or ancillary documentation without a clear use.

SKILL.md

The YAML frontmatter identifies the skill and determines when it should be considered. Include the required name and description, and preserve supported optional fields such as existing metadata when appropriate.

The Markdown body is loaded only when the skill is used. Put the purpose, essential workflow, real constraints, and useful links there. Keep detailed procedures and examples in supporting references when they are relevant only to particular modes.

Skill information is disclosed in three stages:

  1. Name and description: Available during skill selection, so keep them concise and discriminating.
  2. SKILL.md body: Loaded when the skill applies, so keep its instructions relevant to that task.
  3. Supporting resources: Read or execute only when the current task actually needs them.

The entrypoint should be as short as the task permits while retaining important constraints. A large upper bound is not a target: move conditional detail into references when doing so improves clarity or context use, rather than waiting for the file to become unwieldy.

Scripts

Use scripts/ for executable code when the same logic would otherwise be rewritten repeatedly or deterministic execution materially improves reliability.

  • Example: scripts/rotate_pdf.py for a PDF operation that would otherwise require recreating the same code.
  • Useful for: Repeated transformations, reliable API operations, data processing, and other concrete automation.
  • Validation: Run new or changed scripts to verify their behavior. Scripts can usually be executed without loading their full implementation into context, although an agent may need to inspect them when patching or adapting them.
References

Use references/ for documentation that is needed only in particular contexts.

  • Examples: references/schema.md for database tables, references/policies.md for domain rules, references/api_docs.md for an API, or separate writing guides for different deliverables.
  • Useful for: Schemas, API documentation, company policies, format-specific procedures, detailed workflows, and substantial examples.
  • Routing: Link each reference from SKILL.md or another relevant resource and explain when it should be read. Keep information in one place instead of duplicating it across the entrypoint and references.

Keep references focused on maintained, task-specific information that changes the agent's decisions. Avoid copied manuals, exhaustive catalogs, and generic tutorials already available from authoritative sources. Before removing existing resources, inspect their callers and purpose.

For large references, include useful search terms or a short contents section when that makes the needed material easier to find.

Assets

Use assets/ for files that belong in generated output rather than in the model's instructions.

  • Examples: assets/logo.png, assets/slides.pptx, assets/font.ttf, or assets/frontend-template/.
  • Useful for: Templates, images, fonts, icons, boilerplate projects, and other files copied or adapted into the result.
  • Context: Do not load assets as instructions unless the task requires inspecting them.
UI Metadata and Invocation Policy

agents/openai.yaml can provide UI-facing metadata such as display_name, short_description, and default_prompt, along with invocation policy. When creating or updating those settings, read references/openai_yaml.md and keep the values consistent with the skill.

Automatic skill selection is allowed by default. Change that default only when the user explicitly requests an explicit-only skill:

yaml
policy:
  allow_implicit_invocation: false

This keeps the skill available when explicitly invoked as $skill-name without adding it to the model context automatically. Preserve unrelated existing UI, policy, and dependency fields when updating agents/openai.yaml.

The initializer creates this file automatically. For new or interface-only metadata, generate it with:

bash
scripts/generate_openai_yaml.py <path/to/skill-folder> --interface key=value

The generator replaces the entire file. If an existing file contains policy or dependencies, update only the intended fields in place instead of regenerating it.

Include optional interface fields only when the user provides or requests them.

What Not to Include

Include files that directly support the skill's work. Avoid adding a README.md, installation guide, changelog, duplicated quick reference, or other auxiliary documentation unless a specific task or packaging requirement calls for it.

Progressive Disclosure in Practice

For a skill with multiple substantial modes, keep the shared guidance and mode-selection criteria in SKILL.md. Link each supporting reference where its use becomes relevant. Do not load every reference by default, duplicate reference content in the entrypoint, or add a routing layer when there is nothing meaningful to route.

For example, a deployment skill can keep provider selection in SKILL.md and separate provider details:

text
cloud-deploy/
|-- SKILL.md
`-- references/
    |-- aws.md
    |-- gcp.md
    `-- azure.md

When the user chooses AWS, read references/aws.md; do not also load the GCP and Azure guides. The same pattern can separate business domains, deliverable types, or other genuinely distinct operating modes.

A short skill can instead route to details only when an advanced operation needs them:

markdown
## Documents

Handle ordinary edits directly.

- For tracked changes, read [references/redlining.md](references/redlining.md).
- For document internals, read [references/ooxml.md](references/ooxml.md).

These examples illustrate options, not a required structure. Choose the organization that makes the skill easier to use without loading irrelevant material.

Show full SKILL.md (704 more words)Show less

Create or Update a Skill

Adapt the work to the request. Creating a complex new skill may involve understanding realistic use cases, choosing supporting resources, initializing files, writing instructions, and validating the result. A narrow update to an existing skill may require only a focused edit and validation.

Ask clarifying questions only when the missing information matters and cannot be reasonably inferred. Respect a user-specified location; otherwise create discoverable skills in $CODEX_HOME/skills, or ~/.codex/skills when CODEX_HOME is unset.

Keep automatic skill selection enabled unless the user explicitly requests an explicit-only skill. When the intended invocation mode is genuinely unclear and matters to the requested workflow, ask whether the user wants normal automatic discovery or explicit-only invocation; otherwise preserve the default. Do not infer explicit-only invocation from sensitive operations or required approvals: keep the skill discoverable and require authorization immediately before the actual mutation. Preserve an existing skill's invocation policy unless the user asks to change it.

For a new or substantially revised skill, consider the actual requests it should handle and which reusable resources would improve those tasks:

  • A repeated PDF transformation may justify a scripts/rotate_pdf.py helper.
  • An application-building workflow may benefit from an assets/frontend-template/ starter.
  • A data-analysis skill may need a references/schema.md guide to avoid rediscovering table relationships.

Create those resources only when their concrete benefit justifies them. If the user has already explained the task clearly, proceed without requesting additional examples.

Naming
  • Use lowercase letters, digits, and hyphens.
  • Keep names under 64 characters and prefer short action-oriented names.
  • Namespace by tool or domain when doing so improves discovery.
  • Name the skill folder after the skill.
Initialize a New Skill

For a new skill, use the bundled initializer when it helps create the required files consistently:

bash
scripts/init_skill.py <skill-name> --path <output-directory> [--resources scripts,references,assets] [--examples]

For example:

bash
scripts/init_skill.py my-skill --path "${CODEX_HOME:-$HOME/.codex}/skills"
scripts/init_skill.py my-skill --path "${CODEX_HOME:-$HOME/.codex}/skills" --resources references

Request only the resource directories the skill needs. Use --examples only when concrete placeholders would help, and replace or remove them before finishing. Do not initialize an existing skill again.

The initializer creates the skill directory, a concise SKILL.md starter, and agents/openai.yaml. It creates resource directories and example files only when requested. Pass generated UI values as --interface key=value when needed.

Write the Instructions

The frontmatter description should briefly explain what the skill does and when it applies. Include a meaningful boundary when similar requests should not activate the skill.

For example:

yaml
description: Create or edit Word documents when formatting, tracked changes, or comments require document-specific handling.

Put detailed workflows, tool choices, examples, and operating modes in the body or relevant references rather than listing them all in the description. Preserve supported optional frontmatter, such as existing metadata, when appropriate.

Write only the instructions needed for another Codex instance to perform the task well. State the desired outcome, non-obvious context, real constraints, and relevant references or tools. Preserve the user's explicit choices and existing authorization boundaries. Avoid prescribing a fixed structure, process, or number of steps when the task does not require one.

Validate and Iterate

Validate the completed skill with:

bash
scripts/quick_validate.py <path/to/skill-folder>

The validator checks frontmatter, naming, and unfinished scaffold placeholders; it does not prove that the skill makes good decisions. Also check that descriptions remain discriminating, instructions preserve user intent, references are discoverable, and any added scripts actually work.

When testing is warranted, verify observable behavior or meaningful invariants. Avoid tests that merely match generated wording, headings, or regex patterns.

Improve the skill based on real usage or demonstrated failures. Prefer a narrow correction to accumulating universal rules for every observed example.

Independent Forward-Testing

Use an independent subagent pass when a skill is sufficiently complex or risky that realistic behavioral validation would add meaningful confidence, and when delegation is available and authorized. Ordinary creation or small edits do not automatically require subagents.

Give the evaluating agent a realistic user request, the skill, and the minimum raw artifacts needed to perform the task. Do not provide the intended answer, suspected bug, proposed fix, or prior conclusions unless the evaluation genuinely requires them.

For example:

text
Use $skill-name at /path/to/skill-name to complete this realistic request.

Keep the evaluation scoped to permitted resources and side effects. Use an isolated temporary workspace for generated artifacts so they do not enter the working tree or contaminate later evaluations. Ask for approval when the proposed evaluation would require additional authorization, affect a live production system, or impose substantial time or cost. Review the actual outcome and artifacts, then make only changes supported by the observed behavior.

© harperreed, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files (scripts, references, assets) in .codex/skills/.system/skill-creator of harperreed/dotfiles.

  • SKILL.md
  • agents/openai.yaml
  • assets/skill-creator-small.svg
  • assets/skill-creator.png
  • license.txt
  • references/openai_yaml.md
  • scripts/generate_openai_yaml.py
  • scripts/init_skill.py
  • scripts/quick_validate.py

Open the folder on GitHubat commit b78c10e

Used in 2 other repositories

We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in harperreed/dotfiles, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Skill Creator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Skill Creator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Skill Creator this skillharperreed/dotfiles3342 repos~3.8kAutomated safety check: PassApache-2.0
Skill CreatorAzure/azqr79589 repos~8.2kAutomated safety check: PassApache-2.0
Claude Code Skill Developer Guidediet103/claude-code-infrastructure-showcase10k11 repos~3.5kAutomated safety check: PassMIT
Darwin Skill Optimizeralchaincyf/darwin-skill6.2k1 repos~4.7kAutomated safety check: PassMIT
Claude Code Command Developmentanthropics/claude-plugins-official38k10 repos~4.8kAutomated safety check: PassApache-2.0
Claude Code Plugin Structureanthropics/claude-plugins-official38k10 repos~3.4kAutomated safety check: PassApache-2.0

Similar skills

  • Skill Creator

    Azure/azqr

    Official

    Create new skills, modify and improve existing skills, and measure skill performance.

    795 GitHub starsUsed in 89 repos~8.2k tokens
    Agent WorkflowsAuto-check passed
  • Claude Code Skill Developer Guide

    diet103/claude-code-infrastructure-showcase

    A guide to creating and managing Claude Code skills with auto-activation: skill-rules.json triggers, hooks, enforcement levels, YAML frontmatter and progressive disclosure.

    10k GitHub starsUsed in 11 repos~3.5k tokens
    Agent WorkflowsAuto-check passed
  • Darwin Skill Optimizer

    alchaincyf/darwin-skill

    Scores SKILL.md files on a nine-dimension rubric, then improves them in a keep-or-revert loop with independent judge agents, test prompts, git history and human checkpoints.

    6.2k GitHub starsUsed in 1 repo~4.7k tokens
    Agent WorkflowsAuto-check passed
  • Claude Code Command Development

    anthropics/claude-plugins-official

    Official

    Explains how to write Claude Code slash commands: Markdown files with YAML frontmatter, arguments, file references, bash context and interactive prompts.

    38k GitHub starsUsed in 10 repos~4.8k tokens
    Agent WorkflowsAuto-check passed
  • Claude Code Plugin Structure

    anthropics/claude-plugins-official

    Official

    Explains the directory layout, plugin.json manifest and component organization of a Claude Code plugin, including auto-discovery and portable paths.

    38k GitHub starsUsed in 10 repos~3.4k tokens
    Agent WorkflowsAuto-check passed
  • Skill Release Gate

    rohitg00/ai-engineering-from-scratch

    Evaluates an Agent Skill bundle before release for structure, trigger quality, artifact improvement, script correctness, safety, installed-tree integrity and host portability.

    66k GitHub stars~1k tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed

More from harperreed/dotfiles

All 32 skills in this repo
  • Swiftui Liquid Glass

    harperreed/dotfiles

    Implement, review, or improve SwiftUI features using the iOS 26+ Liquid Glass API.

    334 GitHub starsUsed in 8 repos~941 tokens
    Auto-check passed
  • Swiftui Performance Audit

    harperreed/dotfiles

    Audit and improve SwiftUI runtime performance from code review and architecture.

    334 GitHub starsUsed in 8 repos~1.4k tokens
    Auto-check passed
  • Swiftui View Refactor

    harperreed/dotfiles

    Refactor and review SwiftUI view files for consistent structure, dependency injection, and Observation usage.

    334 GitHub starsUsed in 5 repos~1.3k tokens
    Auto-check passed
  • App Store Changelog

    harperreed/dotfiles

    Create user-facing App Store release notes by collecting and summarizing all user-impacting changes since the last git tag (or a specified ref).

    334 GitHub starsUsed in 4 repos~465 tokens
    Auto-check passed
  • Nothing Design

    harperreed/dotfiles

    This skill should be used when the user explicitly says "Nothing style", "Nothing design", "/nothing-design", or directly asks to use/apply the Nothing design system.

    334 GitHub starsUsed in 3 repos~2.3k tokens
    Auto-check passed
  • Native App Performance

    harperreed/dotfiles

    Native macOS/iOS app performance profiling via xctrace/Time Profiler and CLI-only analysis of Instruments traces.

    334 GitHub starsUsed in 4 repos~538 tokens
    Auto-check passed

Categories

Questions about Skill Creator

What does Skill Creator do?

Create or update a Codex skill with appropriately scoped instructions and any needed supporting resources. Skill Creator is an agent skill from harperreed/dotfiles. Create or update a Codex skill with appropriately scoped instructions and any needed supporting resources.

When should I use Skill Creator?

Skill Creator fits situations like: tasks that involve Skill authoring.

How do I install Skill Creator in Claude Code?

Run `npx skills add harperreed/dotfiles --skill skill-creator -a claude-code`. Or copy the skill folder (.codex/skills/.system/skill-creator in harperreed/dotfiles) into .claude/skills/skill-creator in your project. Claude Code loads it when a task matches its description.

How do I install Skill Creator in Codex?

Run `npx skills add harperreed/dotfiles --skill skill-creator -a codex`. Or copy the skill folder (.codex/skills/.system/skill-creator in harperreed/dotfiles) into .agents/skills/skill-creator in your project. Codex loads it when a task matches its description.

Can I use Skill Creator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add harperreed/dotfiles --skill skill-creator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/skill-creator, .gemini/skills/skill-creator, .github/skills/skill-creator and .opencode/skills/skill-creator in your project.

What does Skill Creator need to run?

Going by SKILL.md and its folder, Skill Creator needs Python for the scripts in its folder. Our summary lists: Python 3.

Does Skill Creator access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Skill Creator safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Skill Creator use?

Skill Creator is published under the Apache-2.0 licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Skill Creator use?

About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 589 tokens, read only when the agent opens those files.

What are the alternatives to Skill Creator?

Skills that share tags, products or a category with Skill Creator: Skill Creator (Azure/azqr, 795 stars), Claude Code Skill Developer Guide (diet103/claude-code-infrastructure-showcase, 10k stars), Darwin Skill Optimizer (alchaincyf/darwin-skill, 6.2k stars) and Claude Code Command Development (anthropics/claude-plugins-official, 38k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Skill Creator?

harperreed (a GitHub user) maintains it in harperreed/dotfiles, which has 334 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 3, 2026.

Source: harperreed/dotfiles on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.