Files
motor-de-encuestas/SEED_SPEC.md
markosbenitez 7e4991f960 feat(schema): esquema declarativo + seed v3 del formulario [4B]
Extiende questions con instance_generator/instance_of/hint y documenta
los operadores contains/eq_sole en conditional_rules (ADR-005).

Reescribe seed.sql con el instrumento v3.0.0 completo: 10 secciones,
40 preguntas (2 consentimiento + 38), contenido 100% desde
Formulario_Mapeo_Corregido.xlsx (versión autoritativa). Flujo
declarativo en datos, no en presentación: 3.1='No' oculta 3.2-3.5;
"Ninguna" en 4.1 salta a S10; "solo niño sin discapacidad" deja
visibles 5.3, 8.4, 9.1, 9.4 y oculta el resto (decisión confirmada
sobre el Excel corregido).

SEED_SPEC.md reescrito como contrato v3.0.0.

No ejecutado en producción — solo archivos de migración y seed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 17:21:11 -03:00

16 KiB
Raw Permalink Blame History

SEED_SPEC.md — Contrato del instrumento "Mapeo de Cuidadores" v3.0.0

Versión 3.0.0 — Sprint 4, Etapa 4B (Jun 2026). Reemplaza la v2.1. Reescritura completa del instrumento: 10 secciones, 40 preguntas (2 consentimiento + 38 de relevamiento), esquema declarativo de flujo (ADR-005). Seed LIMPIO — no migra datos de v2.1.

Fuente de contenido AUTORITATIVA: Formulario_Mapeo_Corregido.xlsx (versión corregida, en rojo = cambios aplicados). El mockup wizard_formulario_mapeo_v3.html define estructura de secciones y mecánica del mini-wizard (4.1→4.2/4.3); donde el Excel difiere en el flujo condicional de "solo niño sin discapacidad", gana el Excel (decisión de la directora, ver abajo "Flujo condicional — recorrido soloNino").

Claude Code reescribe seed.sql a partir de ESTE contrato.

Convenciones

  • Tipos: radio→single_choice, checkbox→multiple_choice, texto libre corto→text_short, texto libre largo→text_long, sí/no→yes_no.
  • Secciones persisten como filas questions.type='section': prompt=nombre de sección, hint=descripción/"porqué" (Opción C, ver ADR-005 §4.2).
  • conditional_rules vive en la pregunta/sección DEPENDIENTE (auto-target implícito, sin campo target). Vocabulario completo en supabase/migrations/20260620000002_form_schema_v3.sql: operadores eq, eq_any, not_in, contains, eq_sole; acciones show, hide.
  • is_sensitive=true en preguntas de salud/discapacidad/diagnóstico y en 8.4 (franja salarial, CONFIDENCIAL — analyst-only, nunca en vistas de empresa, igual que 3.4 en v2.1).
  • En preguntas multiple_choice el hint suele ser "Podés marcar más de una opción".
  • Mini-wizard de instanciación (ADR-005): 4.1 es instance_generator=true; 4.2 y 4.3 tienen instance_of='4.1' y se repiten una vez por cada vínculo familiar (opciones 27) marcado en 4.1. Las respuestas de cada instancia se guardan en answers.instance_id ('familiar_1', 'familiar_2'...).
  • Geo: 2.1 (departamento, 18 opciones) y 2.2 (ciudad, 219 opciones filtradas por departamento en el renderer) son cuasi-identificadores. 2.3 (barrio) es text_short de texto libre, opcional — NO entra al store analítico crudo sin categorizar (regla 4 CLAUDE.md); se usa solo como apoyo cualitativo, no agregable.

Flujo condicional — las 3 reglas principales

  1. r_show_si_s3_1 — 3.1='Sí' → muestra 3.2, 3.3, 3.4, 3.5 (discapacidad propia). Si 3.1='No', toda la sub-rama queda oculta.
  2. r_hide_ning — 4.1 contiene "Ninguna de las anteriores / No tengo vinculación de cuidado" → oculta S5, S6, S7, S8(header), 8.4, S9(header), 9.1, 9.4. El formulario salta directo a S10.
  3. r_hide_ning_sn (Ninguna O soloNino) — además de la condición anterior, también oculta cuando 4.1 tiene como ÚNICO elemento seleccionado "Hijo menor sin discapacidad" (eq_sole). Oculta: 5.1, 5.2, 5.4, S6 completa, S7 completa, 8.1, 8.2, 8.3, 9.2, 9.3.

Flujo condicional — recorrido "solo niño sin discapacidad" (soloNino)

