Skip to main content

Getting Started

Development Commands

Code Style

Python (Backend)

  • Ruff for linting and formatting (88-char lines, double quotes)
  • Type hints required
  • Config in backend/pyproject.toml
  • B008 is intentionally ignored (FastAPI Depends() pattern)

TypeScript (Frontend)

  • ESLint + Prettier
  • Components in PascalCase.tsx
  • Hooks start with use
  • Utilities in camelCase.ts

Testing

  • Tests use asyncio_mode = "auto" — no need for @pytest.mark.asyncio
  • Mock LLM calls to avoid API costs
  • Fixtures in backend/tests/conftest.py

Database Migrations

Pull Requests

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes with tests
  4. Run make lint and make format
  5. Submit a PR with a clear description

Security

See SECURITY.md for reporting vulnerabilities.