✓ Phase 3 completed: Coherence review and auto-fix (final, mandatory)

`review.md` scritto con le tre sezioni: un solo auto-fix (reflow whitespace della docstring che la Phase 1 ha scritto in `spa_worker.worker_snapshot`), sette voci flagged per il titolare — due docstring in `group_handler.py` che descrivono ancora la CPU della foto, il locale chiamato `cpu_percent`, la clausola duplicata in `CLAUDE.md`, il gate mancante nella docstring di `check_occupancy`, `ruff format` misurato e scartato (103/220 file si riformatterebbero, nessuna convenzione nel repo), e il nuovo errore mypy advisory introdotto dall'annotazione `dict[str, float]` della Phase 2. `ruff check` sul file set zero errori, `pytest tests/ -q` 1784 passed; commit `30e2eee`, tree pulito. Nessun `foreman.json`: notifica saltata.
