Contributing¶
Setup¶
```bash git clone https://github.com/anote-ai/Panacea cd Panacea
Install Node.js packages¶
npm install
Set up Python backend¶
cd packages/backend python -m venv .venv source .venv/bin/activate pip install -r requirements.txt cp .env.example .env
Edit .env with your keys¶
Start everything¶
cd ../.. docker compose up ```
Development Workflow¶
- Create a feature branch from
main - Make your changes in the relevant
packages/directory - Run tests:
make test - Run linters:
make lint - Open a pull request
Testing¶
```bash
All tests¶
make test
Backend only¶
make test-backend
TypeScript only¶
make test-ts ```
Code Standards¶
Python (backend)¶
- Ruff for linting (
ruff check .) - Mypy for type checking (
mypy .) - Pytest for tests (≥80% coverage)
- Type-annotate all new functions
TypeScript (frontend/cli/sdk)¶
- ESLint for linting
- Vitest or Jest for tests
- Strict TypeScript (
"strict": true)
CI¶
GitHub Actions runs on every push: 1. Backend: ruff → mypy → pytest (80% coverage gate) 2. TypeScript: build → tests 3. VS Code: build extension 4. Docs: build MkDocs site