Decisión de la directora (Etapa 4B): cuando 4.1 tiene como única respuesta "Hijo menor sin discapacidad", el recorrido visible es 5.3 → 8.4 → 9.1 → 9.4 → fin, tal como lo especifica el Excel corregido (no el mockup, que marcaba toda la Sección 5 como oculta). Esto es más granular que un simple "salto de sección": 5.3, 8.4, 9.1 y 9.4 quedan visibles porque no dependen de que haya responsabilidad económica o de cuidado activo — preguntan por quién cuida durante el horario laboral (5.3), franja salarial (8.4) y percepción/voluntariado organizacional (9.1, 9.4), que aplican igual a quien solo tiene un hijo menor sin discapacidad.

  • 4.1 = sole "Hijo menor sin discapacidad": 4.2 y 4.3 se ocultan (no hay tipo de discapacidad ni dispositivos de apoyo que relevar), 5.1/5.2/5.4 ocultas, 5.3 VISIBLE, S6 y S7 completas ocultas, 8.18.3 ocultas, 8.4 VISIBLE, 9.1 VISIBLE, 9.2/9.3 ocultas, 9.4 VISIBLE.
  • 4.1 contiene "Ninguna de las anteriores...": salta directo a S10 (todo S5S9 oculto).
  • 4.1 = cualquier combinación de opciones 27 (con o sin la opción 1): recorrido completo, 4.2/4.3 generan una instancia por cada vínculo 27 declarado.

Sección 1 — Consentimiento (S1, pos. 10)

Code Tipo Pregunta Requerida Notas
1.1 yes_no Declaro que fui informado/a sobre el propósito de esta encuesta y el tratamiento de mis respuestas, y acepto participar de forma voluntaria en el diagnóstico interno de [Empresa]. Gate de participación — ver consent_versions v2
1.2 yes_no Autorizo que mis respuestas anonimizadas se utilicen para el estudio país sobre la economía del cuidado en Paraguay. No Scope macro_n1 — Modo A (CLAUDE.md regla 7)

Sección 2 — Datos generales (S2, pos. 20)

Code Tipo Pregunta Opciones is_sensitive Notas
2.1 single_choice Departamento 18 departamentos de Paraguay + Capital no qi (cuasi-identificador)
2.2 single_choice Ciudad 219 ciudades (filtradas por 2.1 en el renderer) no qi
2.3 text_short ¿En qué barrio vivís? — (texto libre) no hint='Opcional.' — no entra al store analítico crudo
2.4 single_choice ¿Cuál es tu rango de edad? Menos de 25 · 25-34 · 35-44 · 45-54 · 55+ no qi
2.5 single_choice ¿Con qué género te identificás? Femenino · Masculino · No binario/Otro no qi
2.6 single_choice ¿En qué nivel organizacional estás? Directivo · Gerencial · Jefatura · Operativo · Auxiliar · Otro no qi
2.7 single_choice ¿Cuál es tu modalidad de trabajo actual? Presencial · Remoto · Híbrido no qi

Sección 3 — Prevalencia de discapacidad (S3, pos. 30) (sensible)

Cond.: 3.23.5 visibles solo si 3.1='Sí' (r_show_si_s3_1).

Code Tipo Pregunta Opciones is_sensitive
3.1 single_choice ¿Vos mismo/a tenés alguna discapacidad o condición de salud que pudiera afectar tu independencia o desempeño laboral? No · Sí trigger
3.2 multiple_choice ¿Qué tipo de discapacidad o condición tenés? Física/motora · Visual · Auditiva · Intelectual · Mental/psicosocial · Del habla y la comunicación · Múltiple · Vejez/osteoporosis/artrosis/otras · Amputación · Otra
3.3 multiple_choice ¿Usás algún elemento de apoyo para la movilidad o autonomía? Silla de ruedas · Bastón de apoyo · Bastón blanco · Andador · Muletas · Prótesis · Tecnología asistiva · Audífonos · No utilizo
3.4 single_choice ¿Contás con certificado oficial de discapacidad? Sí · No, pero estoy en trámite · No
3.5 multiple_choice ¿Cómo afecta tu discapacidad y/o condición limitante en tu trabajo? No afecta mi rendimiento · Falta de adecuaciones afecta más que la discapacidad · Transporte · Accesibilidad para participar

Sección 4 — Vinculación familiar (S4, pos. 40) (sensible)

Mini-wizard: 4.1 instance_generator=true; 4.2/4.3 instance_of='4.1', una instancia por vínculo 27 declarado en 4.1. Ocultas (4.2/4.3) si Ninguna o soloNino (r_hide_ning_sn).

