# AGENTS.md: proyecto PHP de tu-dominio.com

## Contexto
- Proyecto PHP a medida en un plan Linux de HostCarriel. Las carpetas de este proyecto están en mi ordenador.
- Conéctate con: `ssh hc-tu-dominio.com` (alias de mi ~/.ssh/config). No muestres usuario, clave ni contraseñas.
- Estructura: `public/` es la única carpeta servida (raíz de documentos); `src/`, `config/`, `templates/` y `database/` quedan fuera.
- En el servidor, el proyecto está en `mi-app/` y el dominio sirve `mi-app/public`.
- PHP en línea de comandos: la versión de PHP de mi web, con la ruta completa de su binario (`/usr/bin/phpXY`, XY = versión sin punto; «Conecta tu IA» la escribe aquí). Prefiero ejecutar Composer en mi ordenador y subir `vendor/`; si lo ejecutas en el servidor, usa esa misma ruta: `/usr/bin/phpXY -f /usr/bin/composer install`.
- Base de datos MySQL creada por mí en el panel de hosting. Variables: DB_HOST, DB_NAME, DB_USER, DB_PASS en `.env` (nunca en el código ni en Git).

## Reglas de seguridad (obligatorias)
- Agrupa varios comandos en una sola llamada SSH; no abras muchas conexiones seguidas.
- Al terminar una tarea larga, cierra la conexión compartida con `ssh -O exit hc-tu-dominio.com`.
- Si ssh falla con «unix_listener», «ControlPath too long» o «ControlSocket», conéctate sin conexión compartida: `ssh -o ControlMaster=no -o ControlPath=none hc-tu-dominio.com`.
- Nunca toques contraseñas ni el archivo `.env` del servidor. Nunca los leas, muestres ni escribas en el código, en Git ni en este archivo.
- Haz una copia antes de cambiar: un commit de Git en mi ordenador y, antes de tocar el servidor, un «Snapshot» pedido por mí en el panel de hosting.
- Propón un plan y espera mi aprobación («adelante») antes de escribir o ejecutar cambios.
- Sube con rsync siempre primero en simulación (`-n`), excluyendo `.git/`, `.env`, `node_modules/` y `AGENTS.md`/`CLAUDE.md`. Nunca uses `--delete` sin que yo lo pida.
- Pregúntame antes de borrar archivos, tablas o datos. Nada de `rm -rf`, `DROP` ni `TRUNCATE` sin aprobación.
- Código: consultas PDO preparadas, salida escapada, tokens CSRF, `password_hash`/`password_verify`, `display_errors` desactivado y errores en un log fuera de `public/`.
- Un commit por funcionalidad, con mensaje claro.
- No instales skills ni plugins de terceros sin avisarme.
- No uses `sudo` (en este hosting bloquea mi acceso SSH).

## Límites del hosting
- No hay Node.js, Docker, procesos permanentes (Redis, colas con workers, WebSockets) ni sudo.
- Si algo necesita compilarse (JavaScript, CSS), se hace en mi ordenador y se sube el resultado.
- Las tareas programadas se crean en el panel de hosting («Scheduled Tasks»).
- `mod_rewrite` y `.htaccess` están activos. El HTTPS se activa desde el panel de hosting, no desde `.htaccess`.

## Cómo volver atrás
- Git en mi ordenador (`git revert`) y nueva subida con rsync.
- Si cambié la raíz de documentos y falla, vuelvo a `public_html`.
- Copias automáticas del panel de hosting («Timeline Backups» → «Restore»).

## Decisiones del proyecto (rellenar)
- Qué hace el proyecto:
- Librerías de Composer y para qué sirve cada una:
- Tablas de la base de datos:
- Lo que no se toca sin preguntarme:
