chore(metodo): reparto — tres caras de 'la comprobacion informa de otra cosa'
Fundidos presencia/forma y el validador que no mira: mismo mecanismo. Y con ellos entra la tercera cara, aparcada hasta ahora: la guarda que enrojece por un camino distinto del que dice medir. Solo .metodo/ — byte a byte desde la matriz. Sesion: superadmin Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
e0c49610c3
commit
ef49f193e8
@ -1,4 +1,4 @@
|
|||||||
802b38924f2e8159e1fcb59937661312463dc3fcbb58fbe58f04b4a64a5a038f metodo.md
|
f226449c1039cca20dd14575fd26f6e5336e2d97e112e28a41a237ad1d1d84e2 metodo.md
|
||||||
36796ff4e2adf641dac48b4436a86ba75f99a919886b73e0b5266642a4b55634 bin/metodo
|
36796ff4e2adf641dac48b4436a86ba75f99a919886b73e0b5266642a4b55634 bin/metodo
|
||||||
f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md
|
f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md
|
||||||
cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md
|
cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md
|
||||||
|
|||||||
@ -732,18 +732,61 @@ de fallo que **produce medidas coherentes y falsas**, y por eso no se nota.
|
|||||||
⇒ Antes de creerte una medida: **¿de qué aparato habla?** · **¿pudo cambiarla el hecho de tomarla?**
|
⇒ Antes de creerte una medida: **¿de qué aparato habla?** · **¿pudo cambiarla el hecho de tomarla?**
|
||||||
· **¿distingue «está mal» de «no lo veo»?**
|
· **¿distingue «está mal» de «no lo veo»?**
|
||||||
|
|
||||||
⛔ **UN TESTIGO DE PRESENCIA NO ES UN TESTIGO DE FORMA.** Comprobar que algo *está* no comprueba que
|
⛔⛔ **UNA COMPROBACIÓN PUEDE INFORMAR DE ALGO DISTINTO DE LO QUE DICE COMPROBAR — y desde fuera se ve
|
||||||
esté *bien puesto*, y el de presencia sale verde en los dos casos.
|
idéntica a una que funciona.** No es que no pueda enrojecer: **puede**, sólo que **por otra razón que
|
||||||
*(Cicatriz 2026-09-02, dos veces el mismo día: **(a)** un bloque de 14 líneas insertado con `sed a\`
|
la anunciada**. Y el verde que devuelve es cierto: contesta **otra pregunta**. Tres caras, las tres
|
||||||
entró **colapsado en UNA sola línea**; el testigo era `grep -c <marcador>` → **1**, verde, y la forma
|
medidas el 2026-09-02:
|
||||||
estaba destruida. El testigo bueno era `git diff --numstat` (15) junto a `grep -c '^+>'` (14).
|
|
||||||
**(b)** filtrar un diff con `grep "^[+-][^+-]"` para quitar cabeceras **oculta toda línea de lista
|
**① PRESENCIA en lugar de FORMA.** Comprobar que algo *está* no comprueba que esté *bien puesto*, y
|
||||||
Markdown**, porque una viñeta empieza por `-` y da `+-`/`--`. Salió **diff vacío** sobre un fichero
|
el testigo de presencia **sale verde en los dos casos**. *(**(a)** un bloque de 14 líneas insertado
|
||||||
que sí había cambiado, y estuvo a punto de cerrarse como «ya estaba commiteado». En un corpus que es
|
con `sed a\` entró **colapsado en UNA sola línea**; el testigo era `grep -c <marcador>` → **1**,
|
||||||
casi todo viñetas, ese filtro **borra la mayoría de lo que buscas** — y no da error, da vacío.)*
|
verde, con la forma destruida. El bueno era `git diff --numstat` (15) junto a `grep -c '^+>'` (14).
|
||||||
⇒ Y su forma general: **un filtro que no casa no se queja, devuelve nada** — indistinguible de «no
|
**(b)** filtrar un diff con `grep "^[+-][^+-]"` **oculta toda línea de lista Markdown** —una viñeta
|
||||||
hay nada». Cuando un instrumento devuelva vacío, **pruébalo contra un caso que SÍ debería encontrar**
|
empieza por `-` y da `+-`/`--`—: salió **diff vacío** sobre un fichero que sí había cambiado. En un
|
||||||
antes de concluir.
|
corpus que es casi todo viñetas, ese filtro **borra la mayoría de lo que buscas**.)*
|
||||||
|
⇒ **Un filtro que no casa no se queja: devuelve nada** — indistinguible de «no hay nada». Cuando un
|
||||||
|
instrumento devuelva vacío, **pruébalo contra un caso que SÍ debería encontrar** antes de concluir.
|
||||||
|
|
||||||
|
**② MENCIÓN en lugar de VALIDACIÓN.** Un esquema **no declara lo que deja de comprobar**: acepta el
|
||||||
|
documento, devuelve verde, y el hueco no aparece en ninguna parte. ⇒ **Leer un esquema no te dice qué
|
||||||
|
valida: te dice qué MENCIONA.** *(Cuatro mutantes sobre el netplan real de un host. El
|
||||||
|
`autoinstall_schema` del controlador de red de subiquity pone `ethernets: {properties: {match:
|
||||||
|
MATCH}}` con `MATCH` llevando `additionalProperties: false`, y de ahí se afirmó que un `match` con
|
||||||
|
una clave de más sería rechazado. **Falso**: ese `match` cuelga **directamente de `ethernets`**,
|
||||||
|
profundidad donde netplan **no lo pone jamás**; el de verdad vive en `ethernets.<iface>.match`, y ahí
|
||||||
|
el esquema **no mira**, porque `ethernets` no lleva `additionalProperties: false`.)*
|
||||||
|
```
|
||||||
|
version: 3 -> RECHAZADO ("3 is greater than the maximum of 2")
|
||||||
|
typo `macadress` en prov0.match -> PASA <- la afirmacion, refutada
|
||||||
|
bond con mode: 802.3ed -> PASA <- el verde falso, EJERCITADO
|
||||||
|
`match` colgando de `ethernets` a pelo -> RECHAZADO ("Additional properties")
|
||||||
|
```
|
||||||
|
⇒ De ese esquema, sobre la red, **lo único afirmable es `version` obligatoria y = 2**.
|
||||||
|
⇒ ⭐⭐ **Y el remate: el esquema comete EXACTAMENTE la trampa de la que iba a protegernos** — un
|
||||||
|
`match` a la profundidad equivocada, que es el aviso `A13` de ese mismo frente. Allí el motor lo
|
||||||
|
**borra** sin decir nada; aquí el esquema **valida la nada** sin decir nada. **La herramienta que te
|
||||||
|
iba a proteger de una trampa puede estar cometiéndola.**
|
||||||
|
|
||||||
|
**③ OTRO MECANISMO en lugar del que NOMBRA — y ésta es la que no caza ningún gate genérico.** La
|
||||||
|
guarda enrojece de verdad, pero **por un camino distinto del que dice medir**, así que **quitar
|
||||||
|
aquello que anuncia comprobar NO la pone roja**. *(`proyectos-3c`, sobre el arranque por red:
|
||||||
|
predijo **1 rojo** en su mutante y salió **0**. Su comprobación decía medir *«el servidor que ignora
|
||||||
|
el `Range`»* y en realidad pasaba por **el magic `CD001` ausente en unos bytes de relleno**. La
|
||||||
|
arregló con un fichero que **parece correcto a la profundidad equivocada** — literalmente `A13` en
|
||||||
|
otro traje.)*
|
||||||
|
⇒ **Sólo la separa MUTAR LA GUARDA CONCRETA QUE NOMBRA.** Un mutante genérico no la distingue de una
|
||||||
|
comprobación sana: hay que romper **el mecanismo que la cabecera dice medir**, y ver si enrojece.
|
||||||
|
|
||||||
|
⇒ ⭐ **Y la mitad de proceso, que extiende *«releer una inferencia no la comprueba»* con el remedio**:
|
||||||
|
en las tres se afirmó **leyendo** —el marcador, el esquema, la cabecera de la guarda—. La inferencia
|
||||||
|
era **correcta sobre el fragmento mirado y falsa sobre el conjunto**. **Releerlo no habría corregido
|
||||||
|
nada: sólo lo corrigió el mutante.** ⇒ **La mitad roja no es el adorno de la comprobación: es la
|
||||||
|
comprobación.** Contra un validador, el mutante es un documento que **debería** rechazar; si pasa,
|
||||||
|
acabas de medir el hueco.
|
||||||
|
⚠️ **Con una condición, o el ejercicio se vuelve decorativo: el mutante tiene que PARECERSE A LO QUE
|
||||||
|
DE VERDAD SE ESCRIBE.** Un typo en una MAC vale porque **es el error que alguien va a cometer**;
|
||||||
|
mutar algo que nadie teclea nunca **mide un hueco que no le importa a nadie** — y te deja igual de
|
||||||
|
tranquilo, que es lo peligroso. **Un mutante irreal es un verde disfrazado de rigor.**
|
||||||
|
|
||||||
⛔ **«TODAVÍA NO SE LE HA APLICADO X» NO ES «LE FALTA X».** Confundirlos convierte **el estado normal
|
⛔ **«TODAVÍA NO SE LE HA APLICADO X» NO ES «LE FALTA X».** Confundirlos convierte **el estado normal
|
||||||
de cualquier sistema antes de su paso de configuración** en un incidente — y gasta la credibilidad
|
de cualquier sistema antes de su paso de configuración** en un incidente — y gasta la credibilidad
|
||||||
@ -775,38 +818,6 @@ una descripción se LEE; en un procedimiento se EJECUTA.** Lo cazó una pregunta
|
|||||||
⇒ **Antes de dar por cerrada una corrección de dato: `grep` del dato en TODO el corpus, y control
|
⇒ **Antes de dar por cerrada una corrección de dato: `grep` del dato en TODO el corpus, y control
|
||||||
final que salga vacío.** Y al mirar los resultados, **los procedimientos primero**.
|
final que salga vacío.** Y al mirar los resultados, **los procedimientos primero**.
|
||||||
|
|
||||||
⛔ **UN VALIDADOR PUEDE PASAR POR ENCIMA DE TODO LO QUE IMPORTA SIN DECIR QUE NO LO MIRA.** Un
|
|
||||||
esquema no declara lo que **deja de comprobar**: acepta el documento, devuelve verde, y el hueco no
|
|
||||||
aparece en ninguna parte. ⇒ **Leer un esquema no te dice qué valida: te dice qué menciona.**
|
|
||||||
*(Cicatriz 2026-09-02, con cuatro mutantes sobre el netplan real de un host. El `autoinstall_schema`
|
|
||||||
del controlador de red de subiquity pone `ethernets: {properties: {match: MATCH}}`, con `MATCH`
|
|
||||||
llevando `additionalProperties: false` — y de ahí se afirmó que **un `match` con una clave de más
|
|
||||||
sería rechazado**. **Falso.** Ese `match` cuelga **directamente de `ethernets`**, profundidad donde
|
|
||||||
netplan **no lo pone jamás**; el de verdad vive en `ethernets.<iface>.match`, y ahí el esquema **no
|
|
||||||
mira**, porque `ethernets` **no** lleva `additionalProperties: false` y la interfaz entra como
|
|
||||||
propiedad libre con **todo su contenido sin validar**. Medido:*
|
|
||||||
```
|
|
||||||
version: 3 -> RECHAZADO ("3 is greater than the maximum of 2")
|
|
||||||
typo `macadress` en prov0.match -> PASA <- la afirmacion, refutada
|
|
||||||
bond con mode: 802.3ed -> PASA <- el verde falso, EJERCITADO
|
|
||||||
`match` colgando de `ethernets` a pelo -> RECHAZADO ("Additional properties")
|
|
||||||
```
|
|
||||||
*⇒ De ese esquema, sobre la red, **lo único afirmable es `version` obligatoria y = 2**.)*
|
|
||||||
⇒ ⭐⭐ **Y el remate, que es el que hay que recordar: el esquema comete EXACTAMENTE la trampa de la
|
|
||||||
que iba a protegernos** — un `match` a la profundidad equivocada, que es el aviso `A13` de ese mismo
|
|
||||||
frente. Allí el motor lo **borra** sin decir nada; aquí el esquema **valida la nada** sin decir nada.
|
|
||||||
**La herramienta que te iba a proteger de una trampa puede estar cometiéndola.**
|
|
||||||
⇒ Y la mitad de proceso, que extiende *«releer una inferencia no la comprueba»* **con el remedio**:
|
|
||||||
se afirmó **leyendo** el esquema. La inferencia era **correcta sobre el fragmento mirado y falsa
|
|
||||||
sobre el conjunto**, porque no se miró **a qué profundidad colgaba**. **Releerlo no habría corregido
|
|
||||||
nada: sólo lo corrigió el mutante.** ⇒ **La mitad roja no es el adorno de la comprobación: es la
|
|
||||||
comprobación.** Contra un validador, el mutante es un documento que **debería** rechazar — si pasa,
|
|
||||||
acabas de medir el hueco.
|
|
||||||
⚠️ **Con una condición, o el ejercicio se vuelve decorativo: el mutante tiene que PARECERSE A LO QUE
|
|
||||||
DE VERDAD SE ESCRIBE.** Un typo en una MAC vale porque **es el error que alguien va a cometer**;
|
|
||||||
mutar algo que nadie teclea nunca **mide un hueco que no le importa a nadie** — y te deja igual de
|
|
||||||
tranquilo, que es lo peligroso. **Un mutante irreal es un verde disfrazado de rigor.**
|
|
||||||
|
|
||||||
⛔ **UN ARNÉS CON UNA RUTA ABSOLUTA A UN SCRATCHPAD ES CÓDIGO QUE NO CORRE — y no da síntoma, porque
|
⛔ **UN ARNÉS CON UNA RUTA ABSOLUTA A UN SCRATCHPAD ES CÓDIGO QUE NO CORRE — y no da síntoma, porque
|
||||||
nadie lo ejecuta hasta que hace falta**, que es el peor momento posible para descubrirlo.
|
nadie lo ejecuta hasta que hace falta**, que es el peor momento posible para descubrirlo.
|
||||||
*(Cicatriz 2026-09-02: el banco de subiquity del motor de `hermes-infra` estaba commiteado con rutas
|
*(Cicatriz 2026-09-02: el banco de subiquity del motor de `hermes-infra` estaba commiteado con rutas
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user