agentleFS
juandelossantosjuandelossantos/another-agent-skills/skills/skill-creator/SKILL.md

skill-creator

Skill1 starsChanged 11 days agoMITView on GitHub

Generate new agent skills from a workflow description: SKILL.md with frontmatter, workflow, examples, and eval cases. Use when creating from a description. Do NOT use for modifying existing skills.

We split this skill into the rules it gives an agent

7 rules. 0 are common, 2 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 183 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Ask the user for a description of the workflow.

    line 48
  2. Very specific:

    Use the template in templates/skill-template.md.

    line 79
  3. Very specific:

    Keep total ≤250 lines. If content exceeds, move detail to references/

    line 85
  4. Very specific:

    Create 7 eval cases in evals/:

    line 89
  5. Very specific:

    All cases must validate against scripts/eval/schema.json.

    line 97
  6. Distinctive:

    Run these checks and report results to the user:

    line 113
  7. Very specific:

    All must pass before presenting the result.

    line 122

“Common” is measured: kept by at least 6 in 10 of the 183 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Skill Creator

Generate production-ready skills from descriptions.

→ See guides/WORKFLOW-GUIDE.md for the complete input-to-output workflow. → See guides/EVAL-CASES-GUIDE.md for eval case format and quality criteria.

Creates a complete skill directory with SKILL.md, eval cases, and progressive disclosure structure. The generated skill is always tier draft — human review required before promotion to action-allowed.

When to Use

  • Need a new skill and don't want to write SKILL.md from scratch
  • Have a clear description of the workflow the skill should execute
  • Want a skill with eval cases included from the start
  • Rapid prototyping of new capabilities

Output Contract

ArtifactFormatLocationQuality Criteria
New skill directorySKILL.md (Markdown) + eval cases (JSONL) + optional referencesskills/<skill-name>/Description passes all 6 Check 15 criteria (verb-led, triggers front-loaded, anti-trigger, ≤200 chars, 3+ triggers, no jargon), SKILL.md ≤250 lines, 7 eval cases (3 trigger + 2 golden + 2 adversarial), all pass skill-lint and eval runners, tier = draft

When NOT to Use

  • Modifying an existing skill (use skill-improver)
  • One-off tasks that won't be reused as skills
  • Creating skills for trivial workflows (better to write manually)

Workflow

Step 1: Collect Description

Ask the user for a description of the workflow. Collect:

  • What the skill does (one sentence, verb-led, ≤200 chars)
  • Trigger keywords (must appear in first 60 chars of description)
  • Non-triggers (must produce a "Do NOT use for..." anti-trigger clause)
  • Trigger scenarios (2-3 concrete examples of when to use)
  • Workflow steps (3-5 ordered steps)
  • Audience (all-engineers, frontend, backend, etc.)
  • Allowed tools (Read, Bash, Write, Edit)

The generated description MUST pass all 6 quality criteria (Check 15):

  1. ✅ Verb-led opening (Build, Fix, Design, etc.)
  2. ✅ Trigger keywords in first 60 chars
  3. ✅ Anti-trigger clause (Do NOT use for...)
  4. ✅ ≤200 chars
  5. ✅ 3+ distinct trigger keywords
  6. ✅ No internal jargon (no references to other skills)

Step 2: Generate Skill Name

Derive name from the description:

DescriptionGenerated Name
"Review Docker security configs"docker-security-review
"Generate commit messages from diffs"commit-message-generator
"Check API responses for schema compliance"api-schema-validator

Rules: kebab-case, gerund form preferred, no vendor prefixes, no generic names.

Step 3: Generate SKILL.md

Use the template in templates/skill-template.md. Fill in:

  1. Frontmatter YAML (name, description, version 1.0.0, license MIT, compatibility all, allowed-tools from input, tier draft)
  2. Description must pass all 6 criteria: verb-led, trigger keywords front-loaded, anti-trigger clause, ≤200 chars, 3+ distinct triggers, no internal jargon
  3. Body: When to Use, When NOT to Use, Workflow, Examples, Output Format
  4. Keep total ≤250 lines. If content exceeds, move detail to references/

Step 4: Generate Eval Cases

Create 7 eval cases in evals/:

FileCasesPurpose
trigger.jsonl2 positive, 1 negativeVerify correct activation
golden.jsonl2 with rubricVerify output quality
adversarial.jsonl1 rephrase, 1 boundaryVerify trigger robustness

All cases must validate against scripts/eval/schema.json.

Step 5: Create Directory Structure

skills/<skill-name>/
├── SKILL.md
├── evals/
│   ├── trigger.jsonl
│   ├── golden.jsonl
│   └── adversarial.jsonl
└── references/       (optional — add if SKILL.md > 200 lines)

Step 6: Verify

Run these checks and report results to the user:

bash scripts/skill-lint.sh
bash scripts/eval/run-evals.sh --skill <name>
bash scripts/eval/run-golden.sh --skill <name>
bash scripts/eval/run-adversarial.sh --skill <name>

All must pass before presenting the result. skill-lint.sh includes Check 15 (description quality) — if the generated description fails any of the 6 criteria, fix it before proceeding.

Step 7: Present to User

Output summary:

✅ Created skill: <name>
   Path: skills/<name>/
   Lines: <N> (≤250 ✅)
   Evals: 3 trigger + 2 golden + 2 adversarial
   Status: DRAFT — review before action-allowed
   → Ready for review. Need changes?

Examples

Input: "A skill that reviews Docker Compose files for security issues. It should check exposed ports, privileged mode, and env variables."

Generated structure:

skills/docker-compose-security/
├── SKILL.md
└── evals/
    ├── trigger.jsonl
    ├── golden.jsonl
    └── adversarial.jsonl

trigger.jsonl:

{"case_id":"trigger_pos_001","type":"trigger_positive","input":"Check this docker-compose.yml for security issues","expected_skill":"docker-compose-security"}
{"case_id":"trigger_pos_002","type":"trigger_positive","input":"Review the Docker Compose security configuration","expected_skill":"docker-compose-security"}
{"case_id":"trigger_neg_001","type":"trigger_negative","input":"Build the Docker image","expected_skill":"docker-compose-security"}

Anti-Patterns

  • Generating skills without eval cases → "a skill without a test is a hope"
  • Using tier action-allowed by default → always start at draft
  • Adding vendor prefixes to skill names (claude-, gemini-) → violates Rule 0k
  • Creating skills that duplicate existing ones → check skills/ directory first
  • Generating SKILL.md > 250 lines → move content to references/

References

  • skills/skill-creator/templates/skill-template.md — base template for generated skills
  • scripts/eval/schema.json — eval case schema for validation
  • scripts/skill-lint.sh — linter for generated skills
  • docs/EVAL-GUIDE.md — complete eval system documentation (format, tiers, coverage)
  • Existing skills in skills/ — reference implementations

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.