Contributing to Flugins¶
Thank you for your interest in contributing to Flugins! This document provides guidelines for contributing to the project.
Code of Conduct¶
By participating in this project, you agree to maintain a respectful and inclusive environment for all contributors.
How to Contribute¶
There are many ways to contribute to Flugins:
- Report Bugs: Submit detailed bug reports
- Suggest Features: Propose new plugin ideas
- Submit Plugins: Create and share new plugins
- Improve Documentation: Enhance or clarify documentation
- Review Pull Requests: Help review code submissions
- Answer Questions: Help others in discussions
Getting Started¶
1. Fork the Repository¶
Click the "Fork" button on the GitHub repository to create your own copy.
2. Clone Your Fork¶
3. Create a Branch¶
Use descriptive branch names:
- feature/new-plugin-name for new features
- fix/bug-description for bug fixes
- docs/improvement-description for documentation
4. Make Your Changes¶
- Write clear, maintainable code
- Follow existing code style
- Add tests for new functionality
- Update documentation as needed
5. Test Your Changes¶
6. Commit Your Changes¶
Write clear, descriptive commit messages:
Follow Conventional Commits:
- feat: for new features
- fix: for bug fixes
- docs: for documentation
- test: for tests
- refactor: for code refactoring
7. Push to Your Fork¶
8. Open a Pull Request¶
- Go to the original repository
- Click "New Pull Request"
- Select your fork and branch
- Fill out the PR template
- Submit for review
Pull Request Guidelines¶
Title¶
Use clear, descriptive titles: - ✅ "Add weather plugin with API integration" - ❌ "Update stuff"
Description¶
Include: - What changes were made - Why the changes are needed - How to test the changes - Any breaking changes - Related issues (if applicable)
Checklist¶
Before submitting, ensure: - [ ] Code follows project style guidelines - [ ] Tests pass locally - [ ] Documentation is updated - [ ] Commit messages are clear - [ ] No sensitive information is included - [ ] Changes are backwards compatible (or documented)
Coding Standards¶
JavaScript/TypeScript¶
- Use ES6+ features
- Follow Airbnb JavaScript Style Guide
- Use meaningful variable names
- Add JSDoc comments for public APIs
File Organization¶
plugins/
└── plugin-name/
├── plugin.json
├── README.md
├── src/
│ └── main.js
└── tests/
└── main.test.js
Documentation¶
- Use Markdown for documentation
- Include code examples
- Add screenshots when relevant
- Keep language clear and concise
Testing¶
Writing Tests¶
- Test core functionality
- Test error conditions
- Test edge cases
- Maintain high coverage
Running Tests¶
# Run all tests
npm test
# Run specific test
npm test -- plugin-name
# Run with coverage
npm test -- --coverage
Reporting Issues¶
When reporting bugs, include:
- Clear Title: Describe the issue briefly
- Description: Explain what happened
- Steps to Reproduce: Numbered steps to reproduce
- Expected Behavior: What should happen
- Actual Behavior: What actually happened
- Environment: OS, Claude Code version, etc.
- Screenshots: If applicable
- Additional Context: Any other relevant information
Issue Template¶
## Description
Brief description of the issue
## Steps to Reproduce
1. Step one
2. Step two
3. Step three
## Expected Behavior
What should happen
## Actual Behavior
What actually happened
## Environment
- OS: [e.g., macOS 13.0]
- Claude Code Version: [e.g., 1.0.0]
- Plugin Version: [e.g., 1.0.0]
## Additional Context
Any other relevant information
Feature Requests¶
When suggesting features:
- Use Case: Explain why it's needed
- Proposed Solution: Describe your idea
- Alternatives: Other solutions considered
- Additional Context: Screenshots, examples, etc.
Review Process¶
For Contributors¶
- Be patient during review
- Respond to feedback promptly
- Make requested changes
- Keep discussions professional
For Reviewers¶
- Be constructive and respectful
- Provide specific feedback
- Test the changes
- Approve when ready
Communication¶
Channels¶
- GitHub Issues: Bug reports, feature requests
- GitHub Discussions: Questions, ideas
- Pull Requests: Code review, implementation discussion
Response Times¶
We aim to: - Acknowledge issues within 48 hours - Review PRs within 1 week - Release new versions monthly
Recognition¶
Contributors are recognized: - In the project README - In release notes - Through GitHub contributor stats
License¶
By contributing, you agree that your contributions will be licensed under the MIT License.
Questions?¶
If you have questions about contributing:
- Check this guide
- Search existing issues
- Ask in GitHub Discussions
- Open a new issue
Thank you for contributing to Flugins! 🎉