skill-creator
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.
More from show-karma/skills
find-funding-opportunities
Search the Karma Funding Map for funding programs (grants, hackathons, bounties, accelerators, VC funds, RFPs) via the public API. Use when user says "find grants", "search hackathons", "look for bounties", "explore funding", "programs on Optimism", "what can I apply to", "funding opportunities", or asks about programs over or under a budget.
30setup-agent
Set up or log in to Karma. Use when user says "set up agent", "configure API key", "connect to Karma", "login to Karma", "log in", or before first use of any Karma skill.
25project-manager
Manage projects, grants, milestones, and updates on the Karma protocol. Use when user says "create a project", "new project", "add a grant", "record funding", "add milestone", "complete milestone", "post an update", "project progress", "grant update", "update project", "edit project", "edit grant", "complete grant", "add roadmap milestone", "report impact", "endorse project", "add team member", "set up agent", "configure API key", "check payouts", "payout status", "payout history", "total disbursed", "view invoices", "download invoice", or any project management action.
19find-opportunities
Search the Karma Funding Map for funding programs (grants, hackathons, bounties, accelerators, VC funds, RFPs) via the public API. Use when user says "find grants", "search hackathons", "look for bounties", "explore funding", "programs on Optimism", "what can I apply to", "funding opportunities", or asks about programs over or under a budget.
8funding-program-manager
Create and manage funding programs on Karma — create programs in the registry, configure intake forms, apply to programs, manage reviewers, applications, milestones, payouts, grant agreements, and AI evaluation. Use when user says "create a program", "new funding program", "set up grants program", "configure intake form", "add form fields", "apply to program", "submit application", "apply for grant", "manage program", "list reviewers", "add reviewer", "remove reviewer", "review applications", "approve application", "reject application", "application status", "list applications", "milestone completions", "pending milestones", "create payout", "disbursement", "payout history", "grant agreement", "sign agreement", "evaluate application", "AI score", "application comment", "enable applications", "update program", or any funding program administration action.
7create-project
Create a new project on the Karma protocol. Use when user says "create a project", "new project", "register project", or "start a project on Karma".
6