Thank you for your interest in contributing! This document provides guidelines for contributing to the Knowledge Base system.
Be respectful, inclusive, and professional in all interactions.
- Check if the bug has already been reported in Issues
- Create a new issue with:
- Clear title
- Detailed description
- Steps to reproduce
- Expected vs actual behavior
- Environment details (Python version, OS, etc.)
- Check existing feature requests
- Create a new issue with:
- Clear description of the feature
- Use case and benefits
- Proposed implementation (if any)
-
Fork the repository
-
Create a feature branch:
git checkout -b feature/your-feature-name
-
Make your changes:
- Follow the existing code style
- Add tests for new functionality
- Update documentation as needed
-
Run tests:
pytest tests/ -v ruff check scripts/
-
Commit your changes:
git add . git commit -m "feat: add new feature"
Use conventional commit format:
feat:- New featurefix:- Bug fixdocs:- Documentation changestest:- Test changesrefactor:- Code refactoring
-
Push to your fork:
git push origin feature/your-feature-name
-
Create a Pull Request:
- Provide a clear description
- Link related issues
- Ensure all checks pass
-
Install dependencies:
pip install -r requirements.txt npm install
-
Set up pre-commit hooks:
pip install pre-commit pre-commit install
-
Run tests:
pytest tests/ -v --cov=scripts
- Python: Follow PEP 8, use Ruff for linting
- JavaScript/TypeScript: Follow Prettier defaults
- Docstrings: Google style for Python
- Comments: Explain "why", not "what"
- Write tests for all new features
- Maintain >80% code coverage
- Use descriptive test names
- Include both positive and negative test cases
- Update README.md for user-facing changes
- Update technical_spec.md for architecture changes
- Add docstrings to all public functions
- Include examples in documentation
-
Review Checklist:
- Tests pass
- Code follows style guidelines
- Documentation updated
- No breaking changes (or documented)
- Commits are clean and descriptive
-
Review Process:
- Maintainer will review within 3-5 days
- Address feedback and update PR
- Once approved, maintainer will merge
Feel free to open an issue for any questions or clarifications.