Thank you for your interest in contributing to this plugin collection!
- Create a new directory in
plugins/with your plugin name - Follow the standard plugin structure:
plugins/your-plugin/
├── .claude-plugin/
│ └── plugin.json
├── commands/
│ └── your-command.md
├── skills/
│ └── your-skill/
│ ├── SKILL.md
│ └── references/
│ └── detailed-docs.md
├── agents/ # optional
├── hooks/ # optional
└── README.md
- Create the
plugin.jsonmanifest:
{
"name": "your-plugin",
"version": "1.0.0",
"description": "Brief description of what your plugin does",
"author": "Your Name",
"commands_path": "../commands",
"skills_path": "../skills",
"repository": "https://github.com/ruslan-korneev/claude-plugins",
"keywords": ["python", "your-topic"]
}- Write clear documentation in README.md
- Submit a Pull Request
- Fork the repository
- Create a feature branch:
git checkout -b feature/improve-plugin-name - Make your changes
- Test your changes locally
- Submit a Pull Request
- Documentation: All commands and skills must have clear documentation
- Examples: Include practical code examples
- Consistency: Follow the existing naming conventions
- Language: All content must be in English
- Single Responsibility: Each plugin should focus on one domain
- No Overlapping: Avoid duplicating functionality from other plugins
- Best Practices: Plugins should enforce Python best practices
- Testable: Command outputs should be verifiable
When reporting issues, please include:
- Plugin name and version
- Steps to reproduce
- Expected behavior
- Actual behavior
- Claude Code version
- Update documentation if needed
- Ensure your code follows existing patterns
- Add yourself to contributors if not already listed
- Request review from maintainers
# Clone the repository
git clone https://github.com/ruslan-korneev/claude-plugins.git
cd claude-pluginsThen inside Claude Code, run these slash commands:
# Add local marketplace for testing
/plugin marketplace add ./
# Install your plugin
/plugin install your-plugin@python-backend-plugins
# Test your changes
/your-command:test
We use a modified Gitflow for monorepo with independent plugin versioning.
| Branch | Purpose |
|---|---|
master |
Stable releases, protected |
develop |
Integration branch for next release |
feature/<plugin>/<description> |
New features |
fix/<plugin>/<issue> |
Bug fixes |
release/<plugin>-v<version> |
Release preparation |
Use Conventional Commits with plugin scope:
# Format
<type>(<plugin>): <description>
# Examples
feat(ruff-lint): add support for RUF100 rule
fix(pytest-assistant): correct fixture scope handling
docs(fastapi-scaffold): update repository pattern examples
chore(alembic-migrations): update dependenciesTypes: feat, fix, docs, chore, refactor, test
# 1. Create feature branch from develop
git checkout develop
git pull origin develop
git checkout -b feature/ruff-lint/add-preview-rules
# 2. Make changes and commit
git add .
git commit -m "feat(ruff-lint): add preview rules support"
# 3. Push and create PR
git push origin feature/ruff-lint/add-preview-rules
# Create PR to develop branchImportant: Contributors should NOT change version numbers. Versions are updated by maintainers during the release process. This prevents merge conflicts when multiple PRs are in progress.
# For bugs in develop
git checkout -b fix/pytest-assistant/fixture-scope
git commit -m "fix(pytest-assistant): correct session fixture scope"
# For critical bugs in master (hotfix)
git checkout master
git checkout -b fix/ruff-lint/critical-123
git commit -m "fix(ruff-lint): resolve config parsing error"
# Create PR to master AND developEach plugin is versioned independently using Semantic Versioning:
- MAJOR (1.0.0 → 2.0.0): Breaking changes in commands or behavior
- MINOR (1.0.0 → 1.1.0): New features, backward compatible
- PATCH (1.0.0 → 1.0.1): Bug fixes, documentation updates
Update version in these files when releasing:
plugins/<plugin>/.claude-plugin/plugin.json→versionfield.claude-plugin/marketplace.json→ plugin'sversionfieldCHANGELOG.md→ add release notes
Tags follow the pattern: <plugin>-v<version>
# Examples
ruff-lint-v1.0.0
ruff-lint-v1.0.1
pytest-assistant-v1.1.0
alembic-migrations-v2.0.0git checkout develop
git pull origin develop
git checkout -b release/ruff-lint-v1.1.0# Update plugin.json
# Update marketplace.json
# Update CHANGELOG.mdgit commit -m "chore(ruff-lint): bump version to 1.1.0"
git push origin release/ruff-lint-v1.1.0
# Create PR to master
# After approval, mergegit checkout master
git pull origin master
git tag ruff-lint-v1.1.0
git push origin ruff-lint-v1.1.0- Go to Releases → New Release
- Select tag:
ruff-lint-v1.1.0 - Title:
ruff-lint v1.1.0 - Copy changelog section to description
- Publish
git checkout develop
git merge master
git push origin developOpen an issue with the question label.