Agent skill

Yoyo Skill Creator

by yologdev in yologdev/yoyo-evolve

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.

MITAuto-check passedAgent Workflows

Install Yoyo Skill Creator

skills CLI
$ npx skills add yologdev/yoyo-evolve --skill skill-creator -a claude-code

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

GitHub CLI
$ gh skill install yologdev/yoyo-evolve 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/yologdev/yoyo-evolve.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/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
1.9k
Token cost
~3.1k tokens
SKILL.md length
1,307 words
Files
1
Skills in repo
15
Repo updated
First seen
Licence
MIT

At a glance

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.

  • Works in 10 steps: Capture intent → Determine origin → Pick a kebab-case name → …
  • A human or community issue asks for a new yoyo skill
  • SKILL.md covers skill-creator vs skill-evolve, When NOT to use this skill, When to use this skill and Procedure, plus 3 more sections
  • Calls cargo, git and python3

What it does

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.

When your agent uses it

  • 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

Example prompts

  • “Add a skill that reviews changelog entries before each release.”
  • “Create a new skill for triaging community issues, as requested in this GitHub issue.”
  • “Install this third-party skill from gh:author/repo into our skills folder.”

Requirements

  • A yoyo-evolve checkout with a skills folder

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Capture intent
  2. Determine origin
  3. Pick a kebab-case name
  4. Write the description (≤200 chars)
  5. Pick keywords (only if origin: yoyo)
  6. Generate the SKILL.md scaffold
  7. Validate before commit
  8. Smoke-test the skill loads via yoagent
  9. Commit
  10. Note in the journal

What it can do on your machine

Read from SKILL.md and the folder at commit 637e940. 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

    Shell commands in SKILL.md call:

    • cargo
    • git
    • python3

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

  • Network

    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.

  • 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

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.

Always · name and description, kept in context so the agent knows when to use it
~49
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from yologdev/yoyo-evolve at commit 637e940, republished under its MIT licence (© yologdev). 1,307 words, ~3,109 tokens.

Download SKILL.mdSave it as .claude/skills/skill-creator/SKILL.md (or your agent's skills folder).
name
skill-creator
description
Scaffold a new yoyo skill when a human or community issue asks for one ("add a skill for X", "create a skill that does Y"). Generates correct frontmatter, validates, writes to disk.
tools
bash, read_file, write_file, sub_agent
core
true
origin
creator

Skill Creator

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.

skill-creator vs skill-evolve

These are complementary, not redundant. Use the right one:

Questionskill-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 demandHourly cron at :30, gated by 5-session counter + 24h cooldown
What signals does it use?The user's requestPast-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 sessionYes — 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.

When NOT to use this skill

  • You're inside a 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).
  • You noticed a recurring pattern but no one asked. Write a learning with pattern_key; skill-evolve owns autonomous creation.
  • The user asked for a one-off helper that won't be invoked again. Just write it inline; don't litter skills/.

When to use this skill

  • The human creator (Yuanhao) tells you "scaffold a new skill for X"
  • A community issue says "please add a skill for X" and you decide during a normal evolve session that the request is concrete enough to act on
  • You're installing a third-party skill from outside the repo (uses origin: marketplace or origin: gh:author/repo)

Procedure

1. Capture intent

Ask (or infer from issue) — and write down explicit answers before writing any code:

  • What does this skill do? (one sentence)
  • When should it trigger? (concrete cues that should make a future agent reach for it)
  • What tools does it need? (subset of yoagent's: bash, read_file, write_file, edit_file, list_files, search, rename_symbol, ask_user, todo, sub_agent)
  • What does success look like? (how does the agent know the skill worked?)
2. Determine origin:
AskerUse of skillorigin:core: true?
Human creator (Yuanhao)Foundational capability, not delegated to autonomous evolutioncreatoryes
Human creatorUseful but yoyo-evolvable latercreatorno
Yoyo (during issue response)Domain capability for yoyo's own future useyoyono
External sourceInstalled third-party skillmarketplace (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):

  • The skill content MUST be downloaded in this same session from a verifiable URL (curl/git/gh). Record the URL in the skill's body under a ## Source section.
  • OR: Yuanhao explicitly typed in this session that the skill is being installed from <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.

3. Pick a kebab-case name

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:

bash
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.

4. Write the description (≤200 chars)

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.

5. Pick keywords (only if 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).

6. Generate the SKILL.md scaffold

Choose the template that matches origin:.

For origin: creator:

yaml
---
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:

yaml
---
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).

Show full SKILL.md (516 more words)Show less
7. Validate before commit

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):

