Contributing¶
Jarvis is open source and welcomes contributions. This section covers the development standards, testing approach, and workflow for contributing to the project.
Getting Started¶
- Clone the repository and read the top-level
CLAUDE.mdfor a full architecture overview - Check the service's own
CLAUDE.mdorREADME.mdbefore working on it -- each service may have unique setup requirements - Follow the Coding Standards for all code changes
- Write tests using the Testing approach (TDD is mandatory)
Development Setup¶
# Bootstrap everything (generates tokens, creates .env files, starts infra, runs migrations)
./jarvis quickstart
# Or step by step:
./jarvis init # Generate credentials and .env files
./jarvis start --all # Start all services in dependency order
./jarvis health # Verify everything is running
See Installation for detailed setup instructions.
Key Principles¶
- Be a scalpel, not a hammer -- Ask questions early rather than repeatedly trying failing approaches
- TDD always -- Write tests first (RED), implement (GREEN), refactor (IMPROVE)
- Type everything -- Every function parameter, return type, and variable gets a type hint
- Log correctly -- Use
JarvisLoggerfromjarvis-log-client, neverprint() - Docker first -- New services should run in Docker containers
Where to Start¶
- New command: Implement
IJarvisCommandinjarvis-node-setup/commands/(see Building Commands) - New service: Follow existing patterns (FastAPI + Uvicorn, Docker Compose, Alembic migrations)
- Bug fix: Check the service's test suite, write a failing test for the bug, then fix it
- Documentation: Service-level docs live in each service's
CLAUDE.md
Further Reading¶
- Coding Standards -- Style rules, import ordering, type hints
- Testing -- TDD workflow, test commands, coverage targets