Files
motor-de-encuestas/TECH_DEBT.md
markosbenitez af0ec65be5 Documentar deuda técnica: /admin/responses sin autenticación
Registra TECH-DEBT-008 como bloqueante para ampliar la vista de
control a preguntas is_sensitive=true (salud/discapacidad).
2026-06-10 16:30:42 -03:00

3.7 KiB

TECH_DEBT.md — Deuda técnica registrada

Ítems identificados durante el desarrollo. Cada ítem documenta qué falta, por qué no se hizo ahora, y qué trigger habilitaría su resolución.


[TECH-DEBT-001] Ranking widget para 6.2

  • Estado: 6.2 es actualmente multiple_choice max_select=3. El widget muestra frecuencia simple (top 8).
  • Deuda: cuando el tipo pase a ranking con JSONB {rank1, rank2, rank3}, el widget debe reescribirse para mostrar ponderación por posición.
  • Trigger: decisión del director sobre el tipo de 6.2 en próxima versión del instrumento (anotada en SEED_SPEC.md § Decisiones pendientes).

[TECH-DEBT-002] KPI NPS Cuidador

  • Estado: el instrumento actual no tiene pregunta NPS. El KPI fue eliminado del dashboard en Etapa 2E.
  • Para implementar: agregar en próxima versión del instrumento: "En una escala de 0 a 10, ¿qué tan probable es que recomiendes esta empresa a otra persona cuidadora?"
  • Trigger: decisión de incluir NPS en el instrumento v2.

[TECH-DEBT-003] Brecha de políticas (oferta vs. demanda)

  • Estado: el instrumento captura solo demanda (6.2 = apoyos que ayudarían). No captura qué políticas la empresa ya ofrece. W6 muestra solo demanda.
  • Para implementar: agregar en próxima versión del instrumento: "¿Qué apoyos para el cuidado ofrece tu empresa hoy?" (multi-select con las mismas opciones de 6.2 + "Ninguno" + "No lo sé").
  • Trigger: decisión de agregar la pregunta de oferta al instrumento.

[TECH-DEBT-004] Intención directa de salida laboral

  • Estado: el instrumento no pregunta directamente por intención de dejar el empleo. W8 usa indicador compuesto (4.3 + 5.1 + 5.2) renombrado a "Saturación".
  • Para implementar: agregar en próxima versión: "En los últimos 6 meses, ¿pensaste en dejar este empleo por razones relacionadas al cuidado?" (Sí/Frecuentemente · Sí/A veces · No · Prefiero no decir).
  • Trigger: validación metodológica de que el indicador compuesto no es suficiente para medir intención de salida.

[TECH-DEBT-005] qi_city / qi_country — migración pendiente

  • Estado: A1 (Departamento) y A2 (Ciudad) se guardan en answers. Las columnas qi_city y qi_country en responses son NULL. Sprint 3 las necesita para segmentación avanzada.
  • Para implementar: migration futura que agregue extracción de A1/A2 en el insert y extienda la whitelist de agg_segment.
  • Trigger: inicio de Sprint 3 (dashboard avanzado con filtros de ciudad).

[TECH-DEBT-006] Ranking widget para 2.1

  • Estado: Etapa 3I2 (Cambio 5) cambió 2.1 ("¿Quién es el/la responsable principal del cuidado?") de single_choice a multiple_choice. Permite selección múltiple pero sin orden de prioridad — pierde la noción de "responsable principal" cuando el respondente marca más de una opción.
  • Deuda: implementar widget de ranking para 2.1 con el orden: Principal cuidador soy yo > secundario instituto > principal pagado > secundario familiar (mismo patrón que TECH-DEBT-001 para 6.2).
  • Trigger: decisión del director sobre el tipo de 2.1 en próxima versión del instrumento.

[TECH-DEBT-008] /admin/responses sin autenticación

  • Estado: ABIERTO.
  • Descripción: la vista de control /admin/responses no tiene auth. Por diseño explícito, excluye preguntas is_sensitive=true (14 preguntas de salud/ discapacidad) y text_long. Para mostrar esas preguntas en la vista, primero implementar un gate de autenticación para staff (Basic Auth con env var como mínimo viable).
  • Impacto actual: ninguno en producción — la URL no está publicada.
  • Bloqueante para: ampliar visibilidad de datos en la vista de control.