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 |
|---|
| Domain knowledge Claude needs | |
| Files used in output | assets/report-template.md
|
Step 3: Initialize the Skill
Create the skill directory under
:
skills/<skill-name>/
├── SKILL.md # Required
├── references/ # Optional
└── assets/ # Optional
Naming rules:
- kebab-case, lowercase letters, digits, and hyphens only
- Max 64 characters
- Descriptive: , not
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 and .
- SKILL.md body — loaded only when Claude thinks the skill is relevant. Contains the full instructions.
- Linked files (, ) — 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
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:
yaml
# 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:
yaml
# 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
yaml
---
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:
Description:
Triggering:
Instructions:
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.