| name | skill-manager |
| description | Automate creation, versioning, deployment, and synchronization of Claude Skills across Desktop, Code CLI, and API environments. Manages skill lifecycle from scaffolding to deployment. |
Skill Manager
Purpose
Meta-skill for managing the complete lifecycle of all other Claude Skills. Ensures skills are version-controlled in Git and automatically synchronized across all Claude environments (Desktop, Code CLI, API).
Core Capabilities
- Create: Scaffold new skills from templates with proper structure
- Validate: Check YAML frontmatter, markdown syntax, security
- Deploy: Sync skills to Code CLI, API, or Desktop
- Version: Semantic versioning and Git integration
- Monitor: Watch for changes and auto-sync
Architecture Overview
Source of Truth
- Git Repository:
C:\Users\Kurt Anderson\github projects\claude-skills\ - Branch Strategy:
main= Production skills (stable, tested)dev= Experimental/WIP skills- Feature branches = New skill development
Deployment Targets
- Claude Code CLI:
~/.claude/skills/(symlinked to git repo) - Claude API: Via
/v1/skillsendpoint (programmatic) - Claude Desktop: Manual upload or API-based (if available)
Standard Skill Structure
skill-name/
├── SKILL.md # Required: YAML frontmatter + instructions
├── README.md # Human documentation
├── scripts/ # Optional: Executable code
│ ├── __init__.py
│ └── helper.py
├── resources/ # Optional: Templates, data files
│ └── template.json
├── tests/ # Validation tests
│ └── test_skill.py
└── .skillmeta # Version, author, dependencies
Key Operations
1. Create New Skill
Scaffolds a new skill directory with proper structure and template content.
Usage Pattern: "Create a new skill called 'n8n-flow-builder' that helps design n8n workflows"
What Happens:
- Runs
scripts/create_skill.pywith skill name and description - Creates directory structure with SKILL.md template
- Opens SKILL.md for review and editing
- User iterates with Claude on content
- Validates with
scripts/validate_skill.py
2. Validate Skill
Checks skill for correctness and security before deployment.
Validation Checklist:
- ✅ YAML frontmatter is well-formed
- ✅ Required fields present (
name,description) - ✅ Markdown syntax is valid
- ✅ Script files have proper permissions
- ✅ No suspicious network calls to untrusted domains
- ✅ File access restricted to safe directories
- ✅ External dependencies documented
Usage Pattern: "Validate the n8n-flow-builder skill before deploying"
3. Deploy Skill
Synchronizes skill to target environments.
Deployment Options:
--env code: Deploy to Claude Code CLI (~/.claude/skills/)--env api: Deploy to Claude API via /v1/skills endpoint--env all: Deploy to all available environments
Usage Pattern: "Deploy the n8n-flow-builder skill to all environments"
What Happens:
- Validates skill first (auto-validation)
- For Code CLI: Creates symlink or copies to ~/.claude/skills/
- For API: Zips skill, POSTs to /v1/skills endpoint
- Logs deployment status
- Commits to Git if requested
4. List and Search Skills
Find skills in the repository.
Usage Patterns:
- "What skills do I have?"
- "Show me all skills related to GitHub"
- "List skills that haven't been deployed yet"
Returns:
- Skill name and version
- Description
- Deployment status
- Last modified date
5. Update Existing Skill
Modify and redeploy skills with version bumping.
Usage Pattern: "Update the linear-orchestration skill to include new webhook format"
What Happens:
- Reads current skill from git repo
- Makes requested changes to SKILL.md or scripts
- Shows diff for review
- User approves changes
- Validates updated skill
- Deploys updated version
- Git commit with semantic version bump (patch/minor/major)
Helper Scripts Reference
scripts/create_skill.py
Scaffolds new skills from template.
Arguments:
--name: Skill name (kebab-case)--description: Brief description of what skill does--template: Optional template to use (default, api, workflow, etc.)
Example:
python scripts/create_skill.py --name "api-doc-generator" \
--description "Generate OpenAPI specifications"
scripts/validate_skill.py
Validates skill structure and security.
Checks:
- YAML frontmatter syntax
- Required field presence
- Markdown lint
- Script security scan
- Dependency audit
Example:
python scripts/validate_skill.py skill-name/
scripts/deploy_skill.py
Deploys skills to target environments.
Arguments:
skill_path: Path to skill directory--env: Target environment (code|api|all)--validate: Run validation first (default: true)--commit: Commit to git after deploy (default: false)
Example:
python scripts/deploy_skill.py n8n-flow-builder/ --env all --commit
Security Considerations
Validation Rules
Skills must pass all security checks before deployment:
Network Access: Scripts cannot call arbitrary URLs
- Whitelist approved domains in skill config
- Block suspicious patterns
File Access: Scripts restricted to safe directories
- Skill directory itself
/mnt/user-data/(Claude execution environment)- Explicitly approved paths only
Dependency Audit: External libraries documented
- All imports declared in
.skillmeta - Known vulnerabilities flagged
- Version pinning required
- All imports declared in
Code Review: Human review for high-risk operations
- Network calls
- File system modifications
- Environment variable access
Approval Workflow
- Auto-deploy: Skills that pass validation on
mainbranch - Manual review: New skills or those with network/file access beyond standard patterns
Integration with Your Workflow
Bootstrap Process
When starting a new session:
- Claude Desktop loads
skill-managerskill (this one) - Check git repo for latest skill updates
- Auto-sync to Code CLI if changes detected
- Report which skills are active and their versions
Continuous Sync Options
Option A: File Watcher (Recommended) Background daemon watches git repo for changes:
# scripts/skill_sync_daemon.py
# Watches for SKILL.md changes
# Auto-validates and deploys to Code CLI
# Logs all operations
Option B: n8n Automation (Optional)
GitHub webhook triggers n8n workflow on push to main:
- Validates all changed skills
- Runs tests
- Deploys to Code CLI (file sync)
- Deploys to API (HTTP POST)
- Posts deployment report to Slack
- Creates Linear ticket if failures detected
Option C: Manual Sync (Simplest) Run deployment manually when skills change:
python scripts/deploy_skill.py --env all
Workflow Examples
Example 1: Create and Deploy New Skill
User: "Create a new skill for n8n workflow authoring"
Claude (using skill-manager):
1. ✅ Runs create_skill.py with name "n8n-flow-builder"
2. ✅ Generates SKILL.md with template structure
3. 📝 Opens for user review: "Here's the template. What should I include?"
4. 🔄 User iterates: "Add section on webhook patterns"
5. 🔍 Validates with validate_skill.py
6. ✅ User approves: "Looks good, deploy it"
7. 🚀 Runs deploy_skill.py --env all
8. 📦 Commits to git: "feat: add n8n-flow-builder skill v1.0.0"
9. 🔗 Pushes to GitHub
10. ✅ Reports: "Deployed to Code CLI and ready for API upload"
Example 2: Update Existing Skill
User: "Update linear-orchestration to include new status field format"
Claude (using skill-manager):
1. 📖 Reads linear-orchestration/SKILL.md from git
2. ✏️ Makes changes to include new status field
3. 👀 Shows diff: "Here's what I'm changing..."
4. ✅ User approves
5. 🔍 Validates changes
6. 🚀 Deploys updated version
7. 📦 Git commit: "feat(linear): add new status field format"
8. 🏷️ Bumps version: v1.2.0 → v1.3.0
Example 3: Search and Discover
User: "What skills do I have related to GitHub?"
Claude: Searches repository and returns:
- **github-coordinator** (v1.2.0) - Manage branches, PRs, CI/CD
Last updated: 2025-10-15
Status: Deployed to Code CLI ✅
- **github-actions-builder** (v0.5.0) - Create GH Actions workflows
Last updated: 2025-10-10
Status: Local only, not deployed ⚠️
Setup Instructions
Initial Setup
Ensure git repository exists at expected path
Initialize git if not already done:
cd "C:\Users\Kurt Anderson\github projects\claude-skills" git init git add . git commit -m "Initial commit: skill-manager"Set up Code CLI symlink (run once):
ln -s "C:\Users\Kurt Anderson\github projects\claude-skills" ~/.claude/skillsInstall Python dependencies (if using scripts):
pip install pyyaml click watchdog
Warp Integration
Since Warp terminal owns system-level tasks:
- Run deployment scripts
- Manage git operations (commit, push, pull)
- Set up and maintain symlinks
- Execute file watchers as background services
Best Practices
Skill Naming Convention
- Use kebab-case:
n8n-flow-builder,linear-orchestration - Be descriptive but concise
- Prefix with domain if part of suite:
github-coordinator,github-actions-builder
Version Numbering (Semantic Versioning)
- Major (X.0.0): Breaking changes to skill interface
- Minor (0.X.0): New features, backward compatible
- Patch (0.0.X): Bug fixes, documentation updates
Commit Message Format
type(scope): brief description
Examples:
feat(linear): add webhook callback format
fix(n8n): correct node connection validation
docs(skill-manager): update deployment instructions
Testing Before Deploy
- Validate skill structure
- Test in isolated Claude session
- Verify all referenced files exist
- Check script executables work
- Review security implications
Troubleshooting
Common Issues
Issue: Skill not loading in Claude Code CLI Solution: Check symlink is correct, restart Claude Code
Issue: Validation fails on YAML frontmatter Solution: Check frontmatter has three dashes on separate lines, proper YAML syntax
Issue: Script can't be executed Solution: Verify script has execute permissions, check shebang line
Issue: Deployment to API fails Solution: Check API key is set, skill size under 8MB limit, max 8 skills per request
Next Steps
Once skill-manager is working:
- Create your first domain skill (n8n-flow-builder recommended)
- Set up automation (file watcher or n8n workflow)
- Establish review process for new skills
- Document your skill library in main README
- Share useful skills with team (if applicable)
Notes
- This skill is self-referential (meta) - it manages itself too
- Start simple: manual deployment first, automation later
- Skills are portable: work with any LLM that can read files
- Git is your safety net: always commit before major changes
- Desktop Commander can be buggy: GitHub MCP is more reliable for repo operations
Resources
Auto-Trigger Pattern Recognition
When to Automatically Trigger skill-manager
Claude should automatically suggest skill creation when detecting these patterns:
Pattern 1: Repeated Workflow
User does same multi-step process twice
→ "This feels like a pattern we should capture in a skill"
→ Offer to create skill
Pattern 2: Complex Integration
User coordinates multiple MCPs successfully
→ "This cross-MCP workflow could be an integration-workflows entry"
→ Offer to add to integration-workflows skill
Pattern 3: MCP Enhancement
Discovering better way to use GitHub/Linear/n8n
→ "Should we add this to the relevant skill?"
→ Update existing skill + MCP repo (if forked)
Pattern 4: Efficiency Discovery
User: "Oh that's much better!"
Claude: "Want to capture this approach in a skill?"
Pattern 5: User Explicitly States
User: "This is how we always do it"
User: "Remember this pattern"
User: "We should capture this"
→ Immediately offer skill creation
Auto-Trigger Workflow
When pattern detected:
Step 1: Recognition
Claude: "💡 This feels like a repeatable pattern!
We've now [created X successfully / solved Y twice / found Z approach].
Should I create/update a skill to capture this?"
Step 2: If User Says Yes
Claude uses skill-manager to:
1. Determine if new skill or update existing
2. Draft skill content based on conversation
3. Show preview to user
4. Create/update skill files
5. Generate zip automatically
6. Prompt for upload (see below)
Step 3: Upload Prompt
Claude: "✅ Skill ready!
📦 Upload to Claude Desktop:
1. File location: C:\path\to\skill.zip
2. Go to: Settings > Capabilities > Upload skill
3. Drag and drop the zip file
4. Toggle skill ON
Should I wait while you do this, or continue?
(Say 'uploaded' when done)"
Step 4: Verification (Optional)
After user says "uploaded":
Claude: "Great! Let me verify it loaded correctly by checking if
I can see it in my skills list... [test query]"
Automatic Zip Generation
Every time a skill is created or updated:
Auto-Generate Process:
# Automatically runs after any skill modification
1. Navigate to skill directory
2. Create zip with SKILL.md at root (+ any other files)
3. Place in claude-skills/ parent directory
4. Report location to user
File Naming:
skill-name.zip # For new/updated skills
skill-name-v1.2.0.zip # For versioned releases (optional)
Zip Contents:
skill.zip/
├── SKILL.md # At root (required by Claude)
├── README.md # If exists
├── scripts/ # If exists
└── resources/ # If exists