# Fermenty — El cierre del lazo y la calibración

> Nota de diseño para retomar **después** del racimo. No es un briefing todavía: es la
> decisión que hay que tomar antes de escribir uno, y la pieza pequeña que se puede hacer ya.
>
> Referencias: `docs/Lexico.md` (§5 El aprendizaje), `docs/Matematica_Motor.md`.
>
> Destino sugerido: `docs/Cierre_del_lazo.md` · 2026-07-24

---

## 1. Dos bucles, y conviene no confundirlos

| | Qué es | Cuándo | Estado |
|---|---|---|---|
| **Bucle 1** | Catas, dices cómo está, la predicción se mueve y la ventana se ajusta | Horas o días, dentro de la tanda | **No construido** |
| **Bucle 2** | Cierras, valoras, y las predicciones futuras se estrechan para ti | Meses, entre tandas | **No construido** |

Valorar al terminar es **bucle 2**. Hoy `flavor_results` recoge seis ejes sensoriales y **nadie lee esa tabla**. El almacén de calibración por usuario × guía no existe.

---

## 2. Lo que sí se puede hacer ya: cerrar el lazo

**No es calibración. Es aritmética con voz.** Y ya están las tres piezas:

- **Lo que pediste** — el `perfil_defecto` o el override, en `batches.formulacion`
- **Lo que hiciste** — el día real de corte, en la reformulación y los eventos
- **Cómo salió** — tu valoración, en `flavor_results`

Con eso el sistema puede explicar la diferencia sin aprender nada:

> «Cortaste el día 9 y yo calculaba el 7 u 8. Por eso salió más ácida de lo que pediste. La próxima, si la quieres como la pediste, córtala antes; si te gustó así, guardo esto como tu punto.»

Eso da la sensación de mentor **sin fingir que ha aprendido**. Y es honesto: con una tanda no hay nada que aprender.

### Los casos

| Situación | Qué dice |
|---|---|
| Cortó tarde y salió más ácida | Explica la causa. Ofrece las dos salidas: corregir o adoptar |
| Cortó a tiempo y salió como pidió | Confirma. Es la señal de que el modelo acierta para esa persona |
| Cortó a tiempo y salió distinta | **El caso interesante**: el modelo o la calibración fallan. No hay explicación fácil, y no hay que inventarla |
| Se saltó pasos o hubo desviaciones | Nombrarlas antes de atribuir nada al modelo |

El tercero es el que no se puede resolver con aritmética, y es el que justifica la calibración de verdad.

---

## 3. 🔴 La decisión que hay que tomar antes de construir la calibración

**Lo que el sistema aprende, ¿mueve la predicción o mueve el destino?**

Con la misma señal —«cortó el día 9 y le gustó»— caben dos lecturas:

- **Su cocina va más lenta** → la predicción se corrige: la próxima vez el mentor le dirá 9 días en vez de 7
- **Su «equilibrada» es más ácida que la mía** → el destino se corrige: el mentor apunta a un corte más tardío para lo que esa persona llama equilibrada

Son **dos aprendizajes distintos con la misma evidencia**, y si se aplican los dos a la vez **se corrigen mutuamente**: el sistema alarga la predicción *y* mueve el objetivo, y acaba prediciendo bien un destino equivocado.

El Léxico ya nombra los dos como las dos mitades de la calibración —**«su sitio»** y **«su lengua»**— pero no dice cómo se separan.

**Lo que los distingue es qué se midió:**

- Si hay **temperatura registrada**, la velocidad de su cocina es medible y va a «su sitio»
- Si cortó **dentro de la ventana** y aun así no le gustó, es «su lengua»
- Si cortó **fuera** de la ventana, no se aprende nada de paladar — solo se sabe que se desvió

Sin esa separación, la calibración es ruido con aspecto de aprendizaje.

---

## 4. Reglas que ya están decididas y aplican aquí

**Una tanda descartada no calibra.** Moho o accidente no es señal de paladar ni de velocidad. Ya está en el modelo (`Batch::scopeCalibratable()` = solo `completed`).

**Solo lo medido calibra.** La reformulación ya distingue residual medido de calculado, precisamente para que el sistema no aprenda de sus propias predicciones y converja hacia sus errores.

**El estrechamiento tiene que ser visible.** Del hueco 17 de la simulación de UI: si solo se muestra al cerrar, se lee como un cierre bonito. Si reaparece al formular la siguiente —*«antes te habría dicho 6-9 porque es lo general; contigo digo 6-7 porque es tu cocina»*— se convierte en el motivo de volver.

Es una línea de texto y es media retención. Y encaja con el mecanismo de herencia con sobreescritura: la calibración no activa nada nuevo, solo pone un valor más específico donde antes se heredaba el general.

---

## 5. Por qué la calibración no se puede hacer con una tanda

Hacen falta varias para separar las dos causas. Con una sola:

- No se distingue si la cocina va lenta o si el paladar es distinto
- No se separa la señal del ruido — una tanda con la ventana abierta en verano no dice nada del invierno
- Ajustar con un dato es peor que no ajustar: mueve el modelo hacia un caso particular

**El orden correcto:** primero el cierre del lazo (§2), que funciona desde la primera tanda; la calibración cuando haya historial y la decisión de §3 esté tomada.

---

## 6. Lo que haría falta construir

**Para el cierre del lazo (pequeño):**
- Leer `flavor_results` al cerrar y compararlo con lo formulado
- Un puñado de plantillas de voz para los cuatro casos de §2
- Escribir en `insights`, que ya existe y es el sitio de la voz del mentor

**Para la calibración (después de §3):**
- El almacén por usuario × guía
- La resolución por herencia: sin calibración propia, coeficientes generales. **No hay arranque en frío**
- El estrechamiento visible en la formulación siguiente

---

## 7. Y sigue faltando el bucle 1

Cerrar el lazo al terminar no sustituye a acompañar durante. El bucle 1 —catas, la predicción se ajusta, la ventana se mueve— es la mitad del mentor en la simulación de UI y no está construido.

Sin él, el mentor formula y explica al final. Con él, acompaña.

---

*Nota viva. Cuando se decida §3, esto se convierte en briefing.*
