feat(episode): EXPLORA_r7seccion1i1-qu-qued-hecho_S20260808.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: TESSERA | Type: design Summary: EPISODIO 1 — MNEMO_PRE_DIGEST: [R7.seccion1.I1] Qué quedó hecho
This commit is contained in:
parent
861b207836
commit
57f1f4fb77
1 changed files with 44 additions and 0 deletions
|
|
@ -0,0 +1,44 @@
|
||||||
|
---
|
||||||
|
episode_id: "36da2277-3042-4940-9212-364f6efb79e7"
|
||||||
|
puente_flat: "EXPLORA_r7seccion1i1-qu-qued-hecho_S20260808.R1_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||||
|
session_code: "S20260808.MEMORIA_SOTA_BRECHA"
|
||||||
|
acto_dialogico: "informar"
|
||||||
|
actor_flujo: "multi_actor"
|
||||||
|
criticidad_aegis: "low"
|
||||||
|
skill_dominante: "TESSERA"
|
||||||
|
fase_proyecto: "operations"
|
||||||
|
tipo_semantico: "design"
|
||||||
|
summary_one_line: "EPISODIO 1 — MNEMO_PRE_DIGEST: [R7.seccion1.I1] Qué quedó hecho"
|
||||||
|
source_type: "claude_code"
|
||||||
|
trust_boundary: "internal"
|
||||||
|
created_at: "2026-08-09T19:22:38.485027+00:00"
|
||||||
|
relectura_tagged: false
|
||||||
|
forgejo_commit_sha: "pending"
|
||||||
|
---
|
||||||
|
|
||||||
|
**FASE 1 cerrada y respaldada en los tres remotos.** `322ce0c6`.
|
||||||
|
|
||||||
|
## [R7.seccion1.I1] Qué quedó hecho
|
||||||
|
|
||||||
|
El objeto de memoria de EMBER ya dice de qué clase es lo que recuerda y desde cuándo es verdad. Antes no podía. Eso era la brecha estructural que midió el análisis contra el estado del arte, y está cerrada:
|
||||||
|
|
||||||
|
| Tarea | Entregable | Verificación |
|
||||||
|
|---|---|---|
|
||||||
|
| **T-02** | [`docs/SPEC_MEMORIA_CONTRATO_V2_S20260808.md`](docs/SPEC_MEMORIA_CONTRATO_V2_S20260808.md) | contrato I/O declarado **antes** del código |
|
||||||
|
| **T-03/04** | 7 claves nuevas en `tessera_pipeline.py` vía `derive_contract_v2()` | 5/5 casos de derivación · 55 passed sin regresión |
|
||||||
|
| **T-05** | [`rules/memoria-contrato-v2.md`](rules/memoria-contrato-v2.md) + su digest | MC-1..MC-8 + 4 anti-patrones |
|
||||||
|
| **T-06** | [`memory_contract_validator.py`](.claude/hooks/lib/memory_contract_validator.py) + test | 72 passed · **mordida verificada** |
|
||||||
|
|
||||||
|
Los siete campos: `epistemic_status` (9 valores) · `epistemic_confidence` · `temporal{valid_from, superseded_at}` · `lifecycle_state` (6) · `cognitive_type` (7, el segundo eje) · `derived_from` · y el sello `contract_schema_version`.
|
||||||
|
|
||||||
|
## [R7.seccion2.I2] Lo que este tramo enseña sobre verificar
|
||||||
|
|
||||||
|
Tres cosas se rompieron por el camino, y ninguna se tapó:
|
||||||
|
|
||||||
|
**El agente afirmó que su control positivo mordía.** No lo di por bueno. Neutralicé el validador y la suite pasó a **44 failed / 28 passed** — muerde de verdad. Luego lo restauré con sha256 verificado. Un claim de un agente sin evidencia propia vale lo mismo que un claim mío sin evidencia: nada.
|
||||||
|
|
||||||
|
**Había un `index.lock` de 36 horas** — residuo de mi propio commit cortado ayer. Con cinco `git.exe` vivos, borrarlo a ciegas podía corromper el índice. Lo probé **renombrándolo**, que es reversible y demuestra propiedad sin destruir: si se deja renombrar, nadie lo tiene abierto.
|
||||||
|
|
||||||
|
**El pre-commit bloqueó por un secret** en `skills/llm-memory-research-auditor/tests/`, archivo de otra instancia que ya estaba en el índice. No usé `--no-verify`. Acoté el commit por pathspec a mis seis archivos: lo mío entra, el hallazgo de seguridad sigue vivo para su dueño.
|
||||||
|
|
||||||
|
Y una decisión de diseño que vale más que el código: el default de `epistemic_status` es `inferred`, **no** `observed`. Un episodio sin declaración no es una observación verificada — lo contrario sería exactamente la promoción silenciosa de inferencia a hecho que el estado del arte lista como fallo grave. Lo mismo con `calibrated: false` siempre: calibrar exige una serie de resultados que no existirá hasta T-18.
|
||||||
Loading…
Reference in a new issue