From c733b93dab5cbf440c6ab7f1b2645cafdfdfa8ff Mon Sep 17 00:00:00 2001 From: sirxavor Date: Thu, 3 Sep 2026 09:28:52 +0200 Subject: [PATCH] =?UTF-8?q?chore(metodo):=20reparto=20=E2=80=94=20C40=20pr?= =?UTF-8?q?eguntaba=20al=20DISCO,=20no=20a=20git?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El check leia cicatrices.md del disco y salia VERDE en los 27 repos sobre un fichero que ninguno versionaba. Ahora pregunta git ls-files --error-unmatch. Ejercitado en los dos sentidos. Solo .metodo/ — byte a byte desde la matriz. Sesion: superadmin Co-Authored-By: Claude Opus 5 --- .metodo/CHECKSUMS | 4 ++-- .metodo/bin/metodo | 13 +++++++++++++ .metodo/metodo.md | 11 +++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/.metodo/CHECKSUMS b/.metodo/CHECKSUMS index 0c5efd7..d3c0eb2 100644 --- a/.metodo/CHECKSUMS +++ b/.metodo/CHECKSUMS @@ -1,5 +1,5 @@ -ef4606f5ad9421ecd093633696a19035d3dd034c437912a497464425492d3ac6 metodo.md -11bf48ad900c3a8748f229f4938a600ddd2a34897f36ee2284b10b5d44e3a0bf bin/metodo +e8382b9a69d6a18d197ef84fb4a3c6c523e81b140714a2a579e09401685e6930 metodo.md +a962d34e29ff9a45c508d06646d21fa02cc560c3bce98efe9a5d98d89919f661 bin/metodo f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md 2b9037f6dd57b5598c70a676cb728556654f05d1c5b024e7b716864659f7b884 workflows/sesion-ejecucion.md diff --git a/.metodo/bin/metodo b/.metodo/bin/metodo index 1610529..da53383 100644 --- a/.metodo/bin/metodo +++ b/.metodo/bin/metodo @@ -175,6 +175,19 @@ check_cicatrices() { elif [ -f "$ROOT/.metodo/metodo.md" ] && [ -f "$ROOT/.metodo/cicatrices.md" ]; then md="$ROOT/.metodo/metodo.md"; cic="$ROOT/.metodo/cicatrices.md" else skip "no hay metodo.md + cicatrices.md que carear"; return 0; fi local refs defs falta sobra dup + # ⛔ EL SUJETO: «está en disco» y «está en git» son DOS COSAS DISTINTAS, y este check leía del + # disco. Medido el 2026-09-03: `cicatrices.md` llevaba un día en los 27 repos SIN VERSIONAR y + # C40 salía VERDE en los 27 — el fichero estaba delante, se leía, y el check no PODÍA enrojecer. + # Lo precisó proyectos-3c: el testigo que discrimina no es leer el fichero, es preguntar a git. + local _r + _r=$(git -C "$ROOT" rev-parse --show-toplevel 2>/dev/null) + if [ -n "$_r" ]; then + local _f + for _f in "$md" "$cic"; do + git -C "$ROOT" ls-files --error-unmatch "$_f" >/dev/null 2>&1 || \ + bad "$(basename "$_f") EXISTE EN DISCO pero NO ESTÁ EN GIT (C40) — este check lo estaba leyendo igual: un clon limpio no lo tendría" + done + fi refs=$(grep -o 'C-[0-9]\{3\}' "$md" | sort -u) defs=$(grep -o '^### C-[0-9]\{3\}' "$cic" | sed 's/^### //' | sort -u) falta=$(comm -23 <(echo "$refs") <(echo "$defs") | tr '\n' ' ') diff --git a/.metodo/metodo.md b/.metodo/metodo.md index 6401eb9..0d68bdc 100644 --- a/.metodo/metodo.md +++ b/.metodo/metodo.md @@ -1829,6 +1829,17 @@ pega tal cual. el gate. ⇒ ⭐ Y la forma general: **el pathspec te protege del índice ajeno pagando con lo tuyo nuevo.** Es una elección, no una salvaguarda gratuita — y **hay que saber qué se está pagando**. + ⇒ ⭐⭐ **Y LO GRAVE NO ES LA RAREZA DE `git`, QUE ESTÁ DOCUMENTADA Y ES ABURRIDA: ES QUE EL GATE + ESTABA VERDE SOBRE UN FICHERO QUE NO ESTABA EN GIT.** *(Lo precisó `proyectos-3c`.)* El check leía + el fichero **del disco** — y **«está en disco» y «está en git» son DOS SUJETOS DISTINTOS**. Con el + fichero presente y sin versionar, **el check NO PODÍA enrojecer**: medía lo que tenía delante, no lo + que se publica. + ⇒ **El testigo que discrimina no es leer el fichero: es `git ls-files --error-unmatch`**, que es lo + único que pregunta por el sujeto correcto. *(Atado en `C40` el mismo día, con control negativo.)* + ⇒ ⭐ Y su familia, que ya tiene tres caras medidas: un gate que lee **un fichero que la IMAGEN no + incluye** · uno que lee **un fichero que el REPO no incluye** · y un banco cuya cabecera dice que + corre dentro del pod **y no entra en la imagen**. **Tres veces la misma pregunta —¿el artefacto está + donde el que lo mide cree que está?— y tres respuestas distintas.** ⇒ ⛔ **Y lo que NINGÚN gesto de git arregla: que otra sesión te sobrescriba el WORKING TREE.** No hay dos copias. Mover la coordinación a git **compra historial, no aislamiento** — y la única salida real es **que dos sesiones no escriban el mismo fichero**, no una puerta mejor.