Implement GitOps workflows with ArgoCD and Flux for automated, declarative Kubernetes...
npx skills add neovateai/agent-skill-npm-boilerplate
Or install specific skill: npx add-skill https://github.com/neovateai/agent-skill-npm-boilerplate
# Description
A clear description of what this skill does and when to use it. Include specific keywords that users would naturally say. Use when [specific scenarios].
# SKILL.md
name: your-skill-name
description: A clear description of what this skill does and when to use it. Include specific keywords that users would naturally say. Use when [specific scenarios].
allowed-tools: Read, Bash
Your Skill Name
A brief description of what this skill does and how it helps users.
Instructions
When the user [describes the scenario when this skill should be used]:
- First Step: [What Claude should do first]
- [Additional details or substeps]
-
[Use bash, read files, etc.]
-
Second Step: [What Claude should do next]
- [How to process or analyze information]
-
[What to look for]
-
Final Step: [How to complete the task]
- [What output to provide]
- [How to format the response]
Examples
Example 1: [Scenario Name]
User asks: "[Example user question]"
What the skill does:
1. [First action]
2. [Second action]
3. [Result]
Expected output:
[Show example output]
Example 2: [Another Scenario]
User asks: "[Another example question]"
What the skill does:
1. [Actions...]
2. [More actions...]
Best Practices
- [Best practice 1]
- [Best practice 2]
- [Best practice 3]
Common Patterns
Pattern 1: [Pattern Name]
[Describe when to use this pattern]
[Example code or template]
Limitations
- [Limitation 1]
- [Limitation 2]
- [What to do instead]
Configuration
You can customize this skill by editing scripts/config.json after installation.
Available options:
- option1: [Description]
- option2: [Description]
Additional Resources
For more detailed information:
- See reference.md for complete API documentation
- See examples.md for more usage examples
# README.md
Agent Skill NPM Boilerplate
Distribute AI agent skills like any other npm package
AI coding tools (Claude Code, Cursor, Windsurf) support custom "skills" - reusable instructions that extend agent capabilities. But distributing them means manual file copying, no versioning, and painful updates.
This template lets you publish skills to npm:
# Install
npm install -g @your-org/git-commit-helper
# Update
npm update -g @your-org/git-commit-helper
# It just works - installs to ~/.claude/skills/, ~/.cursor/skills/, etc.
Why this matters: Skills become proper software artifacts with semantic versioning, dependency management, private registries, and global discovery. Same infrastructure that distributes React and Express.
Quick start: Fork this template, edit SKILL.md, run npm publish. Your skill is now installable worldwide.
Supports: Claude Code, Cursor, Windsurf, and any tool following similar skill patterns. See MULTI-TOOL-SUPPORT.md.
💡 Why npm for Skills?
Manual skill distribution requires downloading files, copying to ~/.claude/skills/, and repeating for every update. No versioning, no dependency management, no discovery.
npm solves this:
# Install/update/uninstall with standard commands
npm install -g @your-org/skill-name
npm update -g @your-org/skill-name
npm uninstall -g @your-org/skill-name
# Semantic versioning for controlled updates
npm install @your-org/skill@^2.1.0
# Project-specific skills (version-locked, committed to git)
npm install --save-dev @your-org/skill-name
Core benefits:
- Version control - Semantic versioning, upgrade/rollback easily
- Global distribution - Publish once, available worldwide via npm's CDN
- Discoverability - Searchable on npmjs.com
- Enterprise ready - Private registries for internal skills
- Ecosystem integration - Works with CI/CD, monorepos, existing tooling
Skills become first-class software artifacts, using the same infrastructure as React, Express, and millions of other packages.
✨ Features
- ✅ Official Specification: Fully compliant with Claude Code skills format
- ✅ Multi-Tool Support: Install to Claude Code, Cursor, Windsurf, and more! (See Multi-Tool Support)
- ✅ Smart Installation: Auto-detects global vs project-level installation
- ✅ Progressive Disclosure: Supports main SKILL.md + reference files
- ✅ Lifecycle Management: Install, update, uninstall scripts included
- ✅ Best Practices: Follows all recommended patterns from official docs
- ✅ Ready to Publish: Just customize and publish to npm
🚀 Quick Start
Option 1: Use as GitHub Template (Recommended)
This is a GitHub Template Repository. The easiest way to use it:
- Click the "Use this template" button at the top of this repository (or click here)
- Name your new repository (e.g.,
my-awesome-skill) - Clone your new repository:
bash git clone https://github.com/YOUR-USERNAME/my-awesome-skill.git cd my-awesome-skill - Customize your skill (see Customization Guide)
- Publish to npm:
bash npm login npm publish --access public
Option 2: Clone Directly
# Clone this repository
git clone https://github.com/YOUR-USERNAME/agent-skill-npm-boilerplate.git my-skill
cd my-skill
# Remove git history and start fresh
rm -rf .git
git init
# Install dependencies (for development)
npm install
# Customize your skill
📁 Project Structure
agent-skill-npm-boilerplate/
├── package.json # npm package configuration
├── SKILL.md # Main skill definition (REQUIRED)
├── .claude-skill.json # Installation configuration
├── install-skill.js # Installation script
├── uninstall-skill.js # Uninstallation script
├── reference.md # Detailed documentation (optional)
├── examples.md # Usage examples (optional)
├── scripts/ # Utility scripts (optional)
│ ├── setup.sh # Post-install setup
│ └── config.json.example # Configuration template
├── README.md # This file (customize for your skill)
├── LICENSE # License file
└── .gitignore # Git ignore rules
🎨 Customization Guide
Step 1: Update package.json
Replace the following placeholders:
{
"name": "@your-org/your-skill-name", // Change this
"version": "1.0.0",
"description": "YOUR SKILL DESCRIPTION", // Change this
"author": "YOUR NAME", // Change this
"repository": {
"url": "YOUR-REPO-URL" // Change this
}
}
About npm scopes:
- Use a scope (@your-org/skill-name) if you want to organize skills under your organization
- Use no scope (skill-name) for standalone packages
- Popular scopes: @your-company, @your-username, or custom like @claude-skills
- Scopes require configuration: npm config set @your-org:registry https://registry.npmjs.org/
Step 2: Update SKILL.md
Edit SKILL.md and replace placeholders:
---
name: your-skill-name # Must match directory name
description: Your skill description here. Use when [scenarios].
allowed-tools: Read, Bash # Tools your skill can use
---
Step 3: Update .claude-skill.json
{
"name": "your-skill-name", // Must match SKILL.md name
"package": "@your-org/your-skill-name"
}
Step 4: Add Your Logic
Edit the "Instructions" section in SKILL.md:
## Instructions
When the user [describes scenario]:
1. **Step 1**: Do something
2. **Step 2**: Do something else
3. **Step 3**: Complete the task
Step 5: Test Locally
# Test the installation script
node install-skill.js
# Check if installed correctly
ls -la ~/.claude/skills/your-skill-name/
cat ~/.claude/skills/your-skill-name/SKILL.md
# Open Claude Code and verify
# Ask Claude: "What skills are available?"
Step 6: Publish to npm
# Login to npm (first time only)
npm login
# Publish your skill
npm publish --access public
📖 Skill Development Best Practices
1. Write Clear Descriptions
The description field in SKILL.md is crucial - it determines when Claude uses your skill:
# ❌ Bad: Too vague
description: Helps with files
# ✅ Good: Specific and includes trigger keywords
description: Analyzes TypeScript files for type errors. Use when checking types, debugging TypeScript issues, or validating .ts files.
2. Use Progressive Disclosure
Keep SKILL.md under 500 lines. Put detailed content in separate files:
# In SKILL.md
For complete API reference, see [reference.md](reference.md)
For examples, see [examples.md](examples.md)
Claude will only load these files when needed, saving context.
3. Limit Tool Access
Use allowed-tools to restrict what your skill can do:
# Read-only skill
allowed-tools: Read, Grep, Glob
# Can read and execute (but not modify files)
allowed-tools: Read, Bash
# Full access
allowed-tools: Read, Edit, Write, Bash
4. Include Examples
Show concrete examples in your SKILL.md:
## Examples
### Example 1: Basic Usage
User asks: "Check my commit message"
Claude will:
1. Read the commit message
2. Validate format
3. Suggest improvements
📦 Installation Behavior
Global Installation (Recommended)
npm install -g @your-org/your-skill
Installs to: ~/.claude/skills/your-skill-name/
Available: Across all projects for the current user
Project-Level Installation
npm install --save-dev @your-org/your-skill
Installs to: .claude/skills/your-skill-name/
Available: Only in this project (can be committed to git)
Priority Order
When multiple skills exist:
1. Enterprise (managed settings)
2. Personal (~/.claude/skills/)
3. Project (.claude/skills/)
4. Plugin
How Installation and Uninstallation Work
This boilerplate includes automatic installation and uninstallation scripts that run when users install or remove your skill package via npm.
Installation Process
When a user runs npm install (or npm install -g) on your skill package:
- Target Detection: The script identifies which AI coding tools are configured for installation based on
.claude-skill.json - Scope Prefix Handling: Extracts the actual skill name by removing any npm scope prefix (e.g.,
@your-org/skill-namebecomesskill-name) - Path Resolution: For each target tool, it determines the appropriate installation location:
- Global installation:
~/{tool-path}/skills/(user's home directory) - Project installation:
./{tool-path}/skills/(project root directory) - Directory Setup: Creates the skill directory using the skill name (without npm scope prefix)
- File Copying: Copies essential files:
SKILL.md(required) - The main skill definition- Any additional files specified in
.claude-skill.json - Compatibility Cleanup: Removes any legacy installation paths for backward compatibility
- Manifest Update: Updates the
.skills-manifest.jsonto track installed skills - Post-install Hooks: Runs any custom setup scripts defined in
.claude-skill.json
Uninstallation Process
When a user runs npm uninstall (or npm uninstall -g) on your skill package:
- Target Detection: Identifies which AI coding tools were configured for the skill
- Scope Prefix Handling: Uses both the skill name (without scope prefix) and full package name (with scope prefix) for compatibility
- Path Resolution: Determines the appropriate uninstallation locations
- Directory Removal: Removes the skill directory from all configured targets:
- Path using skill name (primary location)
- Path with full package name (legacy location for compatibility)
- Manifest Update: Removes the skill entry from
.skills-manifest.json - Best-effort Cleanup: Continues even if some steps fail to ensure clean removal
🔧 Advanced Features
Custom Hooks
Run scripts during installation:
// .claude-skill.json
{
"hooks": {
"postinstall": "bash scripts/setup.sh"
}
}
Multiple Files
Support rich documentation:
// .claude-skill.json
{
"files": {
"reference.md": "reference.md",
"examples.md": "examples.md",
"scripts": "scripts/"
}
}
Configuration
Let users customize your skill:
# scripts/setup.sh
cat > scripts/config.json <<EOF
{
"option1": "default",
"option2": true
}
EOF
🐛 Troubleshooting
Skill Not Appearing
# Check installation location
ls -la ~/.claude/skills/
# Verify SKILL.md format
cat ~/.claude/skills/your-skill/SKILL.md
# Check manifest
cat ~/.claude/skills/.skills-manifest.json
Permission Errors
# Fix npm permissions (recommended)
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
# Or use sudo (not recommended)
sudo npm install -g @your-org/your-skill
Skill Not Triggering
- Make sure the
descriptionincludes keywords users would naturally say - Test by asking Claude directly: "Use the your-skill-name skill to..."
📚 Resources
- Claude Code Skills Documentation
- Skills Best Practices
- npm Package Publishing Guide
- Conventional Commits
🤝 Contributing
Contributions are welcome! Please:
- Fork this repository
- Create a feature branch
- Make your changes
- Submit a pull request
See CONTRIBUTING.md for details.
📄 License
This template is MIT licensed. Skills you create from this template can use any license you choose.
💡 Examples
Skills built with this template:
@your-org/git-commit-helper- Generate conventional commit messages@your-org/code-reviewer- Automated code review assistance@your-org/test-generator- Generate test cases from code
(Add your skill here after publishing!)
🙋 Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Wiki
🌟 Show Your Support
If you find this template helpful:
- ⭐ Star this repository
- 🐛 Report bugs
- 💡 Suggest features
- 📝 Improve documentation
Made with ❤️ for the Claude Code community
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.