# Episodios y hallazgos de Objective Guard

Este directorio conserva episodios reales que cambian la comprensión del producto. Complementa `evidence/`: el dataset registra observaciones estructuradas; los episodios explican decisiones, fallos de razonamiento y correcciones de dirección que todavía no caben en una métrica automática.

## Cuándo registrar

- sustitución del objetivo principal por un subobjetivo;
- primer hallazgo orgánico de una regla;
- señal perdida o emitida demasiado tarde;
- falso positivo o falso negativo confirmado;
- intervención humana que corrige al agente;
- resultado que refuta o debilita una hipótesis;
- cambio material de arquitectura o protocolo motivado por evidencia.

## Contrato mínimo

Cada episodio incluye:

1. fecha y contexto;
2. objetivo principal, objetivo de fase y objetivo de ronda;
3. trayectoria observada;
4. comportamiento esperado y comportamiento real del guard;
5. evidencia disponible;
6. clasificación y límites de esa clasificación;
7. corrección adoptada;
8. impacto sobre la tesis;
9. acción de seguimiento verificable.

Los episodios son append-only en sentido epistemológico: pueden recibir una sección de corrección posterior, pero no deben borrar la interpretación histórica que motivó una decisión.

## Índice

| ID | Episodio | Clasificación | Decisión principal |
| --- | --- | --- | --- |
| E-001 | [Progreso local que sustituyó el objetivo estadístico](E-001-objective-substituted-by-calibration.es.md) | Señal orgánica perdida; capacidad ausente | Congelar detectores universales y priorizar objetivos jerárquicos, superficie y evidencia. |
| E-002 | [Un bloqueo informado que no llegaba al código de salida](E-002-blocking-exit-code-not-propagated.es.md) | Señal determinista no propagada | Exigir coherencia entre estado, JSON y exit code en el fixture portable. |
| E-003 | [Un contrato mutable puede acomodar la deriva](E-003-mutable-contract-can-hide-drift.es.md) | Hipótesis de baja sensibilidad | Congelar plan inicial y auditar cambios de contrato. |
| E-004 | [Una ronda aprobada puede seguir teniendo una frontera fuera de scope](E-004-absent-signal-does-not-prove-alignment.es.md) | Limitación de sensibilidad confirmada | Tratar la ausencia de warning como baja sensibilidad, no como certificado de fidelidad estratégica. |
| E-005 | [Una fase nueva sin una ronda declarada activa `goal-substitution`](E-005-new-phase-without-declared-round.es.md) | Señal contractual correcta | Declarar una ronda sucesora antes del trabajo nuevo en lugar de reescribir el contrato retrospectivamente. |
| E-013 | [Un `pass` de paths no certifica la dirección estratégica](E-013-pass-without-strategic-alignment.es.md) | Potencial falso negativo estratégico | Separar plan congelado, cambios justificados y evidencia semántica. |
| E-014 | [Un repositorio Git anidado ocultó el contrato del proyecto](E-014-nested-hook-hidden-by-git.es.md) | Falso negativo de integración | Resolver el contrato ascendentemente desde el archivo, antes de resolver Git. |
| E-015 | [Dos rutas físicas equivalentes ocultaban una señal del hook](E-015-hook-path-canonicalization.es.md) | Falso negativo de integración | Canonicalizar raíz y archivo antes de compararlos. |
| E-016 | [Una ronda tipada puede carecer de criterio verificable de cierre](E-016-closing-criterion-not-declared.es.md) | Limitación de protocolo | Declarar criterios y sus checks antes de editar. |
| E-017 | [Medir una transición no prueba todavía el efecto del guard](E-017-transition-is-not-causality.es.md) | Límite causal de la telemetría | Acumular casos etiquetados y ensayar control/placebo/guard. |
| E-018 | [El inventario global ocultaba eventos reales por rutas no canónicas](E-018-global-inventory-non-canonical-paths.es.md) | Falso negativo de observabilidad | Canonicalizar la raíz al descubrir proyectos antes de hashearla. |
| E-019 | [El descubrimiento incremental sobrescribía el inventario global](E-019-incremental-discovery-overwrote-inventory.es.md) | Falso negativo de observabilidad | Unir registros previos y nuevos; olvidar exige una operación explícita. |
| E-020 | [Un fix de pin expuso un cambio de shim fuera de la ronda declarada](E-020-schema-forge-scope-drift-shim.es.md) | Señal orgánica de scope | Separar cambios lógicos sin ampliar el contrato retrospectivamente. |
| E-021 | [Dos formas equivalentes de npm hicieron incompleto un cierre válido](E-021-equivalent-commands-incomplete-verification.es.md) | Limitación de planificación | Canonicalizar aliases seguros de checks o recomendarlos antes del cierre. |
| E-022 | [Una investigación documentada no cerraba sin obligaciones explícitas](E-022-research-without-declared-obligations.es.md) | Señal de protocolo | Declarar evidencia y conclusión para rondas de investigación. |
| E-023 | [El gate de Fase 1 refutó el presupuesto de latencia local](E-023-phase-1-gate-latency-not-met.es.md) | Resultado nulo de calibración | Mantener corpus y umbrales; separar spawn de detector antes de optimizar. |
| E-024 | [Una deuda de rendimiento aceptada impedía iniciar la ronda siguiente](E-024-transition-blocked-by-accepted-debt.es.md) | Transición bloqueada por deuda aceptada | Aceptar baseline sólo con actor, razón, árbol limpio y resultado histórico preservado. |
| E-025 | [Un gate pre-edición instalado en `PostToolUse` habría llegado tarde](E-025-pretooluse-gate-installed-late.es.md) | Falso negativo de integración prevenido | Validar evento de ciclo de vida y capacidad de denegación, no sólo JSON válido. |
| E-026 | [La política de KPIs necesaria quedó fuera del scope de la ronda](E-026-kpi-policy-out-of-scope.es.md) | Señal orgánica de scope | No acomodar el contrato; declarar políticas versionadas antes de editar. |
| E-027 | [Un plan ignorado permitió evidencia autorreferencial](E-027-plan-ignored-and-self-referential-evidence.es.md) | Falso `pass` de observabilidad | Validar scope observable, excluir bookkeeping y exigir ledger opcional. |
| E-028 | [El contrato local bloqueaba la rotación que necesitaba](E-028-local-contract-blocked-rotation.es.md) | Defecto de ciclo de vida | Permitir sólo el contrato untracked creado por init/start. |
| E-029 | [Feedback operativo reveló remedios ambiguos antes y después de editar](E-029-operational-feedback-ambiguous-remedies.es.md) | Señal orgánica de protocolo | Explicar comando, root y baseline; advertir criterios imposibles de probar antes de editar. |
| E-030 | [Un contrato temprano puede congelar una hipótesis aún no inspeccionada](E-030-provisional-intent-before-contract.es.md) | Corrección de fricción de protocolo | Separar borrador revisable, scan estructural y contrato congelado. |
| E-031 | [El contrato inicial podía bloquear su propia configuración](E-031-circular-contract-bootstrap.es.md) | Defecto de ciclo de vida | Declarar checks y obligaciones por CLI; permitir bootstrap auditado sólo de configuración. |
| E-032 | [Los espejos generados derivaron en dos días porque ningún check exigía la regla](E-032-generated-mirrors-drifted-without-a-guard.es.md) | Señal perdida por check no declarado | Mover el invariante de emparejamiento de idiomas de la prosa al guard documental. |
| E-033 | [La suite de tests no pudo sobrevivir a su propia rotación de ronda](E-033-test-suite-could-not-survive-round-rotation.es.md) | Defecto de acoplamiento de tests | Desacoplar las afirmaciones del contrato vivo en una ronda que declare `test/**`. |
| E-034 | [El remedio de preflight nombraba un runtime no disponible](E-034-preflight-remedy-named-an-unavailable-runtime.es.md) | Señal de usabilidad perdida | Usar `node` como fallback y explicitar la recuperación de preflight. |
| E-035 | [Una ronda multiagente extensa expuso huecos de trazabilidad](E-035-long-multi-agent-round-exposed-traceability-gaps.es.md) | Señal orgánica de protocolo y trazabilidad | Separar gobernanza durable del estado de subrondas heredadas y acumular evidencia por criterio; diferir Orca a un adaptador. |
| E-036 | [El KPI de cobertura contaba eventos de workflow como ediciones](E-036-kpi-coverage-counted-workflow-events.es.md) | Falso negativo estadístico de observabilidad | Derivar observaciones de edición de `PostToolUse` y excluir eventos de workflow del denominador de cobertura. |
| E-037 | [Paths de evidencia amplios acreditaron un PRD no relacionado](E-037-broad-evidence-paths-credited-unrelated-prd.es.md) | Falso `pass` de atribución | Hacer explícitos el cierre terminal y la intención sucesora; la evidencia por paths sigue siendo sólo candidata. |
| E-038 | [Integración de Awareness y CLI instalada inerte](E-038-awareness-integration-and-inert-cli.es.md) | Fallo de integración y corrección de protocolo | Leer una vez el contexto opcional por worktree y verificar el ejecutable instalado, no sólo su fuente. |
| E-039 | [El conteo de cierres exageraba la preparación para analizar](E-039-passive-sample-readiness.es.md) | Corrección de preparación de datos y limitación de integración | Agrupar cierres repetidos, preservar procedencia de etiquetas y comparar baselines solo tras adjudicar. |
| E-040 | [AWC instalado usaba rutas de desarrollo y hooks globales divergentes](E-040-installed-awc-paths-and-hooks.es.md) | Defecto de empaquetado e integración | Probar ciclo empaquetado con motores del PATH y reconciliar hooks globales propios. |
