Skill Creator
Azure/azqr
Create new skills, modify and improve existing skills, and measure skill performance.
Scaffolds a new yoyo skill on request with correct frontmatter and validation, and explains when to use it instead of the autonomous skill-evolve cycle.
$ npx skills add yologdev/yoyo-evolve --skill skill-creator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install yologdev/yoyo-evolve skill-creator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/yologdev/yoyo-evolve.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/skill-creator .claude/skills/skill-creator && rm -rf skills-srcUse ~/.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/
Install the "skill-creator" agent skill from https://github.com/yologdev/yoyo-evolve/tree/main/skills/skill-creator into .claude/skills/skill-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-creator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/yologdev/yoyo-evolve/tree/main/skills/skill-creatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add yologdev/yoyo-evolve --skill skill-creator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install yologdev/yoyo-evolve skill-creator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yologdev/yoyo-evolve.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/skill-creator .agents/skills/skill-creator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "skill-creator" agent skill from https://github.com/yologdev/yoyo-evolve/tree/main/skills/skill-creator into .agents/skills/skill-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-creator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yologdev/yoyo-evolve --skill skill-creator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install yologdev/yoyo-evolve skill-creator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yologdev/yoyo-evolve.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/skill-creator .cursor/skills/skill-creator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "skill-creator" agent skill from https://github.com/yologdev/yoyo-evolve/tree/main/skills/skill-creator into .cursor/skills/skill-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-creator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/yologdev/yoyo-evolve.git --path skills/skill-creator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add yologdev/yoyo-evolve --skill skill-creator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install yologdev/yoyo-evolve skill-creator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yologdev/yoyo-evolve.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/skill-creator .gemini/skills/skill-creator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "skill-creator" agent skill from https://github.com/yologdev/yoyo-evolve/tree/main/skills/skill-creator into .gemini/skills/skill-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-creator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install yologdev/yoyo-evolve skill-creatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add yologdev/yoyo-evolve --skill skill-creator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/yologdev/yoyo-evolve.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/skill-creator .github/skills/skill-creator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "skill-creator" agent skill from https://github.com/yologdev/yoyo-evolve/tree/main/skills/skill-creator into .github/skills/skill-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-creator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add yologdev/yoyo-evolve --skill skill-creator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install yologdev/yoyo-evolve skill-creator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yologdev/yoyo-evolve.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/skill-creator .opencode/skills/skill-creator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "skill-creator" agent skill from https://github.com/yologdev/yoyo-evolve/tree/main/skills/skill-creator into .opencode/skills/skill-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-creator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skill-creatorScaffolds a new yoyo skill on request with correct frontmatter and validation, and explains when to use it instead of the autonomous skill-evolve cycle.
This skill is for creating one new yoyo skill on demand, in answer to an explicit request from the human creator or from a community issue. It generates the frontmatter, validates it and writes the skill to disk. The procedure starts by capturing intent in writing: what the skill does in one sentence, which cues should make a future agent reach for it, and which of the agent's tools it needs.
A comparison table separates it from skill-evolve, which is triggered by a scheduled GitHub Actions job from past-session evidence, with a recurrence gate and a diff-scope guard. The rule of thumb is that if no human asked, the agent is noticing a pattern, not creating a skill, so it records a learning and leaves creation to skill-evolve. It is also not for one-off helpers. Installing a third-party skill from outside the repo is a listed use. The excerpt is cut off partway through the procedure.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 637e940. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
cargogitpython3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Yoyo Skill Creator loads about 3.1k tokens when it runs. Until then it costs about 49 tokens; SKILL.md has 1,307 words of instructions outside code blocks.
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.
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); files beside SKILL.md are not scanned.
The full file from yologdev/yoyo-evolve at commit 637e940, republished under its MIT licence (© yologdev). 1,307 words, ~3,109 tokens.
.claude/skills/skill-creator/SKILL.md (or your agent's skills folder).You are creating a new yoyo skill on demand, in direct response to an explicit request — either from the human creator or from a community issue asking for a new capability.
These are complementary, not redundant. Use the right one:
| Question | skill-creator (this skill) | skill-evolve |
|---|---|---|
| Who triggers it? | Human creator OR community issue (explicit ask) | GitHub Actions cron (autonomous) |
| When does it run? | Inside a normal evolve session, on demand | Hourly cron at :30, gated by 5-session counter + 24h cooldown |
| What signals does it use? | The user's request | Past-session evidence (learnings, journal, audit-log) |
| Recurrence gate? | No (human is in the loop) | Yes (≥3 sessions for create) |
| Diff-scope guard? | None — runs in evolve session | Yes — scripts/skill_evolve.sh enforces |
| Auto-commit? | Yes (inside evolve session's commit flow) | Yes (after diff-scope + build/test gates) |
Rule of thumb: if no human asked, you're not creating a skill — you're noticing a pattern. Write it to memory/learnings.jsonl with a pattern_key and let skill-evolve pick it up on the next cycle.
scripts/skill_evolve.sh cycle. Use the Create branch in skills/skill-evolve/SKILL.md instead — it has the right gates (recurrence, dedup, ≤25 cap).pattern_key; skill-evolve owns autonomous creation.skills/.origin: marketplace or origin: gh:author/repo)Ask (or infer from issue) — and write down explicit answers before writing any code:
bash, read_file, write_file, edit_file, list_files, search, rename_symbol, ask_user, todo, sub_agent)origin:| Asker | Use of skill | origin: | core: true? |
|---|---|---|---|
| Human creator (Yuanhao) | Foundational capability, not delegated to autonomous evolution | creator | yes |
| Human creator | Useful but yoyo-evolvable later | creator | no |
| Yoyo (during issue response) | Domain capability for yoyo's own future use | yoyo | no |
| External source | Installed third-party skill | marketplace (or gh:author/repo) | no |
The default if you're unsure: origin: yoyo for yoyo-decided creations, origin: creator for human-driven creations. Never default to marketplace.
HARD PRECONDITION on origin: marketplace / origin: gh:… (closes a backdoor — these origins are off-limits to skill-evolve, so they must come from a real upstream, not be self-granted):
## Source section.<source> and you can quote that statement.If neither holds, refuse and pick creator or yoyo instead. A skill yoyo wrote itself but tagged marketplace would be a permanent un-evolvable artifact — that's a hole in the safety design.
Format: <verb>-<object> (e.g., bisect-flaky-test, compose-changelog, triage-pr). Single-word names are okay only for genuinely-broad scopes (research, release).
Check for collision before going further:
ls skills/ | grep -i "<your-name-stem>"If a similar name exists, stop and ask whether to refine the existing one instead — the answer is usually yes.
This is the most important field. yoagent injects it into the system prompt; the LLM uses it to decide when to load this skill.
Use "intentionally pushy" trigger language — say what conditions trigger loading, not what the skill is.
| WEAK (descriptive) | STRONG (pushy) |
|---|---|
| "A skill for working with flaky tests" | "Investigate flaky tests by isolating, repeatedly running, and bisecting recent commits" |
| "Helps with releases" | "Validate readiness and publish to crates.io: gate checks (build/test/clippy/fmt) before any cargo publish" |
Hard cap: 200 chars. The Hermes ecosystem documented description-truncation failures (#13944) at higher lengths.
origin: yoyo)For origin: yoyo skills, list 3–5 distinctive substrings that would appear in a session's audit.jsonl IF this skill were used. skill-evolve uses these to compute last_used / uses / wins.
Examples:
release skill: ["cargo publish", "crates.io", "git tag v"]social skill: ["gh api graphql", "discussion", "addDiscussionComment"]Skip the keywords: field for origin: creator skills (skill-evolve can't refine them anyway).
Choose the template that matches origin:.
For origin: creator:
---
name: <name>
description: <pushy description ≤200 chars>
tools: [<subset of yoagent tools>]
core: true
origin: creator
---
# <Title>
## When to use
<concrete trigger conditions — when should the agent reach for this?>
## Quick reference
<one-screen cheat sheet — verbs, file paths, common commands>
## Procedure
<numbered steps the agent should follow>
## Pitfalls
<known failure modes — what to watch out for>
## Verification
<how the agent confirms success>For origin: yoyo:
---
name: <name>
description: "[CANDIDATE — unreviewed] <pushy description ≤200 chars>"
tools: [<subset of yoagent tools>]
origin: yoyo
status: candidate
score: 0.5
uses: 0
wins: 0
last_used: null
last_evolved: <today, YYYY-MM-DD>
parent_pattern_key: <kebab-case verb.object — describes the recurring pattern this skill addresses>
keywords: ["<distinctive 1>", "<distinctive 2>", "<distinctive 3>"]
---
# <Title>
(same body sections as above)The [CANDIDATE — unreviewed] description prefix is critical for origin: yoyo skills — it tells future sessions to treat the skill as experimental until it proves itself (≥2 successful invocations → status: active).
Run all of these. If any fails, fix before committing — do not push a malformed skill.
First, set the skill name as a shell variable so the rest of the block is copy-paste-safe (avoids the trap of literal <name> strings reaching the shell):
export SKILL_NAME="<your-kebab-case-name>" # e.g., bisect-flaky-test
test -d "skills/$SKILL_NAME" || { echo "ERROR: skills/$SKILL_NAME doesn't exist"; exit 1; }# YAML frontmatter parses, ≤1900 chars (defends against Hermes #7390 truncation)
python3 - "$SKILL_NAME" <<'PYEOF'
import re, sys
name = sys.argv[1]
content = open(f"skills/{name}/SKILL.md").read()
m = re.match(r"---\n(.*?)\n---\n", content, re.DOTALL)
if not m:
sys.exit("ERROR: no frontmatter")
fm = m.group(1)
if len(fm) > 1900:
sys.exit(f"ERROR: frontmatter too long: {len(fm)} chars (cap 1900)")
# Crude key:value sanity
for line in fm.splitlines():
if line.strip() and ":" not in line:
sys.exit(f"ERROR: invalid frontmatter line: {line!r}")
print("frontmatter OK")
PYEOF
# Description ≤200 chars
desc=$(grep '^description:' "skills/$SKILL_NAME/SKILL.md" | head -1 | sed 's/^description: *//')
[ "${#desc}" -le 200 ] || { echo "ERROR: description ${#desc} chars > 200"; exit 1; }
# Body ≤5000 words (matches skill-evolve's cap)
body_words=$(awk '/^---$/{n++; next} n>=2' "skills/$SKILL_NAME/SKILL.md" | wc -w)
[ "$body_words" -le 5000 ] || { echo "ERROR: body $body_words words > 5000"; exit 1; }
# Directory name matches frontmatter name
fm_name=$(grep '^name:' "skills/$SKILL_NAME/SKILL.md" | head -1 | sed 's/^name: *//' | tr -d '"' )
[ "$fm_name" = "$SKILL_NAME" ] || { echo "ERROR: dirname/name mismatch: dir=$SKILL_NAME fm=$fm_name"; exit 1; }cargo test --quiet --test integration skills_directory_loads_via_yoagent_skillsetThis regression test loads every skills/*/SKILL.md via yoagent::skills::SkillSet::load. If your new skill breaks parsing, the test fails immediately. If it fails, do not commit — fix the frontmatter first.
# Reuse $SKILL_NAME from step 7
git add "skills/$SKILL_NAME/"
git commit -m "skill-creator: add $SKILL_NAME (origin: <creator|yoyo|marketplace>)"The commit goes into the current evolve session's commit history. No separate push — the evolve session's normal end-of-session push will carry it.
If you (yoyo) created this skill in response to a community issue, also write a journal entry explaining what was added and why. This is what communicate skill is for.
origin: yoyo for skills the human creator explicitly asked for. Those are origin: creator (and probably core: true). The reverse is also true — don't set origin: creator on something yoyo decided to make.keywords: for origin: yoyo skills. Without keywords, skill-evolve can't compute usage signals; the skill becomes invisible to the scoring loop.A skill is well-formed when:
skills_directory_loads_via_yoagent_skillset passes.name: frontmatter field.origin: yoyo skills: keywords: has ≥3 entries.cargo build and cargo test gates that follow your commit are still green.skill-creator includes synthetic prompts + grader subagent + benchmark.json aggregation. That capability lives in skill-evolve's Refine action (steps R1–R6) where the snapshot+A/B pattern can compare a candidate against the prior version. Adding it to skill-creator would duplicate; new skills don't have a "prior version" to A/B against anyway.git diff.If you find yourself wanting any of these capabilities, ask yourself first whether you're really inside a skill-evolve cycle.
© yologdev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/skill-creator of yologdev/yoyo-evolve.
Open the folder on GitHubat commit 637e940
Yoyo 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 | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Yoyo Skill Creator this skillyologdev/yoyo-evolve | 1.9k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Skill CreatorAzure/azqr | 794 | 89 repos | ~8.2k | Automated safety check: Pass | Apache-2.0 | |
| Claude Code Skill Developer Guidediet103/claude-code-infrastructure-showcase | 10k | 10 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Darwin Skill Optimizeralchaincyf/darwin-skill | 6.2k | 1 repos | ~4.7k | Automated safety check: Pass | MIT | |
| Claude Code Command Developmentanthropics/claude-plugins-official | 37k | 10 repos | ~4.8k | Automated safety check: Pass | Apache-2.0 | |
| Claude Code Plugin Structureanthropics/claude-plugins-official | 37k | 10 repos | ~3.4k | Automated safety check: Pass | Apache-2.0 |
Azure/azqr
Create new skills, modify and improve existing skills, and measure skill performance.
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.
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.
anthropics/claude-plugins-official
Explains how to write Claude Code slash commands: Markdown files with YAML frontmatter, arguments, file references, bash context and interactive prompts.
anthropics/claude-plugins-official
Explains the directory layout, plugin.json manifest and component organization of a Claude Code plugin, including auto-discovery and portable paths.
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.
yologdev/yoyo-evolve
Diagnoses a recurring failure such as a stuck task, repeated CI error or frequent reverts by sending sub-agents through the logs and returning one root-cause diagnosis.
yologdev/yoyo-evolve
Runs a structured critique of code, architecture or APIs to surface what familiarity hides, such as panics, security holes and design debt.
yologdev/yoyo-evolve
Sets a warm, plain-spoken voice for an agent's journal entries and GitHub issue replies, with rules on openings, jargon, honesty and endings.
yologdev/yoyo-evolve
Builds a structural map of a large or unfamiliar codebase by dispatching sub-agents to summarize regions, keeping the main context small.
yologdev/yoyo-evolve
Decides when a Rust crate is due for a release and gates publishing to crates.io, using a short git-based cadence check run at the start of a session.
yologdev/yoyo-evolve
Sets ground rules for a coding agent that edits its own Rust source: read the code and journal first, write tests first, commit small changes and check compilation after each file.
Categories
Scaffolds a new yoyo skill on request with correct frontmatter and validation, and explains when to use it instead of the autonomous skill-evolve cycle. This skill is for creating one new yoyo skill on demand, in answer to an explicit request from the human creator or from a community issue. It generates the frontmatter, validates it and writes the skill to disk.
Yoyo Skill Creator fits situations like: A human or community issue asks for a new yoyo skill; scaffolding a skill with valid frontmatter and writing it to disk; installing a third-party skill from outside the repository.
Run `npx skills add yologdev/yoyo-evolve --skill skill-creator -a claude-code`. Or copy the skill folder (skills/skill-creator in yologdev/yoyo-evolve) into .claude/skills/skill-creator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add yologdev/yoyo-evolve --skill skill-creator -a codex`. Or copy the skill folder (skills/skill-creator in yologdev/yoyo-evolve) into .agents/skills/skill-creator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add yologdev/yoyo-evolve --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.
Going by SKILL.md and its folder, Yoyo Skill Creator needs the command-line tools its instructions call (cargo, git and python3). Our summary lists: A yoyo-evolve checkout with a skills folder.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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. Review the folder before installing.
Yoyo Skill Creator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Yoyo Skill Creator: Skill Creator (Azure/azqr, 794 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, 37k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
yologdev (a GitHub user) maintains it in yologdev/yoyo-evolve, which has 1,888 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 7, 2026.
Source: yologdev/yoyo-evolve on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.