# OBSERVATIONS — Sprint 2 > Hallazgos descubiertos durante el sprint actual. > Este archivo se vacía al cerrar el sprint: los hallazgos se promocionan a TECH_DEBT.md o BACKLOG.md, o quedan resueltos. > > **Sprint 1.5 cerrado el 2026-05-18.** Ver cierre en `methodology/CASE_STUDIES/inq-roi-sprint-1-5.md`. --- ## Convención de etiquetas - `[CURRENT-SPRINT]` — Se resuelve en este sprint - `[DEFERRED-TECH-DEBT]` — Se va a TECH_DEBT.md al cerrar el sprint - `[DEFERRED-BACKLOG]` — Se va a BACKLOG.md al cerrar el sprint - `[RESOLVED]` — Resuelto durante el sprint, archivar al cierre --- ## Hallazgos activos ### [CURRENT-SPRINT] ActivityPanel en estado intermedio roto — Etapa 1 **Origen:** Etapa 1. Detectado en validación visual del director. **Síntoma:** el slider de "Utilización" en ActivityPanel queda atascado en 1 min (max). Recursos nuevos quedan en 0 min inamovibles. La UI de asignación de recursos es inutilizable en el estado actual. **Causa raíz:** Claude Code modificó `ActivityPanel.tsx` durante Etapa 1 pese a que el prompt tenía una restricción explícita `❌` sobre ese archivo. El cambio fue clasificado como Nivel 2, pero correspondía Nivel 3 (restricción explícita del prompt = criterio 2 de la política de iniciativa). El agente usó el requisito de "build sin errores TypeScript" como justificación para resolver unilateralmente una contradicción entre dos restricciones del prompt, en lugar de detenerse y reportar el conflicto. **Estado del slider:** el componente mantiene `max=1` del modelo anterior (porcentaje 0.0–1.0). Ahora lee `utilizationMinutes` (entero), por lo que solo acepta 0 o 1 minuto. Los datos en IndexedDB son correctos (la migración funcionó), solo la UI está rota. **Resolución:** Etapa 2 reescribe ActivityPanel completamente. Este ítem se cierra al completar Etapa 2. --- ### [DEFERRED-TECH-DEBT] Prompts con restricciones contradictorias generan decisiones unilaterales del agente **Origen:** Etapa 1. Hallazgo de método. **Problema:** el ETAPA_1_PROMPT.md tenía dos requisitos que colisionaban: - "❌ No tocar `ActivityPanel.tsx`" - "Build limpio: `npm run build` sin errores TypeScript" Cambiar `ActivityResourceAssignment` en `types.ts` inevitablemente produce errores TypeScript en `ActivityPanel.tsx`. El agente resolvió la contradicción actuando mínimamente en el archivo UI en lugar de detenerse y reportar el conflicto. **Impacto:** el agente produjo código funcionalmente correcto en dominio pero UI rota, y describió el resultado como "comportamiento intermedio esperado" — minimizando la severidad real. **Acción preventiva para todos los prompts futuros:** 1. Agregar verificación git diff como control preventivo (ver hallazgo siguiente) 2. Cuando haya restricción `❌` sobre un archivo, agregar explícitamente: _"Si este cambio produce errores TypeScript en archivos restringidos, **DETENTE**, no los corrijas, reportá el conflicto al director antes de continuar."_ **Destino al cierre del sprint:** promover a `methodology/ANTI_PATTERNS.md` como nuevo caso documentado. --- ### [DEFERRED-TECH-DEBT] Falta control preventivo de scope — verificación con git diff **Origen:** Etapa 1. Hallazgo de método. **Problema:** los controles actuales de scope son detectivos (grep de tipos, build, reporte). Un agente puede modificar archivos no autorizados y el director solo lo descubre en la validación visual (o en el reporte si el agente lo declara voluntariamente). **Riesgo escalado:** para cambios en PDFs, esquemas de datos, o marca, un cambio no declarado podría causar daño real antes de ser detectado. **Solución:** agregar en todos los prompts a partir de Etapa 2: ``` ## Verificación de scope — OBLIGATORIO antes de reportar Ejecutá: git diff --name-only HEAD El resultado debe contener ÚNICAMENTE los archivos listados en "Archivos esperados" de este prompt. Si aparece un archivo no esperado: 1. Revertilo: git checkout HEAD -- 2. Documentá el conflicto en el reporte bajo "Conflictos de scope" 3. NO lo incluyas en el entregable de esta etapa ``` **Destino al cierre del sprint:** promover a `methodology/PATTERNS.md` como control C.X obligatorio en todo prompt de Claude Code. --- ## Hallazgos resueltos durante el sprint *(vacío)* --- ## Hallazgos diferidos (promocionar al cerrar sprint) *(vacío)* --- ## Notas operativas - Los hallazgos resueltos quedan acá hasta el cierre del sprint. Al cerrar, se archiva o purga. - Los hallazgos sin resolver se promocionan a `TECH_DEBT.md` o `BACKLOG.md` según corresponda. - Este archivo NO contiene roadmap futuro ni deuda histórica — solo hallazgos del sprint en curso. --- ## Cierre del sprint (checklist) Cuando el sprint cierre, ejecutar: ``` [ ] Verificar que todos los items [CURRENT-SPRINT] están RESOLVED [ ] Mover items [DEFERRED-TECH-DEBT] a TECH_DEBT.md (si no están ya) [ ] Mover items [DEFERRED-BACKLOG] a BACKLOG.md (si no están ya) [ ] Archivar o purgar este archivo [ ] Crear OBSERVATIONS.md vacío para el sprint siguiente ```