APMSign in

>Agent Skill

@straydragon/agent-skills-expert

skilldevelopment

Expert for creating and managing Claude Code Agent Skills. Create skills with git submodule + sparse-checkout for source references, write SKILL.md with proper frontmatter, and follow best practices. Use when creating new skills, adding source references to skills, or managing skill configurations.

git
apm::install
$apm install @straydragon/agent-skills-expert
apm::skill.md
---
name: agent-skills-expert
description: Expert for creating and managing Claude Code Agent Skills. Create skills with git submodule + sparse-checkout for source references, write SKILL.md with proper frontmatter, and follow best practices. Use when creating new skills, adding source references to skills, or managing skill configurations.
---

# Agent Skills Expert

Expert for creating and managing Claude Code Agent Skills. Helps create skills that follow official specifications, including using Git Submodule + Sparse Checkout for source code references.

## 📚 Core Concepts

### What is an Agent Skill?

Agent Skill is an extensible capability module for Claude Code, containing:
- `SKILL.md` - Skill definition file (required)
- Supporting files - Documentation, scripts, templates, etc. (optional)
- `source/` - Source code reference directory (optional, using git submodule)

### Skill Storage Locations

- **Personal Skills**: `~/.claude/skills/skill-name/`
- **Project Skills**: `.claude/skills/skill-name/`

## 🔧 Skill Creation Workflow

### 1. Basic Skill Structure

```
skill-name/
├── SKILL.md              # Required: Skill definition
├── examples.md           # Optional: Example code
├── quick-reference.md    # Optional: Quick reference
├── SOURCE_STRUCTURE.md   # Optional: Source structure documentation
├── scripts/              # Optional: Helper scripts
└── source/               # Optional: Source code references
    └── repo-name/        # Git Submodule
```

### 2. SKILL.md Specification

```yaml
---
name: skill-name                    # Required: lowercase letters, numbers, hyphens, max 64 chars
description: Brief description...   # Required: Skill description, max 1024 chars
allowed-tools: Read, Grep, Glob     # Optional: Restrict available tools
---

# Skill Name

## Instructions
Clear usage instructions...

## Examples
Concrete usage examples...
```

**Description Best Practices**:
- Explain what the skill does
- Explain when to use the skill
- Include keywords for Claude to discover

### 3. Adding Source References (Git Submodule + Sparse Checkout)

#### Step 1: Add Submodule

```bash
cd ~/.claude/skills
git submodule add https://github.com/org/repo.git skill-name/source/repo-name
```

#### Step 2: Configure Sparse Checkout

```bash
cd skill-name/source/repo-name

# Initialize sparse-checkout
git sparse-checkout init --no-cone

# Set content to keep
git sparse-checkout set \
    /README.md \
    /docs/ \
    /src/ \
    /examples/
```

#### Step 3: Create SOURCE_STRUCTURE.md

Document the source structure, including:
- Sparse checkout configuration
- Directory structure explanation
- Key file locations
- Maintenance guide

## 📋 Sparse Checkout Configuration Guide

### Principles for Selecting Content to Keep

1. **Core source code** - Main API implementation
2. **Documentation** - README, docs directory
3. **Examples** - examples directory
4. **Configuration files** - pyproject.toml, package.json, etc.
5. **Tests** - Test cases showing usage patterns

### Content to Exclude

- Large resource files (images, videos)
- Build artifacts
- CI/CD configuration (usually not needed)
- Historical release notes

### Common Sparse Checkout Patterns

**Python Projects:**
```bash
git sparse-checkout set \
    /README.md \
    /LICENSE \
    /src/ \
    /docs/ \
    /examples/ \
    /tests/ \
    /pyproject.toml
```

**JavaScript/TypeScript Projects:**
```bash
git sparse-checkout set \
    /README.md \
    /LICENSE \
    /src/ \
    /docs/ \
    /examples/ \
    /package.json \
    /tsconfig.json
```

**Rust Projects:**
```bash
git sparse-checkout set \
    /README.md \
    /LICENSE \
    /src/ \
    /docs/ \
    /examples/ \
    /Cargo.toml
```

## 🛠️ Maintenance Operations

### Update Submodule

```bash
cd skill-name/source/repo-name
git pull origin main
```

### Modify Sparse Checkout Configuration

```bash
cd skill-name/source/repo-name

# Add new directory
git sparse-checkout add /new-dir/

# Reconfigure
git sparse-checkout set /dir1/ /dir2/ /file.md
```

### View Configuration

```bash
cd skill-name/source/repo-name
git sparse-checkout list
du -sh .  # Check size
```

### Troubleshooting Recovery

```bash
# Completely reset submodule
cd ~/.claude/skills
git submodule deinit -f skill-name/source/repo-name
rm -rf .git/modules/skill-name/source/repo-name
git submodule update --init skill-name/source/repo-name

# Reconfigure sparse-checkout
cd skill-name/source/repo-name
git sparse-checkout init --no-cone
git sparse-checkout set /directories-to-keep/
```

## 📝 Template Files

### SKILL.md Template

See [templates/SKILL_TEMPLATE.md](templates/SKILL_TEMPLATE.md)

### SOURCE_STRUCTURE.md Template

See [templates/SOURCE_STRUCTURE_TEMPLATE.md](templates/SOURCE_STRUCTURE_TEMPLATE.md)

## ✅ Checklist

### Creating New Skill

- [ ] Create skill directory `mkdir -p ~/.claude/skills/skill-name`
- [ ] Create SKILL.md (with correct frontmatter)
- [ ] Write clear description (include trigger keywords)
- [ ] Add usage instructions and examples
- [ ] Test that skill is correctly discovered

### Adding Source References

- [ ] Add git submodule
- [ ] Configure sparse-checkout
- [ ] Verify reasonable size (typically <100MB)
- [ ] Create SOURCE_STRUCTURE.md
- [ ] Update source access instructions in SKILL.md
- [ ] Commit all changes

### Maintenance

- [ ] Regularly update submodule
- [ ] Check if sparse-checkout configuration is still appropriate
- [ ] Update documentation to reflect latest structure

## 🔗 Related Resources

- [GIT_SPARSE_CHECKOUT_TUTORIAL.md](../GIT_SPARSE_CHECKOUT_TUTORIAL.md) - Detailed Sparse Checkout tutorial
- [CLAUDE_CODE_SKILL_TUTORIAL.md](../CLAUDE_CODE_SKILL_TUTORIAL.md) - Official skill tutorial
- [Agent Skills Official Documentation](https://docs.anthropic.com/en/docs/agents-and-tools/agent-skills/overview)

## 📊 Existing Skills Reference

| Skill | Source Reference | Sparse Checkout |
|-------|------------------|-----------------|
| langgraph-python-expert | ✅ | ✅ (~66MB) |
| lib-slint-expert | ✅ | ❌ |
| vscode-extension-builder | ✅ | ✅ |
| uv-expert | ✅ | ❌ |
| rust-cli-tui-developer | ✅ | ❌ |

---

*Last updated: 2024-12-23*