Skill creator
Create new Claude Code skills for the Karma ecosystem. Use when user says "create a skill", "build a new skill", "scaffold a skill", or "design a skill". Guides through intent capture, SKILL.md writing, validation, and packaging.From its SKILL.md
npx -y skills add show-karma/skills --skill skill-creatorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
6.3 KB, as published. Nobody here has run it
Karma Skill Creator
Create well-structured Claude Code skills for the Karma ecosystem.
Skill Creation Process
- Understand the skill with concrete examples
- Plan reusable skill contents (references, assets)
- Initialize the skill directory structure
- Write the skill (implement resources and SKILL.md)
- Validate against the checklist before shipping
- Iterate based on real usage
Step 1: Understand the Skill
Ask the user for concrete examples of how the skill will be used:
- "What should this skill do? Can you give 2-3 example prompts?"
- "What would a user say that should trigger this skill?"
- "What Karma-specific context does this need?" (grants, funding maps, ecosystem data)
Step 2: Plan Reusable Contents
For each example, identify what reusable resources would help:
| Resource Type | When to Use | Example |
|---|---|---|
references/ | Domain knowledge Claude needs | references/gap-schema.md |
assets/ | Files used in output | assets/report-template.md |
Step 3: Initialize the Skill
Create the skill directory under skills/:
skills/<skill-name>/
├── SKILL.md # Required
├── references/ # Optional
└── assets/ # Optional
Naming rules:
- kebab-case, lowercase letters, digits, and hyphens only
- Max 64 characters
- Descriptive:
grant-milestone-tracker, nottracker
Step 4: Write the Skill
How Skills Load (Progressive Disclosure)
Skills use a three-level system — understanding this is critical for writing effective skills:
- YAML frontmatter — always loaded into Claude's system prompt. This is how Claude decides whether to activate the skill. Keep it lean: just
nameanddescription. - SKILL.md body — loaded only when Claude thinks the skill is relevant. Contains the full instructions.
- Linked files (
references/,assets/) — Claude navigates to these on demand. Use for detailed docs, templates, and examples.
The implication: frontmatter must be self-sufficient for triggering. The body must be self-sufficient for execution. Reference files are for depth.
Writing the Description (Most Important Field)
The description field determines whether your skill triggers. Get this right.
Structure: [What it does] + [When to use it] + [Key capabilities]
Rules:
- Under 1024 characters
- MUST include both what the skill does AND when to use it (trigger phrases)
- Include specific phrases users would actually say
- No XML angle brackets (
<or>)
Good examples:
# Specific, with trigger phrases
description: Analyzes grant milestone reports and generates
compliance summaries. Use when user asks to "review milestones",
"check grant progress", or "generate a milestone report".
# Clear scope with negative triggers
description: Advanced data analysis for CSV files. Use for
statistical modeling, regression, clustering. Do NOT use for
simple data exploration (use data-viz skill instead).
Bad examples:
# Too vague — won't trigger reliably
description: Helps with projects.
# Missing triggers — when should Claude load this?
description: Creates sophisticated multi-page documentation systems.
# Too technical, no user-facing triggers
description: Implements the Project entity model with hierarchical
relationships.
Debugging tip: Ask Claude "When would you use the [skill-name] skill?" — it will quote the description back. Adjust based on what's missing.
SKILL.md Body
---
name: skill-name
description: What the skill does and when to use it. Include specific triggers.
---
The body contains instructions Claude will follow. Key principles:
Concise is key. Claude is already smart — only add what it doesn't know. Challenge each paragraph: "Does this justify its token cost?"
Set appropriate freedom levels:
- High freedom (text instructions): multiple valid approaches, context-dependent
- Medium freedom (pseudocode/parameterized scripts): preferred pattern with some variation
- Low freedom (exact scripts): fragile operations, consistency critical
Progressive disclosure: Keep SKILL.md under 500 lines. Split into reference files when approaching this limit.
Design Patterns
Consult these guides based on your skill's needs:
- Multi-step processes: See workflows.md for sequential and conditional patterns
- Output format/quality: See output-patterns.md for template and example patterns
What NOT to Include
- README.md, CHANGELOG.md, or other auxiliary docs
- "When to use" sections in the body (put this in the frontmatter description)
- Setup/testing procedures
- Information Claude already knows
Step 5: Validate Before Shipping
Run through this checklist before considering the skill done:
Structure:
- Folder named in kebab-case
-
SKILL.mdexists (exact casing) - YAML frontmatter has
---delimiters on both sides -
namefield: kebab-case, no spaces, no capitals - No XML angle brackets (
<>) anywhere in frontmatter - Skill name does not contain "claude" or "anthropic" (reserved)
- No
README.mdinside the skill folder
Description:
- Includes WHAT the skill does
- Includes WHEN to use it (trigger phrases)
- Under 1024 characters
- Trigger phrases match how users actually talk
Triggering:
- Triggers on obvious task requests
- Triggers on paraphrased requests
- Does NOT trigger on unrelated topics
Instructions:
- Instructions are clear and actionable
- Critical steps use explicit language, not vague guidance
- Error handling included for likely failure points
- References clearly linked (not inlined)
Step 6: Iterate
- Use the skill on real tasks
- Note struggles or inefficiencies
- Update SKILL.md or resources
Let the user's specifications guide the skill's domain and direction.