Los triggers 1.1, 1.6, 1.13 muestran solo Sí · No (sin "Prefiero no decir")
Al responder "No" en las tres, el formulario salta a 6.4 (no muestra secciones 2-5 ni 6.1-6.3) La pregunta 6.6 aparece antes del cierre Las preguntas multiple_choice muestran el hint "Podés marcar más de una opción"
This commit is contained in:
70
migrate-claude/PROMPT_NUEVA_SESION.md
Normal file
70
migrate-claude/PROMPT_NUEVA_SESION.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# 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].
|
||||
Reference in New Issue
Block a user