Code Tipo Pregunta Opciones is_sensitive
4.1 multiple_choice ¿Cuál de las siguientes vinculaciones familiares tenés? 1. Hijo menor sin discapacidad · 2. Hijo menor con discapacidad · 3. Hijo adulto con discapacidad · 4. Familiar menor con discapacidad · 5. Familiar mayor con discapacidad · 6. Padre/madre con movilidad reducida o 100% dependiente · 7. Otro/Especificar · 8. Ninguna de las anteriores / No tengo vinculación de cuidado generador
4.2 multiple_choice (instancia) ¿Qué tipo de discapacidades o limitaciones tienen tus familiares vinculados? (mismo set que 3.2)
4.3 multiple_choice (instancia) ¿Qué tipo de dispositivos de apoyo utilizan tus familiares vinculados? (mismo set que 3.3, "No utiliza" en 3ra persona)

Sección 5 — Responsabilidad y cuidado (S5, pos. 50)

Cond.: oculta completa si Ninguna (r_hide_ning). 5.1/5.2/5.4 además ocultas si soloNino; 5.3 permanece visible en soloNino (ver "recorrido soloNino" arriba).

Code Tipo Pregunta Opciones
5.1 multiple_choice ¿Cuál es tu rol en el cuidado de los niños y/o personas con discapacidad o dependientes? Proveo financieramente · Comparto gastos con familiares · Administro recursos/organizo servicios · Cuido unas horas al salir del trabajo · Me ocupo de todas las gestiones
5.2 multiple_choice ¿En qué momento del día te ocupás de gestionar/organizar el cuidado? Antes del trabajo · Después del trabajo · Durante el trabajo (llamadas/emergencias) · En cualquier momento · Fines de semana
5.3 multiple_choice Durante el tiempo que estás en el trabajo, ¿quién se ocupa del cuidado de las personas a tu cargo? Mi cónyuge · Otro familiar · Cuidador/a contratado/a · Centro de estudios o cuidado · Un/a vecino/a · Otro
5.4 single_choice ¿Desde hace cuánto cumplís este rol de responsable o cuidador/a? Menos de 1 año · 1-3 años · 3-5 años · Más de 5 años

Sección 6 — Intensidad del cuidado (S6, pos. 60)

Cond.: oculta completa si Ninguna o soloNino (r_hide_ning_sn).

Code Tipo Pregunta Opciones
6.1 single_choice ¿Cuántos días por semana estás a cargo del cuidado directo, en promedio? 12 · 34 · 56 · Todos los días
6.2 single_choice Cuando estás a cargo del cuidado, ¿cuántas horas por día dedicás, en promedio? 12 · 34 · 56 · Más de 6 horas
6.3 multiple_choice ¿En qué momentos del día cuidás principalmente? Antes del trabajo · Al llegar del trabajo · Durante la noche · Fines de semana
6.4 single_choice Además del cuidado directo, ¿cuántas horas al día necesitás estar disponible o de guardia? 12 · 34 · 56 · Más de 6 horas · Permanente/sin horario

Sección 7 — Impacto en el trabajo (S7, pos. 70)

Cond.: oculta completa si Ninguna o soloNino (r_hide_ning_sn).

Code Tipo Pregunta Opciones
7.1 single_choice ¿Cómo describirías tu nivel de descanso cuando te ocupás del cuidado y cómo impacta en tu desempeño? Descanso bien · Irregular pero lo manejo · Me cuesta, afecta con frecuencia · Descanso muy poco, agotamiento afecta desempeño
7.2 single_choice En los últimos 3 meses, ¿con qué frecuencia sentiste que el cuidado afectó tu concentración o rendimiento? Nunca/casi nunca · Algunas veces al mes · Varias veces por semana · Casi todos los días
7.3 single_choice En el último año, ¿faltaste al trabajo por situaciones relacionadas al cuidado? Nunca · Pocas veces (1-3/año) · Varias veces (4-10/año) · Con frecuencia (+10/año)
7.4 multiple_choice ¿Qué aspectos de tu vida se ven más afectados por tu rol de cuidador/a? Tiempo libre · Sueño · Vida social · Vida en pareja/familiar · Salud física · Salud emocional/mental · Desarrollo profesional · Situación económica
7.5 multiple_choice Por tu rol de cuidado, ¿alguna vez tuviste que…? Reducir jornada · Rechazar ascenso · Declinar viajes/extras/capacitaciones · Cambiar a puesto menos exigente · Faltar/llegar tarde reiteradamente · Pensar en dejar el trabajo · Dejar un trabajo anterior · Ninguna de las anteriores
7.6 single_choice Pensando en los próximos 12 meses, ¿qué tan probable es que dejes o reduzcas tu trabajo por razones de cuidado? Nada probable · Poco probable · Algo probable · Muy probable

Sección 8 — Impacto económico (S8, pos. 80)

Cond.: header y 8.4 ocultos si Ninguna (r_hide_ning). 8.18.3 además ocultas si soloNino. 8.4 permanece visible en soloNino.

