chore(metodo): reparto — C40 preguntaba al DISCO, no a git
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 <noreply@anthropic.com>
This commit is contained in:
parent
8c5e0865f3
commit
c733b93dab
@ -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
|
||||
|
||||
@ -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' ' ')
|
||||
|
||||
@ -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.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user