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:
89
OBSERVATIONS.md
Normal file
89
OBSERVATIONS.md
Normal file
@@ -0,0 +1,89 @@
|
||||
# OBSERVATIONS.md — Observaciones y breaking changes
|
||||
|
||||
> Registro de cambios al instrumento que rompen compatibilidad con datos existentes
|
||||
> o que requieren atención del director antes/después de re-seedear. No bloquean el
|
||||
> trabajo del agente — se documentan para que el director decida qué hacer con los
|
||||
> datos ya capturados.
|
||||
|
||||
---
|
||||
|
||||
## Etapa 3I2 — Revisión del instrumento v2.1 (feedback equipo médico)
|
||||
|
||||
### 1. Eliminación de "Prefiero no decir" (Cambio 1)
|
||||
Afecta: A5, A6, 1.1, 1.5, 1.6, 1.13, 2.5, 3.1, 3.4.
|
||||
|
||||
Si existen respuestas guardadas con el valor `"Prefiero no decir"` en alguna de estas
|
||||
preguntas, esos valores quedan **huérfanos**: ya no aparecen como opción en el
|
||||
formulario ni en `seed.sql`, pero permanecen en `responses.answers` tal cual fueron
|
||||
guardados. No se borran ni se migran automáticamente.
|
||||
|
||||
**Impacto en triggers (1.1, 1.6, 1.13):** estas preguntas ahora tienen solo 2 opciones
|
||||
(Sí/No). La lógica condicional (incluyendo el nuevo salto-triple, Cambio 4a) solo
|
||||
reacciona a `"Sí"`. Una respuesta histórica `"Prefiero no decir"` en un trigger se
|
||||
trataría como "no Sí" a efectos de la lógica condicional si se re-evaluara, pero no
|
||||
hay re-evaluación retroactiva de respuestas ya enviadas.
|
||||
|
||||
### 2. 2.1 cambia de `single_choice` a `multiple_choice` (Cambio 5)
|
||||
Respuestas existentes para 2.1 están guardadas como un string único (`"Yo soy el/la
|
||||
principal"`, etc.). El formulario nuevo espera un array de strings para preguntas
|
||||
`multiple_choice`. Las respuestas históricas de 2.1 quedan en formato de string,
|
||||
inconsistente con el nuevo esquema esperado para esa pregunta.
|
||||
|
||||
Ver `TECH_DEBT.md` → TECH-DEBT-006 (deuda de ranking pendiente sobre esta misma
|
||||
pregunta).
|
||||
|
||||
### 3. Eliminación de la pregunta 2.4 (Cambio 6)
|
||||
"¿Contás con apoyo de otras personas para el cuidado?" se elimina del seed por ser
|
||||
similar/redundante con 2.1 (feedback del equipo médico).
|
||||
|
||||
El `DELETE FROM public.questions WHERE survey_id = ...` al inicio de `seed.sql` borra
|
||||
la fila de la pregunta 2.4 (id `40000000-0000-0000-0000-000000000027`). Si existen
|
||||
filas en `responses` cuyo `answers` referencian `question_id` = 2.4 (por
|
||||
`question_id`, no por código embebido en JSON — depende del esquema de `responses`),
|
||||
esas referencias quedan apuntando a un `question_id` que ya no existe en `questions`
|
||||
tras el re-seed.
|
||||
|
||||
**No re-seedear la base de producción sin que el director confirme que no hay
|
||||
respuestas reales que dependan de 2.4**, o decidir conservar la fila de 2.4 marcada
|
||||
como `archived`/inactiva en lugar de borrarla (cambio de diseño — Nivel 3, no
|
||||
ejecutado en esta etapa).
|
||||
|
||||
### 4. Cambio de texto en opción de 3.3 (Cambio 8)
|
||||
"Es difícil sostenerlo con mis ingresos" → "No puedo sostenerlo con mis ingresos".
|
||||
|
||||
Respuestas existentes que eligieron la opción anterior quedan guardadas con el texto
|
||||
literal `"Es difícil sostenerlo con mis ingresos"`, que ya no coincide con ninguna
|
||||
opción del seed actual. Cualquier agregación por valor exacto de opción debe
|
||||
contemplar ambos strings como equivalentes para no perder esos datos en reportes.
|
||||
|
||||
### 5. División de la primera franja salarial en 3.4 (Cambio 9)
|
||||
"Sueldo mínimo – Gs. 5.000.000" se reemplaza por dos opciones nuevas: "Sueldo mínimo"
|
||||
y "Gs. 3.000.000 a 5.000.000".
|
||||
|
||||
Respuestas existentes con el valor `"Sueldo mínimo – Gs. 5.000.000"` quedan con ese
|
||||
valor, que ya no existe como opción. No hay forma automática de reasignar esas
|
||||
respuestas a una de las dos franjas nuevas (la franja exacta del respondente no se
|
||||
puede inferir del valor agregado anterior).
|
||||
|
||||
### 6. Cambio de texto en última opción de 6.1 (Cambio 10)
|
||||
"No, nunca se ha hablado del tema" → "No, no se puede hablar del tema".
|
||||
|
||||
Respuestas existentes con el valor anterior quedan con ese texto literal, que ya no
|
||||
coincide con ninguna opción del seed actual.
|
||||
|
||||
---
|
||||
|
||||
## Resumen para el director
|
||||
|
||||
- Ningún cambio de esta etapa borra datos directamente, salvo el `DELETE` estándar de
|
||||
`questions` por `survey_id` (mecanismo de idempotencia ya existente en `seed.sql`,
|
||||
no nuevo de esta etapa) — pero ese `DELETE` ahora también elimina la fila de 2.4.
|
||||
- Los cambios 1, 8, 9 y 10 dejan **valores de texto huérfanos** en respuestas
|
||||
históricas (ya no matchean ninguna opción vigente). No afecta el funcionamiento del
|
||||
formulario hacia adelante, pero sí cualquier reporte/agregación que dependa de
|
||||
matchear el string exacto de la opción.
|
||||
- El cambio 5 (2.1) deja respuestas históricas en un formato (string) distinto al que
|
||||
el formulario nuevo produce (array). Si se construye un reporte sobre 2.1, debe
|
||||
manejar ambos formatos o normalizarse en una migración de datos aparte.
|
||||
- **No se ejecutó ningún re-seed sobre la base real** — esto aplica solo cuando el
|
||||
director apruebe re-seedear con `seed.sql` v2.1.
|
||||
Reference in New Issue
Block a user