Thank you for your interest in contributing to Trinity! This document provides guidelines for contributing to the project.
Trinity is licensed under the Apache License 2.0. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Trinity by you shall be licensed under the Apache License 2.0, without any additional terms or conditions (per Section 5 of the license).
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
- Check if the issue already exists in GitHub Issues
- If not, create a new issue with:
- Clear, descriptive title
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Docker version, etc.)
- Relevant logs or screenshots
- Open an issue with the
enhancementlabel - Describe the use case and problem you're solving
- Propose a solution (optional)
- Be open to discussion and alternatives
The project follows a 4-stage SDLC: Todo → In Progress → In Dev → Done, tracked via GitHub Issues labels (status-in-progress, status-in-dev).
- Fork and clone the repository
- Find or create an issue — every PR must link to an issue
- Create a feature branch from
dev:git checkout dev && git pull origin dev git checkout -b feature/<issue-number>-your-feature-name
- Make your changes following our coding standards
- Test your changes locally
- Commit with clear messages:
git commit -m "feat: Add support for custom metrics" - Push and create a PR against
dev— includeFixes #Nin the description.mainis reserved for release cuts.
We use conventional commits:
feat:New featurefix:Bug fixdocs:Documentation onlystyle:Formatting, no code changerefactor:Code change that neither fixes nor addstest:Adding testschore:Maintenance tasks
Examples:
feat: Add agent custom metrics API
fix: Correct context percentage calculation
docs: Update deployment guide for production
- Docker and Docker Compose v2+
- Node.js 20+ (for frontend development)
- Python 3.11+ (for backend development)
# 1. Clone your fork
git clone https://github.com/YOUR_USERNAME/trinity.git
cd trinity
# 2. Configure environment
cp .env.example .env
# Edit .env with required values
# 3. Build base image
./scripts/deploy/build-base-image.sh
# 4. Start services
./scripts/deploy/start.sh
# 5. Access the platform
# Web UI: http://localhost
# API: http://localhost:8000/docs# Backend tests
cd tests
python -m pytest -v
# Frontend (if applicable)
cd src/frontend
npm run test- Follow PEP 8
- Use type hints
- Document public functions with docstrings
- Keep functions focused and small
- Use TypeScript for new code
- Follow existing code style
- Use meaningful variable names
- Add comments for complex logic
- Use Composition API
- Follow Vue.js style guide
- Keep components focused
- Use Pinia for state management
trinity/
├── src/
│ ├── backend/ # FastAPI - Python
│ ├── frontend/ # Vue.js 3 - TypeScript
│ ├── mcp-server/ # MCP Server - TypeScript
│ └── audit-logger/ # Audit Service - Python
├── docker/
│ ├── base-image/ # Agent base image
│ └── ... # Service Dockerfiles
├── config/ # Configuration files
├── docs/ # Documentation
└── tests/ # Test suite
Look for issues labeled good first issue - these are suitable for newcomers.
- Agent template improvements
- UI/UX enhancements
- MCP tool additions
- Documentation improvements
- Test coverage
- Improve existing docs
- Add examples and tutorials
- Fix typos and clarify language
- Translate to other languages
- Open a Discussion for questions
- Join our community (link coming soon)
- Email: hello@ability.ai
Contributors will be recognized in:
- GitHub contributors list
- Release notes for significant contributions
- Special thanks section (for major features)
Thank you for contributing to Trinity!