2.9 KiB
2.9 KiB
BRIEF — Sprint 1: Fundación de datos
Brief versionado. Arranca antes de pedirle código al agente (Patrón A.1). El detalle ejecutable de cada etapa va en
ETAPA_X_PROMPT.md.
Objetivo (una frase)
Tener el modelo de datos de la plataforma implementado en Supabase — esquema + RLS + seed de la encuesta de mapeo de cuidadores — como base verificable sobre la que después se montan formulario, dashboard y wizard.
Por qué este sprint primero
Todo lo demás (formulario, dashboard, wizard) escribe o lee de este modelo. Un modelo con datos sensibles mal diseñado no se migra gratis. Empezamos por el contrato de datos (ADR-001 + DATA_MODEL).
Alcance (qué entra)
- Migraciones de Supabase para las tablas de
DATA_MODEL.md. - Policies de RLS según la "Intención de RLS" de
DATA_MODEL.md. - Constraint/trigger que rechaza
respondent_idno nulo cuandois_anonymous = true. - Función
agg_segment(...)que suprime celdas concount < k_threshold. - Tablas de consentimiento (
consent_versions,consent_records) inmutables. - Seed: la encuesta de mapeo de cuidadores (preguntas B1/C1/D1 con lógica condicional, H1 con
límite, escalas, texto libre) cargada como
survey+questions+ reglas condicionales. - Seed de 1 organización de prueba.
Fuera de alcance (explícito)
- Frontend del formulario (Sprint 2).
- Dashboard / reportes (Sprint 3).
- Wizard de creación de encuestas (post-validación del caso fijo).
- Integración LLM (BACKLOG).
- Modo B /
controller_roledual (reservado en esquema, no operado). respondent_iden uso (reservado, va NULL).- Decisión de residencia de datos (ADR-002 abierto; v1 puede correr en Cloud con datos de prueba).
Decisiones ya tomadas (no renegociar — ver CLAUDE.md y ADR-001)
- Encuestas anónimas a nivel respondente; se conserva
company_id+ cuasi-identificadores. - Dedup por
ip_hash. Cuasi-identificadores en bucket (rango etario, no fecha exacta). - Modo A. Consentimiento granular versionado inmutable. Umbral k = 5.
- El texto libre no se expone crudo a la capa analítica.
Criterios de éxito (checklist)
supabase db reset/ migraciones aplican limpio desde cero.- El esquema generado coincide con
DATA_MODEL.md(todas las tablas y columnas). - Test de RLS: una organización NO puede leer filas crudas de otra (ni de la suya).
- Test:
INSERTconrespondent_idno nulo en encuesta anónima → falla. - Test:
agg_segmentdevuelve "n insuficiente" para un segmento con count < 5. - Test:
UPDATE/DELETEsobreconsent_records→ falla (inmutabilidad). - Seed carga la encuesta de cuidadores con sus reglas condicionales íntegras.
- El director revisa el esquema generado (no solo "tests verdes").
Etapas del sprint
- Etapa 1 — Esquema + RLS + constraints + seed (este prompt:
ETAPA_1_PROMPT.md). - (Etapa 2+ se definen tras validar la Etapa 1.)