Files

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)

  1. Migraciones de Supabase para las tablas de DATA_MODEL.md.
  2. Policies de RLS según la "Intención de RLS" de DATA_MODEL.md.
  3. Constraint/trigger que rechaza respondent_id no nulo cuando is_anonymous = true.
  4. Función agg_segment(...) que suprime celdas con count < k_threshold.
  5. Tablas de consentimiento (consent_versions, consent_records) inmutables.
  6. 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.
  7. 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_role dual (reservado en esquema, no operado).
  • respondent_id en 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: INSERT con respondent_id no nulo en encuesta anónima → falla.
  • Test: agg_segment devuelve "n insuficiente" para un segmento con count < 5.
  • Test: UPDATE/DELETE sobre consent_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.)