diff --git a/cli-anything-plugin/PUBLISHING.md b/cli-anything-plugin/PUBLISHING.md index 2a809e9..50ab7e4 100644 --- a/cli-anything-plugin/PUBLISHING.md +++ b/cli-anything-plugin/PUBLISHING.md @@ -1,6 +1,6 @@ # Publishing the cli-anything Plugin -This guide explains how to make the cli-anything plugin installable and publish it. +This comprehensive guide explains how to make the cli-anything plugin installable and publish it through various distribution channels. ## Option 1: Local Installation (Development) @@ -23,13 +23,13 @@ This guide explains how to make the cli-anything plugin installable and publish ### For Sharing Locally -Package as a tarball: +Package as a tarball for easy distribution: ```bash cd /root/cli-anything tar -czf cli-anything-plugin-v1.0.0.tar.gz cli-anything-plugin/ ``` -Others can install: +Others can install by extracting: ```bash cd ~/.claude/plugins tar -xzf cli-anything-plugin-v1.0.0.tar.gz @@ -42,26 +42,26 @@ tar -xzf cli-anything-plugin-v1.0.0.tar.gz ```bash cd /root/cli-anything/cli-anything-plugin -# Initialize git +# Initialize git repository git init git add . git commit -m "Initial commit: cli-anything plugin v1.0.0" -# Create repo on GitHub (via web or gh CLI) +# Create repository on GitHub (via web interface or gh CLI) gh repo create cli-anything-plugin --public --source=. --remote=origin -# Push +# Push to remote repository git push -u origin main ``` ### 2. Create Release ```bash -# Tag the release +# Tag the release with semantic version git tag -a v1.0.0 -m "Release v1.0.0: Initial release" git push origin v1.0.0 -# Create GitHub release +# Create GitHub release with detailed notes gh release create v1.0.0 \ --title "cli-anything Plugin v1.0.0" \ --notes "Initial release with 4 commands and complete 6-phase methodology" @@ -69,30 +69,30 @@ gh release create v1.0.0 \ ### 3. Install from GitHub -Users can install directly: +Users can install directly from the repository: ```bash cd ~/.claude/plugins git clone https://github.com/yourusername/cli-anything-plugin.git ``` -Or via Claude Code (if you set up a plugin registry): +Or via Claude Code (if plugin registry is configured): ```bash /plugin install cli-anything@github:yourusername/cli-anything-plugin ``` ## Option 3: Claude Plugin Directory (Official) -To publish to the official Claude Plugin Directory: +To publish to the official Claude Plugin Directory for maximum visibility: ### 1. Prepare for Submission -Ensure your plugin meets requirements: -- ✅ Complete `plugin.json` with all metadata -- ✅ Comprehensive README.md -- ✅ LICENSE file (MIT recommended) -- ✅ All commands documented -- ✅ No security vulnerabilities -- ✅ Tested and working +Ensure your plugin meets all requirements: +- ✅ Complete `plugin.json` with all required metadata +- ✅ Comprehensive README.md with usage examples +- ✅ LICENSE file (MIT recommended for compatibility) +- ✅ All commands documented with examples +- ✅ No security vulnerabilities or hardcoded credentials +- ✅ Thoroughly tested and working ### 2. Submit to External Plugins @@ -101,7 +101,7 @@ Ensure your plugin meets requirements: gh repo fork anthropics/claude-plugins-official ``` -2. **Add your plugin to external_plugins:** +2. **Add your plugin to external_plugins directory:** ```bash cd claude-plugins-official mkdir -p external_plugins/cli-anything @@ -118,31 +118,31 @@ Ensure your plugin meets requirements: --body "Adds cli-anything plugin for building CLI harnesses for GUI applications" ``` -4. **Fill out submission form:** +4. **Complete submission form:** - Visit: https://forms.anthropic.com/claude-plugin-submission - - Provide plugin details - - Link to your PR + - Provide detailed plugin information + - Link to your pull request ### 3. Review Process -Anthropic will review: -- Code quality and security +Anthropic will review for: +- Code quality and security standards - Documentation completeness -- Functionality and usefulness -- Compliance with plugin standards +- Functionality and usefulness to community +- Compliance with plugin development standards -Approval typically takes 1-2 weeks. +Approval typically takes 1-2 weeks for review and feedback. ### 4. After Approval -Users can install via: +Users can install via the official directory: ```bash /plugin install cli-anything@claude-plugin-directory ``` ## Option 4: NPM Package (Alternative) -If you want to distribute via npm: +If you prefer npm-based distribution: ### 1. Create package.json @@ -150,17 +150,20 @@ If you want to distribute via npm: { "name": "@yourusername/cli-anything-plugin", "version": "1.0.0", - "description": "Claude Code plugin for building CLI harnesses", + "description": "Claude Code plugin for building CLI harnesses for GUI applications", "main": ".claude-plugin/plugin.json", "scripts": { "install": "bash scripts/setup-cli-anything.sh" }, - "keywords": ["claude-code", "plugin", "cli", "harness"], - "author": "Your Name", + "keywords": ["claude-code", "plugin", "cli", "harness", "automation"], + "author": "Your Name ", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/yourusername/cli-anything-plugin.git" + }, + "bugs": { + "url": "https://github.com/yourusername/cli-anything-plugin/issues" } } ``` @@ -179,83 +182,88 @@ cd ~/.claude/plugins npm install @yourusername/cli-anything-plugin ``` -## Versioning +## Versioning Strategy -Follow semantic versioning (semver): -- **Major** (1.0.0 → 2.0.0): Breaking changes -- **Minor** (1.0.0 → 1.1.0): New features, backward compatible -- **Patch** (1.0.0 → 1.0.1): Bug fixes +Follow semantic versioning (semver) for consistent releases: +- **Major** (1.0.0 → 2.0.0): Breaking changes that require user action +- **Minor** (1.0.0 → 1.1.0): New features that are backward compatible +- **Patch** (1.0.0 → 1.0.1): Bug fixes and minor improvements -Update version in: +Update version consistently in: - `.claude-plugin/plugin.json` -- `README.md` -- Git tags - -## Distribution Checklist - -Before publishing: - -- [ ] All commands tested and working -- [ ] README.md is comprehensive -- [ ] LICENSE file included -- [ ] plugin.json has correct metadata -- [ ] No hardcoded paths or credentials -- [ ] Scripts are executable (`chmod +x`) -- [ ] Documentation is up to date -- [ ] Version number is correct -- [ ] Git repository is clean +- `README.md` installation examples +- Git tags and releases + +## Pre-Publication Checklist + +Before publishing to any platform: + +- [ ] All commands tested and working correctly +- [ ] README.md is comprehensive with clear examples +- [ ] LICENSE file included (MIT recommended) +- [ ] plugin.json has correct metadata and version +- [ ] No hardcoded paths, credentials, or sensitive data +- [ ] All shell scripts are executable (`chmod +x`) +- [ ] Documentation is up to date and accurate +- [ ] Version number is correct across all files +- [ ] Git repository is clean with no uncommitted changes - [ ] Tests pass (if applicable) +- [ ] Security review completed -## Maintenance +## Maintenance and Updates ### Updating the Plugin -1. Make changes +1. Make and test changes thoroughly 2. Update version in `plugin.json` -3. Update CHANGELOG.md -4. Commit and tag: +3. Document changes in CHANGELOG.md +4. Commit and tag the release: ```bash - git commit -am "Release v1.1.0: Add new features" + git commit -am "Release v1.1.0: Add new features and improvements" git tag v1.1.0 git push origin main --tags ``` -5. Create GitHub release -6. Notify users of update +5. Create GitHub release with detailed notes +6. Notify users through appropriate channels -### Deprecation +### Deprecation Process -If deprecating: +If deprecating the plugin: 1. Mark as deprecated in `plugin.json` -2. Update README with deprecation notice -3. Provide migration path -4. Keep available for 6 months minimum +2. Update README with clear deprecation notice +3. Provide migration path to alternatives +4. Keep plugin available for minimum 6 months +5. Communicate timeline to users -## Support +## Support and Community -### Documentation +### Documentation Maintenance -- Keep README.md updated -- Document breaking changes -- Provide migration guides +- Keep README.md updated with latest features +- Document all breaking changes clearly +- Provide comprehensive migration guides +- Include troubleshooting section -### Issue Tracking +### Issue Management -Use GitHub Issues for: -- Bug reports -- Feature requests -- Questions +Use GitHub Issues effectively for: +- Bug reports with clear reproduction steps +- Feature requests from community +- General questions and support +- Community discussions -### Community +### Community Engagement -- Respond to issues promptly -- Accept pull requests -- Credit contributors +- Respond to issues and PRs promptly +- Accept and review community pull requests +- Credit all contributors appropriately +- Foster welcoming community environment -## Security +## Security Considerations -### Reporting Vulnerabilities +### Vulnerability Reporting -Create SECURITY.md: +Create SECURITY.md file: ```markdown # Security Policy @@ -264,44 +272,50 @@ Create SECURITY.md: Email: security@yourdomain.com Please do not open public issues for security vulnerabilities. +We will respond within 48 hours with next steps. ``` -### Best Practices +### Security Best Practices -- No credentials in code -- Validate all inputs -- Use secure dependencies -- Regular security audits +- Never include credentials or API keys in code +- Validate and sanitize all user inputs +- Use secure, up-to-date dependencies +- Conduct regular security audits +- Follow principle of least privilege -## Legal +## Legal and Compliance -### License +### License Selection -MIT License allows: -- Commercial use -- Modification -- Distribution -- Private use +MIT License is recommended as it allows: +- Commercial use without restrictions +- Modification and distribution +- Private use in proprietary projects -Requires: -- License and copyright notice +Requirements: +- Include license and copyright notice +- Credit original authors -### Trademark +### Trademark Considerations -If using "Claude" or "Anthropic": -- Follow brand guidelines +When using "Claude" or "Anthropic" in marketing: +- Follow official brand guidelines - Don't imply official endorsement -- Use "for Claude Code" not "Claude's plugin" +- Use "for Claude Code" not "Claude's official plugin" +- Respect trademark rights + +## Helpful Resources -## Resources +- [Claude Code Plugin Documentation](https://code.claude.com/docs/en/plugins) +- [Official Plugin Directory](https://github.com/anthropics/claude-plugins-official) +- [Plugin Submission Form](https://forms.anthropic.com/claude-plugin-submission) +- [Community Discord/Forum](https://discord.gg/claude-code) -- Claude Code Plugin Docs: https://code.claude.com/docs/en/plugins -- Plugin Directory: https://github.com/anthropics/claude-plugins-official -- Submission Form: https://forms.anthropic.com/claude-plugin-submission -- Community: Claude Code Discord/Forum +## Getting Help -## Questions? +For questions or support: -- GitHub Issues: https://github.com/yourusername/cli-anything-plugin/issues -- Email: your-email@example.com -- Discord: Your Discord handle +- **GitHub Issues**: https://github.com/yourusername/cli-anything-plugin/issues +- **Email**: your-email@example.com +- **Discord**: Your Discord handle +- **Community Forum**: Link to relevant forum \ No newline at end of file