How to Contribute to Quorvex AI¶
Set up a development environment, follow code style conventions, run tests, and submit pull requests.
Prerequisites¶
- Git, Python 3.10+, Node.js 18+, npm 9+
- A GitHub account with a fork of the repository
- Docker (optional, for PostgreSQL and production testing)
Step 1: Fork and Clone¶
# Fork the repository on GitHub, then:
git clone https://github.com/YOUR_USERNAME/quorvex_ai.git
cd quorvex_ai
Step 2: Set Up the Development Environment¶
This creates a Python virtual environment, installs all dependencies, installs Playwright browsers, and initializes the database.
Configure AI credentials in .env:
Step 3: Start Development Servers¶
- Backend API: http://localhost:8001 (FastAPI with hot-reload)
- Frontend: http://localhost:3000 (Next.js with hot-reload)
Verify:
Step 4: Create a Feature Branch¶
Branch naming conventions: - feature/ -- new functionality - fix/ -- bug fixes - docs/ -- documentation changes - refactor/ -- code restructuring
Step 5: Follow Code Style¶
Python¶
Enforced by ruff (config in orchestrator/pyproject.toml):
- Line length: 120 characters
- Double quotes
- Imports sorted by isort
- Target: Python 3.10
General Guidelines¶
- Use
logging.getLogger(__name__)instead ofprint()in backend code - Load AI credentials via
setup_claude_env()before using the Agent SDK - Use
extract_json_from_markdown()for parsing AI output - Prefer role-based Playwright selectors (
getByRole,getByLabel) over CSS selectors
Frontend¶
Next.js default linting:
Step 6: Run Tests Before Submitting¶
# All Python tests
make test
# Specific test file
cd orchestrator && python -m pytest tests/test_09_memory_system.py -v
# Lint check
make lint
If you changed a pipeline stage, run end-to-end:
Step 7: Write Clear Commit Messages¶
Follow Conventional Commits:
feat: Add API endpoint for bulk test execution
fix: Prevent crash when spec has no URL
docs: Add load testing guide
refactor: Extract selector parsing into utility
test: Add browser pool unit tests
chore: Update ruff to 0.5.0
Step 8: Open a Pull Request¶
- Push your branch to your fork
- Open a PR against
mainon the upstream repository - Fill out the PR description with what changed and why
- Link related issues (e.g., "Fixes #42")
- Ensure CI checks pass
Note
Some CI jobs (smoke tests, end-to-end pipeline tests) require API credentials unavailable to forks. These are automatically skipped for external contributors. A maintainer will run the full suite after review.
Step 9: Address Review Feedback¶
- Push additional commits to address feedback (do not force-push during review)
- Once approved, a maintainer merges the PR
Types of Contributions¶
| Type | Description |
|---|---|
| Bug fixes | Fix reported issues or flaky tests |
| Features | New capabilities, pipeline improvements, dashboard pages |
| Documentation | Improve guides, add examples, fix typos |
| Test specs | Example markdown specs for common scenarios |
| Integrations | Support for new CI providers, test tools, or LLM providers |
| Performance | Optimize pipeline stages, reduce resource usage |
First-Time Contributors¶
Look for issues labeled:
good first issue-- small, well-defined taskshelp wanted-- maintainers welcome contributionsdocumentation-- documentation improvements
Good starting points:
- Write a new test spec in
specs/ - Improve an error message
- Add a troubleshooting entry
- Fix a typo in documentation
Verification¶
Before submitting your PR:
make lintpasses without errorsmake testpasses all testsmake devstarts and the dashboard loads- If you changed a pipeline stage, run a test spec end-to-end
- Your commit messages follow conventional commits format
Related Guides¶
- Extending -- add new features to the codebase
- Getting Started -- development setup
- Pipeline Modes -- understand the architecture
- Troubleshooting -- fix common dev issues