Claude Code Plugins

Community-maintained marketplace

Feedback

Guide for creating custom Claude Code skills. Use when user wants to create a new skill, understand skill structure, or extend Claude's capabilities with custom tools.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name Skill Creator
description Guide for creating custom Claude Code skills. Use when user wants to create a new skill, understand skill structure, or extend Claude's capabilities with custom tools.
source base

Skill Creator

Create custom skills to extend Claude Code's capabilities.

When to Use

Use this skill when the user wants to:

  • Create a new custom skill
  • Understand skill file structure
  • Add domain-specific knowledge
  • Build reusable tools or workflows
  • Package common tasks into skills
  • Share skills with their team

Skill Structure

A skill is a directory containing:

my-skill/
├── SKILL.md          # Required: skill documentation and instructions
└── [optional files]  # Scripts, configs, templates, etc.

SKILL.md Format

---
name: Skill Name
description: Brief description. When Claude should use this skill.
source: base|personal|team
---

# Skill Name

Detailed description of what this skill does.

## When to Use

Specific triggers that should activate this skill:
- User says X
- User wants to do Y
- User asks about Z

## [Additional sections as needed]

Usage examples, API references, commands, etc.

Frontmatter Fields

name: Display name for the skill
description: Short description (1-2 sentences) including WHEN to use it
source: base (built-in) | personal (private) | team (shared)

Location

Skills should be placed in:

  • ~/.claude/skills/ - Your personal skills
  • Project .claude/skills/ - Project-specific skills
  • library/skills/ - Bundled skills (for maintainers)

Skill Best Practices

1. Clear Triggers

Be explicit about when Claude should use the skill:

## When to Use

Use this skill when the user:
- Mentions "kubernetes" or "k8s"
- Wants to deploy to production
- Asks about cluster status

2. Actionable Instructions

Provide concrete commands and examples:

## Commands

Deploy to staging:
```bash
kubectl apply -f deploy/staging/

Check pod status:

kubectl get pods -n production

### 3. Include Context

Add domain knowledge Claude needs:

```markdown
## Our Infrastructure

- Staging: us-east-1 cluster
- Production: multi-region (us-east-1, eu-west-1)
- Database: RDS PostgreSQL 14
- CI/CD: GitHub Actions → ArgoCD

4. Error Handling

Document common issues and solutions:

## Common Issues

**Pod won't start**: Check image pull secrets
```bash
kubectl describe pod <name> -n <namespace>

Database connection fails: Verify RDS security groups


## Examples

### Simple Documentation Skill

```markdown
---
name: API Documentation
description: Company API documentation. Use when user asks about API endpoints, authentication, or integration.
source: team
---

# Company API

## Authentication

All requests require Bearer token:
```bash
curl -H "Authorization: Bearer $TOKEN" https://api.company.com/v1/users

Endpoints

  • GET /v1/users - List users
  • POST /v1/users - Create user
  • GET /v1/users/:id - Get user details

### Skill with Scripts

```markdown
---
name: Database Backup
description: PostgreSQL backup procedures. Use when user wants to backup or restore database.
source: team
---

# Database Backup

## Create Backup

Run the backup script:
```bash
~/.claude/skills/db-backup/backup.sh production

This creates: backups/db-YYYY-MM-DD.sql.gz

Restore

~/.claude/skills/db-backup/restore.sh backups/db-2024-01-15.sql.gz

With accompanying `backup.sh`:
```bash
#!/bin/bash
ENV=$1
pg_dump -h $DB_HOST -U $DB_USER $DB_NAME | gzip > backups/db-$(date +%Y-%m-%d).sql.gz

Workflow Skill

---
name: Release Process
description: Production release workflow. Use when user wants to create a release or deploy to production.
source: team
---

# Release Process

## Steps

1. **Create release branch**
```bash
git checkout -b release/v1.2.3
  1. Update version
npm version 1.2.3
  1. Run full test suite
npm run test:all
  1. Create PR to main
  • Require 2 approvals
  • All checks must pass
  • Squash and merge
  1. Deploy via GitHub Actions Tag will trigger automatic deployment to production.

Rollback

kubectl rollout undo deployment/app -n production

## Testing Your Skill

1. Create skill in `~/.claude/skills/my-skill/`
2. Invoke Claude Code: `claude`
3. Trigger your skill by asking relevant questions
4. Check that Claude uses the skill instructions
5. Iterate on the documentation

## Tips

- **Be specific**: Vague instructions lead to inconsistent behavior
- **Use examples**: Show actual commands and outputs
- **Update regularly**: Keep skills current with your stack
- **One purpose per skill**: Better than large multi-purpose skills
- **Test thoroughly**: Try various phrasings to trigger the skill
- **Include links**: Reference external docs when helpful
- **Use markdown**: Code blocks, lists, headers for clarity

## Skill Ideas

- Team coding standards and linting rules
- Deployment procedures for different environments
- API documentation and integration guides
- Database schema and migration procedures
- Testing frameworks and coverage requirements
- Security policies and compliance checks
- Monitoring and alerting setup
- Incident response procedures
- Onboarding checklists for new team members
- Common troubleshooting guides

## Resources

- Claude Code docs: https://docs.claude.com/claude-code
- Skills directory: ~/.claude/skills/
- Example skills: library/skills/ in agent-helpers