Core Concepts
Skills
Skills are reusable knowledge patterns extracted from your memories. They codify what you've learned into structured guidance that can be applied to future similar situations.
What is a Skill?
A skill contains structured knowledge that can be suggested when relevant:
{
"id": "skill-xyz789",
"name": "Cloudflare Workers CORS Configuration",
"description": "How to properly configure CORS headers for Cloudflare Workers",
"domain": ["cloudflare", "api"],
"instructions": "When setting up CORS for Cloudflare Workers:\n\n1. Add Access-Control-Allow-Origin header...",
"triggers": ["cors", "cloudflare workers cors", "access-control headers"],
"status": "active",
"version": 1,
"source_memories": ["mem-1", "mem-2", "mem-3"]
}
Key Fields
- name: Human-readable identifier
- description: Brief summary of what the skill covers
- domain: Array of domains where this skill applies
- instructions: The actual knowledge - markdown formatted
- triggers: Phrases/contexts that should suggest this skill
- status:
draft,active, ordeprecated - source_memories: Memories this skill was derived from
Skill Lifecycle
Skills follow a governance workflow:
Draft → Active → Deprecated
↓
Rejected
Draft
New skills start as drafts. They:
- Are not suggested automatically
- Can be reviewed and edited
- Require explicit approval to activate
Active
Approved skills become active. They:
- Are suggested when context matches
- Can be deprecated if outdated
- Track success/failure outcomes
Deprecated
Old skills can be deprecated. They:
- Are no longer suggested
- Can specify a successor skill
- Remain in history for reference
Rejected
Skills that don't meet quality standards:
- Won't become active
- Include rejection reason
- Can be edited and resubmitted
Creating Skills
Manual Creation
Create a skill directly:
"create a skill called 'Git Commit Standards' with instructions for writing good commit messages"
{
"name": "Git Commit Standards",
"description": "Guidelines for writing clear commit messages",
"domain": ["git", "development"],
"instructions": "When writing commit messages:\n\n1. Use imperative mood...",
"triggers": ["commit message", "git commit", "writing commits"]
}
Generated from Memories
Generate skills from patterns:
"analyze patterns in the testing domain"
"generate skill from those testing memories"
The system synthesizes instructions from the source memories.
Managing Skills
List Skills
"list all active skills"
"list skills in the cloudflare domain"
"show draft skills awaiting approval"
Get Skill Details
"show the Git Commit Standards skill"
"get skill by id skill-xyz789"
Update Skills
"update the Git Commit Standards skill to include info about conventional commits"
Updates create new versions while preserving history.
Search Skills
"search for skills about API testing"
Uses semantic search to find relevant skills.
Approval Workflow
Why Approval Matters
Skills require approval because:
- They influence Claude's future behavior
- Auto-learning could encode bad patterns
- You maintain control over your knowledge base
Reviewing Pending Skills
"show pending skills"
Review the skill content before approving:
{
"pending_skills": [
{
"id": "skill-abc",
"name": "Database Migration Workflow",
"status": "draft",
"instructions": "...",
"source_memories": ["mem-1", "mem-2"]
}
]
}
Approving
"approve skill skill-abc"
"approve the Database Migration Workflow skill with note 'reviewed and verified'"
Rejecting
If a skill isn't useful:
"reject skill skill-abc because the instructions are too vague"
Using Skills
Automatic Suggestions
When you ask for help in a relevant context, active skills are suggested:
User: "I need to set up CORS for my Cloudflare Worker"
Claude: Based on your "Cloudflare Workers CORS Configuration" skill...
Explicit Requests
"suggest skills for API debugging"
"get context for deployment tasks"
Reporting Outcomes
After applying a skill, report whether it helped:
"report that the CORS skill was successful"
"report skill skill-xyz789 outcome failure with note 'outdated information'"
This feedback improves future suggestions.
Version History
Skills maintain version history for accountability:
"show history for skill skill-xyz789"
{
"versions": [
{ "version": 1, "created": "2024-01-01", "change": "Initial creation" },
{ "version": 2, "created": "2024-01-15", "change": "Added CORS preflight handling" }
]
}
Rollback
If an update introduced problems:
"rollback skill skill-xyz789 to version 1"
Deprecation
When skills become outdated:
"deprecate skill skill-old123 because the API changed"
"deprecate skill skill-old123 with successor skill-new456"
Deprecated skills:
- Stop being suggested
- Remain in history
- Can link to replacement skills
Conflict Detection
Check for contradictory skills:
"detect conflicts in the cloudflare domain"
The system finds skills with overlapping triggers but different instructions.
Finding Similar Skills
Before creating a new skill:
"find skills similar to 'API Rate Limiting'"
Prevents duplicate skills with different names.
Skill Best Practices
Write Clear Instructions
Good skill instructions are:
- Step-by-step when appropriate
- Specific about when to apply
- Include examples where helpful
Use Descriptive Triggers
Triggers help match skills to contexts:
{
"triggers": [
"cors configuration",
"access-control headers",
"cloudflare cors",
"cross-origin request"
]
}
Keep Skills Focused
One skill = one concept. Don't create "Everything About Cloudflare" - create specific skills for CORS, deployment, D1, etc.
Review Generated Skills
AI-generated skills are a starting point. Review and refine before approving.
Deprecate Don't Delete
When skills become outdated, deprecate them rather than deleting. This preserves history and can link to successors.