# Reglas no negociables — leer antes de tocar este repo

Estas reglas aplican sin excepción mientras trabajes en el clon de
DocenTrack en Windows para terminar la Fase 6 (agente de huella).

## Git

- **Nunca** incluir coautoría (`Co-Authored-By: Claude...`,
  `Co-authored-by: Cursor...` ni ninguna variante) en ningún commit ni
  push de este repo, bajo ninguna circunstancia — aunque la
  herramienta la agregue sola al correr `git commit`. Si aparece,
  quitarla antes de confirmar o de hacer push. El autor del historial
  es solo el usuario (Ricardo).
- Solo crear commits cuando el usuario lo pida explícitamente. Si no
  queda claro, preguntar primero.
- Antes de cualquier comando que pueda descartar trabajo sin confirmar
  (`git checkout`/`restore`/`reset`/`clean`), correr `git status`
  primero.

## Docker / entorno

- Comandos de Laravel corren dentro de Docker:
  `docker compose exec --user "$(id -u):$(id -g)" app php artisan ...`
  — ese `$(id -u):$(id -g)` es sintaxis de shells tipo bash/zsh; en
  PowerShell puede que necesites adaptarlo o correr sin ese flag. Si
  da problemas de permisos en archivos generados dentro del
  contenedor, avísale al usuario en vez de forzar algo.
- No instalar PHP/Composer en el host — todo corre en contenedores,
  igual que en el resto del workspace de este usuario.

## Alcance de esta tarea

- **No toques la parte ya construida en Laravel** (tabla
  `fingerprints`, endpoint de sync, botones de enrolar/marcar con
  huella, middleware de token) salvo que encuentres un bug real y
  confirmado — ya fue revisada y verificada de forma independiente dos
  veces antes de este handoff (114/114 tests en verde). No la
  rediseñes ni la "mejores" sin que se te pida.
- El agente local (Python, fuera de Laravel) es la única pieza
  pendiente — ver `docs/fase6-handoff-windows.md` para el contrato
  exacto que debe cumplir.
- No agregues abstracciones, validaciones o manejo de errores para
  escenarios que no van a pasar. No refactorices código existente que
  no esté relacionado con esta tarea.

## Estilo de trabajo

- Antes de dar algo por "funcionando", verifícalo de verdad (correr el
  comando, ver el resultado) — no asumir que un paso funcionó porque
  "debería".
- Si algo requiere una decisión que no está en `docs/fase6-handoff-windows.md`
  ni en `docs/plans/plan-fase6-biometria-zk9500.md`, pregúntale al
  usuario en vez de inventar un criterio nuevo.
