Files
app_compartir/.agente/reglas.md
T

48 lines
3.6 KiB
Markdown

# reglas.md — Reglas operativas y técnicas de app_compartir (drop.sigmac.app)
> Normas inviolables que todo agente o desarrollador debe respetar al interactuar con este proyecto.
---
## 1. Identidad del Agente
- Mantener siempre el archivo [`id_agente.md`](../id_agente.md) en la raíz del repositorio según la norma del ecosistema.
- **No inventar nombres ni identificadores de agente**: El nombre oficial y el ID numérico son potestad exclusiva de la confirmación emitida por `sigma-robot` y autorizada por `pablinux`.
- Al inicio de cada sesión ("carga proyecto"), leer `id_agente.md` y `agents.md` para conocer el estado y credenciales.
- Nunca commitear tokens, contraseñas ni códigos secretos (`SIGMA_AGENTE_SOLICITUD_ID`, `SIGMA_AGENTE_CODIGO`, `SIGMA_AGENTE_TOKEN`).
---
## 2. Infraestructura y MCP
- **Prohibido asumir o inventar IPs, puertos o servidores**:
- Servidor de producción asignado: `server-webapps` CT 132 (`192.168.10.160`).
- Puerto de producción interno: `2006` (puerto local de desarrollo: `8085`).
- Dominio público: `https://drop.sigmac.app` (Reverse Proxy Apache con SSL/TLS Let's Encrypt).
- Servicio systemd: `siax-app-DROP_SIGMAC_APP.service` (gestionado y supervisado por SIAX Monitor en el puerto `8080`).
- Base de datos: SQLite en modo WAL (`data/compartir.db`) sin dependencias de MySQL ni MongoDB.
- Registro central MCP: Ficha técnica registrada en MariaDB con **ID 34** (categoría `application`, tipo `web`).
- El archivo [`.agente/infraestructura.md`](infraestructura.md) es un espejo local de solo lectura del documento maestro `/home/pablinux/Projects/infraestructura.md`. Nunca modificarlo de forma independiente sin sincronizar con el maestro.
---
## 3. Reglas de Negocio y Ciclo de Vida de Archivos
- **Política de Retención Estricta**:
- **Invitados (Guest)**: Cero fricción (sin login requerido). Todo archivo, nota o código subido como invitado tiene una vida útil máxima e inmutable de **24 horas**. El worker en segundo plano (`cleaner.go`) purga periódicamente tanto el archivo físico en disco como su fila en SQLite.
- **Usuarios Registrados (WebControl / Google OAuth)**: Disponen de almacenamiento **permanente**. Sus archivos nunca expiran ni son tocados por el limpiador automático. Tienen gestión completa desde `/mis-archivos`.
- **Generación de Código QR**:
- Se genera de forma nativa en backend Go vía `github.com/skip2/go-qrcode` en endpoint `/qr/{id}` como imagen PNG. Cero dependencias pesadas de librerías JS cliente para la generación del código QR.
- **Visor Universal Embebido**:
- El visor `/v/{id}` debe renderizar vista previa directa según el MIME type (imágenes con modal zoom, reproductor HTML5 de video/audio, visualizador embebido de PDF, y código formateado con botón de copia con un clic).
---
## 4. Comandos de Contexto del Ecosistema
- **"carga proyecto"**: Leer `agents.md`, `id_agente.md` y la carpeta `.agente/` para absorber el contexto, reglas, objetivos y memoria técnica antes de ejecutar modificaciones.
- **"actualizar proyecto"**: Ejecutar tests automatizados (`go test -v ./...`), realizar commit estructurado de los cambios pendientes, actualizar `agents.md`, `README.md` y `.agente/proyecto_estructura.md`.
---
## 5. Seguridad y Dependencias
- Compilar binarios de producción sin CGO (`CGO_ENABLED=0 GOOS=linux GOARCH=amd64`), utilizando la implementación pura en Go de SQLite (`modernc.org/sqlite`).
- Mantener las rutas de almacenamiento dentro de `DATA_DIR` y utilizar nombres generados criptográficamente (slugs no predecibles) para prevenir ataques de Path Traversal.
- Toda sesión web debe utilizar cookies seguras HTTP-only protegidas por `SESSION_SECRET`.