# Triaje y priorización de defectos

Convierte un montón de defectos reportados en una lista ordenada con su razonamiento al lado — y devuelve los reportes que no admiten triaje con la pregunta exacta que desbloquea cada uno.

## Entregable

Un documento Markdown, `triage-report.md`, con la estructura fijada en **Salida** más abajo. Se lee junto a la **Auditoría de la suite de regresión**, que usa los defectos escapados para juzgar la suite.

## Entradas obligatorias

- **Los reportes de defectos a triar** — en la forma en la que lleguen: tickets, una exportación, una lista, mensajes.
- **Quién decide la consecuencia de negocio** — la persona cuya decisión fija la prioridad cuando impacto y urgencia no coinciden.

Sin ambas, detente. Un triaje sin nadie que zanje la prioridad ordena la lista por quien se ha quejado más recientemente.

## Entradas opcionales

- Por reporte: pasos para reproducir, entorno, versión o compilación, registros, capturas
- Acceso a un entorno donde se pueda reproducir un reporte
- Las escalas de severidad y prioridad ya acordadas, con sus definiciones
- El registro de defectos existente, para encontrar duplicados
- A quién afecta y si existe una solución temporal
- Las fechas o compromisos junto a los que caen estos defectos

Cuando no se aporta una escala, el informe declara la que usó y pide la acordada. Cuando un defecto no se puede reproducir se registra como no reproducible; nunca se le da una severidad para que la lista parezca completa.

## Ejecución

**1 — Normalizar cada reporte.** Una entrada por reporte: qué se observó, qué se esperaba, dónde, en qué compilación, quién lo reportó y cuándo. Los campos que el reporte no trae se escriben `desconocido`. No se deducen de cómo está redactada la descripción.

**2 — Reproducir, o declarar que no se pudo.** Intenta cada defecto en el entorno y la compilación declarados. Registra `reproducido` con los pasos que funcionaron, `no reproducible` con lo que se intentó, o `no intentado` con el motivo. Nada avanza en el triaje sin una de las tres.

**3 — Devolver los reportes que no admiten triaje.** Un reporte sin el par observado y esperado, sin entorno o sin camino hasta el comportamiento vuelve con la única pregunta que lo desbloquea, dirigida a quien lo abrió. Una petición genérica de más detalle recibe una respuesta genérica.

**4 — Fusionar los duplicados.** Agrupa los reportes que describen el mismo fallo de fondo, nombra aquel en el que se fusionan y mantén enganchada a cada persona que reportó, para que se le avise cuando se cierre. Los reportes que se parecen pero tienen distinto disparador quedan separados, con la diferencia por escrito.

**5 — Juzgar la severidad por el impacto observado.** Qué hace el defecto cuando ocurre: datos perdidos, un resultado erróneo registrado, una tarea bloqueada, una visualización incorrecta. La severidad solo se asigna a un defecto reproducido. Un defecto que nadie ha reproducido lleva una petición de reproducción en lugar de una severidad.

**6 — Juzgar la prioridad por la consecuencia de negocio.** A quién afecta, con qué frecuencia, si existe una solución temporal y qué cuesta dejar el defecto abierto. La prioridad se registra como su propio valor y puede no coincidir con la severidad. Esa discrepancia es la parte útil del triaje: se escribe, nunca se promedia en un solo número.

**7 — Ordenar la lista y mostrar el razonamiento.** Declara la regla que sigue el orden antes del orden mismo, y luego da a cada defecto su posición y el motivo de esa posición. Un orden sin regla declarada no se puede discutir, solo resentir.

## Salida

`triage-report.md`, en este orden:

- **1. Entrada y fecha** — qué reportes se triaron, contra qué compilación, por quién y cuándo
- **2. Defectos triados** — por defecto: identificador, observado, esperado, entorno, compilación, estado de reproducción, severidad, prioridad y el motivo de cada juicio
- **3. No reproducibles** — por defecto: qué se intentó, en qué entorno y compilación, y la pregunta devuelta a quien lo reportó
- **4. Devueltos por falta de información** — por reporte: el único dato que falta y a quién se le pidió
- **5. Duplicados** — por grupo: los reportes fusionados, aquel en el que se fusionan y las personas a avisar
- **6. Discrepancias entre severidad y prioridad** — por defecto: qué dice cada juicio y quién debe zanjar el orden
- **7. Orden** — la regla usada y después la lista ordenada con el motivo de cada posición
- **8. Información que falta** — qué bloqueó el triaje y quién puede desbloquearlo

## Validación

El triaje está listo cuando se cumple todo esto:

- Cada reporte de entrada aparece exactamente una vez, en la sección 2, 3, 4 o 5
- Cada defecto de la sección 2 lleva un estado de reproducción
- No aparece ninguna severidad contra un defecto que nadie reprodujo
- La severidad y la prioridad se registran como valores separados, y ninguna se deriva de la otra
- Cada entrada de la sección 4 nombra un dato concreto que falta, en lugar de pedir más detalle
- La sección 7 declara la regla de orden antes del orden

Falla la ejecución si aparece una severidad sin reproducción, o si falta en la salida un reporte de la entrada.

## Gestión de fallos

- **Sin entorno donde reproducir** — marca todos los defectos como `no intentado — sin entorno`, deja la severidad como `pendiente de reproducción` de principio a fin, ordena solo por consecuencia de negocio y nombra en la sección 8 el acceso que hace falta.
- **Un reporte sin pasos** — devuélvelo en la sección 4 con la pregunta exacta. Nunca reconstruyas los pasos a partir de la descripción; una reproducción reconstruida confirma a quien la leyó, no al defecto.
- **Dos reportes se contradicen sobre el mismo comportamiento** — conserva los dos, nombra a ambas personas y eleva la contradicción a la sección 6 como bloqueante. No los fusiones en uno para hacer desaparecer el conflicto.
- **Nadie decide la consecuencia de negocio** — publica la severidad, deja toda prioridad como `sin decidir` y nombra a quien debe decidirla. Una prioridad inventada aquí es una opinión con un número encima.
- **Material parcial** — tria lo que el material sostenga, marca el resto como `INCOMPLETO — pendiente de <pregunta>` y entrega. Un triaje corto que declara lo que no pudo juzgar es utilizable; uno que parece completo porque lo adivinó, no.
