# Gemini Global Configuration (GEMINI.md) This document provides a set of global instructions and principles for the Gemini CLI to follow during our interactions. **Reference:** - **[Project Architecture](file:///Users/moritz/src/fitness_antigravity/ARCHITECTURE.md)**: ALWAYS refer to this document for the technical layout and data flows of the system. ## Environment Management - **Startup Rule:** ALWAYS start the application using `make run`. NEVER try to start individual services manually or use the old `fitmop.sh`. - **Shutdown:** Use `Ctrl+C` to stop the services. ## Code Quality & Standards ### 1. Linting, Formatting & Testing ALWAYS run the full pipeline before completing a task: - **Command**: `make check` - **Action**: Fix ALL errors, warnings, and coverage failures before verifying the task. - **Strictness**: DO NOT run individual linters (e.g., `ruff`, `npm run lint`) in isolation. ALWAYS use `make check` to ensure the entire state is valid. ### 2. Testing ALWAYS run the full test suite to ensure no regressions: - **Backend**: `uv run pytest` (in `/backend`) - **Frontend**: `npm run test` (in `/frontend`) - **Action**: Every new feature or major refactor MUST include or update relevant tests. ### 3. Error Handling & Logging - **No Print Statements**: Use `logging` in Python and `console.error` (with prefix) in Vue. - **Fail Fast**: Let exceptions bubble up to the global handler in `backend/src/main.py`. - **Validation**: Use Pydantic models for all API requests and responses. ### 4. Documentation - Refer to `CONTRIBUTING.md` for detailed guidelines. - Keep `task.md` and `implementation_plan.md` updated throughout the task.