First off, thank you for considering contributing to Second Opinion MCP! It's people like you that make this project a great tool for everyone. This document provides guidelines and steps for contributing.
By participating in this project, you are expected to uphold our Code of Conduct:
- Be respectful and inclusive
- Exercise consideration and empathy
- Gracefully accept constructive criticism
- Focus on what is best for the community
- Show courtesy and respect towards others
Before creating bug reports, please check the issue list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples to demonstrate the steps
- Describe the behavior you observed
- Explain the behavior you expected to see
- Include any relevant error messages or logs
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include:
- A clear and descriptive title
- A detailed description of the proposed functionality
- Any possible drawbacks or considerations
- If possible, examples of similar features in other projects
- Fork the repository and create your branch from
main - If you've added code that should be tested, add tests
- Ensure the test suite passes
- Make sure your code follows the existing style guidelines
- Update documentation as needed
- Issue the pull request!
-
Clone the repository:
git clone https://github.com/pinkpixel-dev/mindbridge.git cd mindbridge -
Install dependencies:
./install.sh
-
Create a branch:
git checkout -b feature/your-feature-name
-
Make your changes and commit:
git add . git commit -m "Description of changes"
-
Push to your fork:
git push origin feature/your-feature-name
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
- Use TypeScript's strict mode
- Always define proper types and interfaces
- Use async/await over raw promises
- Document complex functions with JSDoc comments
- Follow the existing code formatting (Prettier + ESLint)
When adding support for a new LLM provider:
- Create a new file in
src/providers/ - Implement the
LLMProviderinterface - Add proper error handling and type definitions
- Update the provider factory
- Add configuration options to the README
- Include example usage
- Add tests if applicable
- Keep documentation up to date with changes
- Use clear and concise language
- Include code examples where helpful
- Document both success and error scenarios
- Add TypeScript type definitions
- Write tests for new features
- Ensure existing tests pass
- Test edge cases and error conditions
- Follow existing test patterns
Feel free to open an issue for discussion or reach out to @sizzlebop on Discord.
Made with ❤️ by Pink Pixel