Files

3.6 KiB

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 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: 2008 (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 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.