# System Context

This project runs on a **Raspberry Pi 4 Model B (2018)**. 
Please take this into account for all code changes, dependencies (e.g., ARM architecture), and performance optimizations.

## Audio Output Note
When configuring audio or running tasks on this device, **always use the 3.5mm headphone jack (Audio Jack)** as the explicit audio output unless requested otherwise. The system might have HDMI devices as lower-index cards, which can cause headless/cron background scripts to fail with ALSA errors. Ensure tools and scripts explicitly target the correct audio card (usually `hw:2,0` or via a user-wide `~/.asoundrc` config).

## Development Guidelines
**STRICT ADHERENCE to the following guidelines is mandatory for every task. Failure to follow these principles undermines the integrity of the project.**

- **TDD (Test-Driven Development):** Always write tests *before* implementing the actual logic. Follow the Red-Green-Refactor cycle.
- **DRY (Don't Repeat Yourself):** Minimize redundancy in code and logic.
- **MVP (Minimum Viable Product):** Implement only what is necessary to meet the requirement.
- Use `uv` to manage dependencies for Python.
- Use `uv ruff` to lint the code.
- **Never commit untested code.**
- **Only commit when ruff is green.**

## Pre-commit Rules
- Always lint the code (`uv ruff`).
- Analyze the `README.md` and update its content if the code changes the use or behavior of the application for the end user or for API consumers.

