Sprint 2 Etapas 1-2: modelo recursos utilizationMinutes+units, Dexie v3, ActivityPanel wow

This commit is contained in:
2026-05-19 21:26:34 -03:00
parent 49364f4b18
commit a01380240a
23 changed files with 292265 additions and 244 deletions

View File

@@ -18,7 +18,64 @@
## Hallazgos activos
*(Sin hallazgos al abrir Sprint 2 — archivo limpio)*
### [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.01.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 -- <archivo>
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.
---