# salkantay-api

## Apuntes y continuidad entre sesiones (OBLIGATORIO)

Los apuntes viven en `.claude/notas/*.md` (y planes sueltos en `.claude/*.md`). Son la memoria entre días: el usuario los considera muy importantes.

- **Al pedir continuar** ("sigamos", "continuemos", "lo de ayer", "donde quedamos", etc.): lo PRIMERO es leer `.claude/notas/*.md`, antes de mirar git o cualquier otra cosa. Retomar desde ahí, no reconstruir desde el diff.
- **Recordar proactivamente**: al inicio de cada sesión (o en la primera respuesta), revisar los apuntes y avisar al usuario de lo marcado como "Mañana", "Próximo paso" o "Pendiente" con fecha vencida, **aunque el usuario no lo mencione**. Si el usuario arranca otra tarea y se olvida, recordárselo igual (breve) y preguntar si lo retomamos o lo dejamos para después.
- **Cuando el usuario pida apuntar algo** ("apúntalo", "para mañana", "anótalo"): escribirlo en `.claude/notas/<tema>.md` con fecha, en una sección `## Mañana` / `## Pendiente` con checkboxes, de forma que se entienda sin contexto de la conversación.
- Al cerrar un pendiente, marcarlo `[x]` (o quitarlo) y actualizar la fecha de "Última actualización" del archivo.

## Estilo de código

- Comentarios: solo donde se necesitan y los menos posibles. Sin código comentado ni separadores.

## Esquema de base de datos

- **NUNCA leer ni buscar en `app/DBTestSupport/db_salkantay.sql`.** No refleja el esquema real.
- **No deducir índices** a partir de archivos del repo (ni el .sql, ni `database/releases/`, ni `t_release`). Esos archivos no son la fuente de verdad sobre qué índices existen.
- Si hace falta saber el esquema real o los índices de una tabla, pedírselo al usuario (`SHOW INDEX FROM ...`, `SHOW CREATE TABLE ...`). No asumir.

## Acceso directo a la base de datos: PROHIBIDO

- **NUNCA conectarse directamente a la base de datos** (ni `db_salkantay` ni ninguna otra), aunque sea solo lectura: nada de `php artisan tinker`, cliente `mysql`, `php -r` con `DB::`/PDO, scripts propios que abran conexión, ni consultas como `SHOW CREATE PROCEDURE/TABLE` o `SELECT`.
- Si hace falta ver un procedure, el esquema o datos tal como están en la BD: **pedírselo al usuario**.
- La BD solo se toca a través del código de la aplicación:
  - Probar endpoints de la API por HTTP (ej. `curl` al servidor local) con el token que dé el usuario.
  - Correr los tests con `phpunit` (usan `db_salkantay_tests` según `phpunit.xml`).
