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, or deprecated
  • 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.

Previous
Memories