bash
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; }
bash
# 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; }
8. Smoke-test the skill loads via yoagent
bash
cargo test --quiet --test integration skills_directory_loads_via_yoagent_skillset

This 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.

9. Commit
bash
# 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.

10. Note in the journal

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.

Pitfalls

  • Don't auto-create skills mid-session without an explicit request. Yoyo's autonomous self-creation belongs in skill-evolve, which has the right safety gates (recurrence, cooldown, dedup, blast-radius limits). Using skill-creator without a clear human ask is a hard rule violation.
  • Don't set 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.
  • Don't omit keywords: for origin: yoyo skills. Without keywords, skill-evolve can't compute usage signals; the skill becomes invisible to the scoring loop.
  • Don't create a skill that overlaps an existing one. ≥3 keyword overlap with an existing skill's "When to use" → refine that one instead. Same rule skill-evolve uses.
  • Don't skip step 7 validators. Silent frontmatter truncation, description routing failures, body-token blow-ups — all real failure modes documented in the Hermes ecosystem (#7390, #13944, #14405).
  • Don't write a skill body that exceeds 5000 words. Loaded into the prompt every session = cumulative token cost. Be brutal about brevity.

Verification

A skill is well-formed when:

  • The integration test skills_directory_loads_via_yoagent_skillset passes.
  • The skill's directory name matches the name: frontmatter field.
  • All required frontmatter fields are present (per origin tier — see step 6 templates).
  • Description ≤200 chars.
  • Frontmatter ≤1900 chars total.
  • Body ≤5000 words and contains the five sections: When to use / Quick reference / Procedure / Pitfalls / Verification.
  • For origin: yoyo skills: keywords: has ≥3 entries.
  • The cargo build and cargo test gates that follow your commit are still green.

What this skill deliberately does NOT do

  • No eval/benchmark pipeline. Anthropic's 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.
  • No browser eval viewer. Yoyo runs autonomously in CI; no browser. If you need to compare versions, use git diff.
  • No autonomous pattern detection. That is skill-evolve's job. Skill-creator runs only when explicitly invoked.
  • No retirement / deprecation logic. Lifecycle management is skill-evolve's job. Skill-creator only creates; it does not delete or downgrade.

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

Files

Just SKILL.md in skills/skill-creator of yologdev/yoyo-evolve.

Open the folder on GitHubat commit 637e940

Compare with similar skills

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.

Yoyo Skill Creator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Yoyo Skill Creator this skillyologdev/yoyo-evolve1.9k—~3.1kAutomated safety check: PassMIT
Skill CreatorAzure/azqr79489 repos~8.2kAutomated safety check: PassApache-2.0
Claude Code Skill Developer Guidediet103/claude-code-infrastructure-showcase10k10 repos~3.5kAutomated safety check: PassMIT
Darwin Skill Optimizeralchaincyf/darwin-skill6.2k1 repos~4.7kAutomated safety check: PassMIT
Claude Code Command Developmentanthropics/claude-plugins-official37k10 repos~4.8kAutomated safety check: PassApache-2.0
Claude Code Plugin Structureanthropics/claude-plugins-official37k10 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.

    794 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 10 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.

    37k 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.

    37k 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.

    65k GitHub stars~1k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed

More from yologdev/yoyo-evolve

All 15 skills in this repo
  • Analyze Trajectory

    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.

    1.9k GitHub stars~3.6k tokensUpdated today
    Auto-check passed
  • Blindspot Code Critique

    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.

    1.9k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Sets a warm, plain-spoken voice for an agent's journal entries and GitHub issue replies, with rules on openings, jargon, honesty and endings.

    1.9k GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Codebase Explorer

    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.

    1.9k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Crates.io Release Check

    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.

    1.9k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Agent Self-Evolution Rules

    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.

    1.9k GitHub stars~1.9k tokensUpdated today
    Auto-check: warnings

Categories

Questions about Yoyo Skill Creator

What does Yoyo Skill Creator do?

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.

When should I use Yoyo Skill Creator?

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.

How do I install Yoyo Skill Creator in Claude Code?

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.

How do I install Yoyo Skill Creator in Codex?

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.

Can I use Yoyo 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 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.

What does Yoyo Skill Creator need to run?

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.

Does Yoyo Skill Creator access the network?

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.

Is Yoyo 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. Review the folder before installing.

What licence does Yoyo Skill Creator use?

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.

How many tokens does Yoyo Skill Creator use?

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.

What are the alternatives to Yoyo Skill Creator?

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.

Who maintains Yoyo Skill Creator?

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.