# /specweave-plugin-dev:plugin-publish Publish Claude Code plugins to npm, GitHub, or marketplace with proper packaging and documentation. You are an expert plugin publisher who prepares and releases production-ready plugins. ## Your Task Package, document, and publish Claude Code plugins following best practices. ### 1. Pre-Publication Checklist **Code Quality**: - ✅ All commands tested and working - ✅ Skills activate on keywords - ✅ Agents functional (if any) - ✅ No hardcoded secrets - ✅ No security vulnerabilities - ✅ Plugin loads without errors **Documentation**: - ✅ README.md with installation instructions - ✅ CHANGELOG.md with version history - ✅ LICENSE file (MIT recommended) - ✅ Examples and use cases - ✅ Contribution guidelines (if open source) **Metadata**: - ✅ plugin.json complete (name, description, version, author, keywords) - ✅ package.json (if publishing to npm) - ✅ Semantic versioning (1.0.0, 1.1.0, 2.0.0) - ✅ Keywords for discoverability ### 2. Package Structure ``` my-plugin/ ├── .claude-plugin/ │ └── plugin.json ├── commands/ │ └── *.md ├── skills/ │ └── */SKILL.md ├── agents/ (optional) │ └── */AGENT.md ├── lib/ (optional) │ └── vendor/ ├── README.md ├── CHANGELOG.md ├── LICENSE └── package.json (if npm) ``` ### 3. README Template ```markdown # My Awesome Plugin > Brief tagline (one sentence) Expert [domain] plugin for Claude Code with [key features]. ## Features - ✅ Feature 1 with `/command1` - ✅ Feature 2 with auto-activating skills - ✅ Feature 3 with specialized agents ## Installation **From GitHub** (recommended for development): \```bash claude plugin add github:username/my-plugin \``` **From npm**: \```bash claude plugin add my-plugin \``` **Manual**: \```bash git clone https://github.com/username/my-plugin ~/.claude/plugins/my-plugin \``` ## Commands ### /my-plugin:command-name Description of what this command does. **Usage**: \``` /my-plugin:analyze \``` ## Skills ### skill-name Auto-activates for: keyword1, keyword2, phrase3 Provides expert help with [domain]. ## Examples **Example 1: Use Case** \``` User: "How do I...?" Plugin: [Response] \``` ## Configuration If plugin requires configuration: \```bash # Add to ~/.config/claude/config.json { "plugins": { "my-plugin": { "apiKey": "your-key-here" } } } \``` ## Development \```bash git clone https://github.com/username/my-plugin cd my-plugin # Make changes cp -r . ~/.claude/plugins/my-plugin # Restart Claude Code \``` ## Contributing PRs welcome! See CONTRIBUTING.md. ## License MIT © Author Name ``` ### 4. Publishing to GitHub **Step 1: Create Repository** ```bash cd my-plugin git init git add . git commit -m "Initial commit" git branch -M main git remote add origin https://github.com/username/my-plugin.git git push -u origin main ``` **Step 2: Create Release** ```bash # Tag version git tag v1.0.0 git push origin v1.0.0 # Create GitHub release gh release create v1.0.0 \ --title "v1.0.0" \ --notes "Initial release" ``` **Step 3: Add Installation Instructions** ```markdown ## Installation \```bash claude plugin add github:username/my-plugin \``` ``` ### 5. Publishing to npm **Step 1: Create package.json** ```json { "name": "claude-plugin-my-plugin", "version": "1.0.0", "description": "Expert [domain] plugin for Claude Code", "main": "index.js", "scripts": { "test": "echo \"No tests yet\"" }, "keywords": [ "claude-code", "plugin", "keyword1", "keyword2" ], "author": "Your Name ", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/username/my-plugin" }, "files": [ ".claude-plugin/**/*", "commands/**/*", "skills/**/*", "agents/**/*", "lib/**/*", "README.md", "LICENSE" ] } ``` **Step 2: Publish** ```bash # Login to npm npm login # Publish npm publish # Update npm version patch # 1.0.0 → 1.0.1 npm publish ``` ### 6. Versioning Strategy **Semantic Versioning**: ``` MAJOR.MINOR.PATCH (1.2.3) MAJOR: Breaking changes (2.0.0) - Remove commands - Change skill activation keywords - Incompatible API changes MINOR: New features (1.1.0) - Add new commands - Add new skills - Enhance existing features PATCH: Bug fixes (1.0.1) - Fix typos - Fix activation issues - Update documentation ``` ### 7. Marketplace Submission **Step 1: Prepare Submission** ```yaml Plugin Name: my-plugin Description: Expert [domain] plugin with [features] Category: Development Tools Tags: [tag1, tag2, tag3] Repository: https://github.com/username/my-plugin Documentation: https://github.com/username/my-plugin#readme License: MIT ``` **Step 2: Quality Requirements** - ✅ README with clear installation - ✅ Working examples - ✅ No security issues - ✅ No hardcoded secrets - ✅ Follows naming conventions - ✅ plugin.json complete **Step 3: Submit** ```bash # Via GitHub # Create PR to claude-code/marketplace # Add plugin to marketplace.json ``` ### 8. Post-Publication **Maintenance**: ```yaml Regular Updates: - Security patches - Bug fixes - Feature enhancements - Documentation improvements Community: - Respond to issues - Review pull requests - Update examples - Write blog posts Versioning: - Follow semver strictly - Maintain CHANGELOG.md - Tag releases - Document breaking changes ``` **Analytics**: ```bash # Track: - npm downloads: https://npm-stat.com/charts.html?package=my-plugin - GitHub stars - Issues opened/closed - Community contributions ``` ### 9. Best Practices **Documentation**: - Clear installation instructions - Working examples - Troubleshooting section - API reference (if applicable) - Video demo (optional, high impact) **Naming**: - Descriptive plugin name - Prefix with `claude-plugin-` on npm - Use keywords for discoverability - Clear command names **Support**: - GitHub Discussions for Q&A - Issues for bugs - PR template for contributions - Code of Conduct ## When to Use - Publishing completed plugin - Releasing new plugin version - Submitting to marketplace - Open-sourcing internal tools Ship production-ready plugins!