Code Tipo Pregunta Opciones is_sensitive
8.1 single_choice ¿Cuánto estimás que gastás por mes en el cuidado? 7 franjas, < 1M a > 15M Gs. no
8.2 multiple_choice ¿En qué conceptos gastás principalmente el monto expresado? Cuidador/a particular · Centro de día/institución · Traslados · Equipamiento médico/tecnología asistiva · Servicios terapéuticos/rehabilitación · Medicamentos · Insumos personales · Otros no
8.3 multiple_choice ¿Cómo sostenés los gastos y responsabilidades del cuidado? Solo con mi empleo · Ingresos extraordinarios · Emprendimiento · Me ayudan familiares · Me ayudan organizaciones sociales · Me ayudan vecinos/amigos · Eventos de recaudación · Subsidios estatales no
8.4 single_choice ¿En qué franja salarial mensual te ubicás con tu trabajo en esta empresa? (CONFIDENCIAL) 9 franjas, hasta 3M a 50M+ Gs. analyst-only, nunca en vistas de empresa (igual criterio que 3.4 en v2.1)

Sección 9 — Conciencia organizacional (S9, pos. 90)

Cond.: header, 9.1 y 9.4 ocultos si Ninguna (r_hide_ning). 9.2/9.3 además ocultas si soloNino. 9.1 y 9.4 permanecen visibles en soloNino.

Code Tipo Pregunta Opciones Notas
9.1 single_choice ¿Sentís que tu empresa conoce o comprende la realidad del cuidado y la discapacidad de su gente? Sí, acompañado/a · Parcialmente · No, invisible · Nunca hemos tocado el tema
9.2 multiple_choice (max_select=3) ¿Qué apoyos de la empresa te ayudarían más? Flexibilidad horaria/remoto · Apoyo económico/convenios · Beneficios terapias/salud · Contención emocional/psicológica · Capacitación y autocuidado · Redes de apoyo/grupos de pares · Información sobre recursos
9.3 single_choice ¿Estarías dispuesto/a a participar en un grupo de apoyo para cuidadores dentro de la empresa? Sí, definitivamente · Tal vez · No por ahora · Prefiero mantenerlo en privado
9.4 single_choice ¿Estarías dispuesto/a a ser voluntario/a en iniciativas y/o redes de apoyo? Sí · No

Sección 10 — Comentarios adicionales (S10, pos. 100)

Siempre visible — es el destino del salto "Ninguna de las anteriores" en 4.1.

Code Tipo Pregunta Notas
10.1 text_long ¿Te gustaría dejar un comentario o sugerencia especial? (opcional) hint='Opcional.' — NO entra al store analítico crudo sin categorizar (regla 4 CLAUDE.md)

Totales

10 secciones (type='section') + 40 preguntas = 50 filas en questions por encuesta. Preguntas por sección: S1=2, S2=7, S3=5, S4=3, S5=4, S6=4, S7=6, S8=4, S9=4, S10=1 → 40.

  • v1 (20000000-0000-0000-0000-000000000001): texto original v2.1, preservado — no se altera para no invalidar consent_records ya firmados contra esa versión (regla 5 CLAUDE.md).
  • v2 (20000000-0000-0000-0000-000000000002): texto revisado para el instrumento v3.0.0, asignado a las 3 encuestas seed. Scopes: ["operativo","macro_n1"] (Modo A).

Discrepancias mockup vs. Excel resueltas (AP.10)

Reportadas y resueltas con la directora antes de escribir el seed:

  1. Wording de preguntas y opciones: el Excel corregido es la fuente autoritativa en todos los casos donde difiere del mockup (~30 discrepancias menores de texto).
  2. Recorrido soloNino: el mockup marcaba skipSoloNino:true en TODA la Sección 5 (incluida 5.3). El Excel especifica un recorrido más granular: 5.3 → 8.4 → 9.1 → 9.4 → fin. Resuelto a favor del Excel (ver "Flujo condicional — recorrido soloNino" arriba).
  3. 8.3 "Eventos de recaudación": opción presente en el Excel, ausente en el mockup. Incluida.

⚠️ Decisiones pendientes para el director (NO ejecutar sin aprobación)

  • Ranking widget (9.2): actual es multiple_choice con max_select=3. Si se requiere orden de prioridad, pasa a tipo ranking (mismo criterio que 6.2 en v2.1).
  • Motor genérico de formularios (Fase 2, BACKLOG-002): este contrato es el primer caso de prueba; el intérprete declarativo se generaliza después de validar el wizard de cuidadores.
  • Migración de datos v2.1 → v3: NO se ejecuta. v2.1.0-stable permanece intacta; v3 es un instrumento nuevo con seed limpio.
  • qi_city, RE-INDEX scoring, salary analytics: decisiones heredadas de v2.1, aún abiertas, no se resuelven en esta etapa.