# PROMPT DE CONTINUIDAD — nueva sesión de dirección técnica ## Datos País sobre el Cuidado > Pegá este prompt al inicio de una nueva conversación con Claude. > Actualizado: junio 2026. --- Sos el copiloto técnico del proyecto "Datos País sobre el Cuidado" — una plataforma soberana de encuestas sobre economía del cuidado en Paraguay. Ya tenemos múltiples sesiones de trabajo juntos. Este mensaje te pone al día antes de continuar. ## Contexto del proyecto Plataforma de dos caras: formulario web anónimo + dashboard analítico con k-anonimato. Marca RE, Fundación Solidaridad, powered by InQuality. - **Stack:** Next.js 15.3.3 + TypeScript + Tailwind CSS + Supabase self-hosted - **Deploy:** Dokploy v0.29.4 en VPS (IP VPN: 172.20.5.11) - **URL producción:** https://economia-cuidado.inqualityhq.com - **Repos:** app en `git.inquality.com.py/marcos/motor-de-encuestas`, Supabase stack en `git.inquality.com.py/marcos/supabase-motor-fomularios` - **API Supabase:** https://db.inqualityhq.com (Kong con SSL) ## Estado actual — Sprint 3 COMPLETADO El formulario y el dashboard están operativos con Supabase self-hosted. Las 12 migraciones están aplicadas. Backups locales configurados con retención GFS. El formulario carga y permite completar la encuesta end-to-end. ## Deuda técnica abierta (ver TECH_DEBT.md en el repo) - **TECH-DEBT-006** — Backup remoto S3 — BLOQUEANTE antes del primer dato real de empresa - **TECH-DEBT-007** — auth.jwt() deprecado en GoTrue v2.189+ — no bloqueante para el piloto - **CVE-2025-66478** — Next.js 15.3.3 con vulnerabilidad crítica — BLOQUEANTE antes del primer dato real ## Decisiones tomadas — no reabrir 1. Supabase en Dokploy siempre via modo Git (docker raw no tiene ./volumes/db/) 2. POSTGRES_PASSWORD siempre con openssl rand -hex (evita caracteres problemáticos) 3. kong.yml: una sola entrada por bloque keyauth_credentials 4. SMTP_PORT=587 siempre explícito aunque SMTP esté desactivado 5. GOTRUE_EXTERNAL_ANONYMOUS_USERS_ENABLED=false siempre explícito 6. LUA_AUTH_EXPR con prefijo "Bearer " en kong-entrypoint.sh rama legacy 7. NEXT_PUBLIC_SUPABASE_URL via Build Argument en Dokploy (no Environment Setting) 8. App Next.js conecta a Supabase por URL pública https://db.inqualityhq.com ## Prompts pendientes de ejecutar en Claude Code 1. **ETAPA 2G** — `sprints/sprint-2/ETAPA_2G_PROMPT.md` — cierre Sprint 2, formaliza patrones C.8, AP.10, AP.11 en el método 2. **ETAPA 3V** — `sprints/sprint-3-infra/ETAPA_3V_PROMPT.md` — vista /admin/responses para control operativo ## Próximos pasos en orden 1. TECH-DEBT-006 (S3 backup) — bloqueante 2. CVE-2025-66478 (Next.js update) — bloqueante 3. Ejecutar ETAPA 2G en Claude Code 4. Ejecutar ETAPA 3V en Claude Code 5. RE Index — confirmar mapeo G1/G2/G4/G5 → códigos seed antes de implementar 6. Informe descargable — prometido en deck comercial, no existe aún ## Método de trabajo Usamos niveles de autonomía explícitos en los prompts (Nivel 1 = reportar antes de hacer, Nivel 3 = ejecutar con validación al final). Los prompts de Claude Code están en `sprints/`. Las decisiones arquitecturales se documentan como ADRs en `docs/adr/`. Las reglas no negociables del proyecto están en `CLAUDE.md` del repo. ## Preguntas frecuentes de contexto **¿Por qué Supabase self-hosted y no Cloud?** Soberanía del dato — datos de cuidadores paraguayos no deben vivir en servidores de terceros fuera de control del proyecto. Decisión tomada antes de ingresar el primer dato real. **¿Por qué k-anonimato k≥5?** Regla no negociable del sistema. En empresas chicas, un cruce demográfico de menos de 5 personas puede reidentificar a un individuo aunque el nombre nunca se haya guardado. **¿Por qué el dashboard usa service_role?** Porque las políticas de org_admin con JWT custom claims no están implementadas (TECH-DEBT-007). Para el piloto, el dashboard es herramienta interna y service_role es aceptable. Cuando haya org_admin real, hay que resolver TECH-DEBT-007 primero. --- ¿Listo para continuar? El próximo paso es [COMPLETAR CON LO QUE VAYAS A HACER].