diff --git a/.metodo/CHECKSUMS b/.metodo/CHECKSUMS index fff5cdd..b1dc943 100644 --- a/.metodo/CHECKSUMS +++ b/.metodo/CHECKSUMS @@ -1,5 +1,5 @@ -631c6f379af3599c31f9c109356f92d891b5154af5a335be2e8f5a7c4a0bde60 metodo.md -a962d34e29ff9a45c508d06646d21fa02cc560c3bce98efe9a5d98d89919f661 bin/metodo +3de6821d4feb7f1c62b546605d0caecc6be9e4ffd4cb1396852c7612781267b1 metodo.md +1e9242642ed009b993a9ca613b1f4d438748b91eadf5af1f6dab669c87a560cb 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 da53383..8303333 100644 --- a/.metodo/bin/metodo +++ b/.metodo/bin/metodo @@ -210,8 +210,15 @@ check_prosa_partida() { [ ${#fs[@]} -eq 0 ] && { skip "no hay metodo.md que mirar"; return 0; } local mal=0 for f in "${fs[@]}"; do - n=$(perl -CSD -ne 'push @L,$_; END{ my $n=0; + # ⛔ Y el detector tiene que saber CUANDO ESTA DENTRO DE UN BLOQUE DE CODIGO: dentro de un + # ``` fence, un `# comentario` parece una cabecera Markdown y una orden que acaba en + # minuscula parece prosa cortada. Medido el 2026-09-03: falso positivo sobre el + # procedimiento del semaforo, en el propio commit que lo anadia. El instrumento no + # distinguia su sujeto — la misma averia que persigue. + n=$(perl -CSD -ne 'push @L,$_; END{ my $n=0; my $fence=0; for my $i (0..$#L-1){ my $a=$L[$i]; my $b=$L[$i+1]; chomp $a; chomp $b; + if ($a =~ /^\s*(>\s*)?```/) { $fence = !$fence; next } + next if $fence; next if $a =~ /^\s*$/ || $a =~ /^[#|`]/ || $a =~ /^\s*[-*] /; next unless $a =~ /[a-z\x{e1}\x{e9}\x{ed}\x{f3}\x{fa}\x{f1},]$/; next unless $b =~ /^\s*[\x{26D4}\x{2B50}\x{26A0}\x{21D2}\x{2699}\x{26B0}\x{2705}]/ diff --git a/.metodo/cicatrices.md b/.metodo/cicatrices.md index 630b7ad..8ff2b8a 100644 --- a/.metodo/cicatrices.md +++ b/.metodo/cicatrices.md @@ -1241,3 +1241,19 @@ un árbol que otras sesiones tocan no es un arreglo*. Y **el instrumento con el mentía**: contar `|` a secas **cuenta los escapados**, que el parser no ve — con esa cuenta declaró rota una fila que estaba bien, y lo retiró. +### C-158 + +`securizacion` (ejecución), 2026-09-03: al actualizar su fila predijo `+1/-1` y el diffstat dio +**`+2/-1`**. La línea de más era **una fila NUEVA sin commitear** de la sesión de incidente de +`kubernetes`. Un `git add workflows/sesiones-activas.md` **habría publicado su trabajo en vuelo bajo +un mensaje ajeno** — el accidente de agosto **en la dirección contraria**: no barrer lo ajeno, sino +**firmarlo**. ⇒ Y la puerta que lo cazó fue **la predicción del diffstat**: `--name-only` **no habría +visto nada**, porque el fichero era el correcto. + +### C-159 + +`securizacion` (ejecución), 2026-09-03: **ninguna fila viva declaraba `day1-work`** y sin embargo +otra sesión estaba empujando ahí (`c5895af`). Careó contra la fuente y **el semáforo le dio vía +libre estando el repo ocupado**. No colisionó **porque los sujetos eran distintos** —`tasks/pam.yaml` +frente a un reparto del Método—, **pero fue suerte, no diseño**. + diff --git a/.metodo/metodo.md b/.metodo/metodo.md index 72f6b05..d3bb85a 100644 --- a/.metodo/metodo.md +++ b/.metodo/metodo.md @@ -1877,6 +1877,28 @@ pega tal cual. 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 EL TERCER AGUJERO, QUE CIERRA LA FAMILIA: `git add ` NO PROTEGE DE NADA CUANDO EL + FICHERO SE COMPARTE A NIVEL DE LÍNEA.** Hay ficheros cuya **unidad de propiedad no es el fichero, + es la FILA** —el semáforo es exactamente eso—, y ahí nombrar la ruta **no distingue tu línea de la + de otra sesión**. *(cicatriz `C-158`)* + ⇒ ⭐ **Y la única puerta que lo caza es PREDECIR EL DIFFSTAT**: `--name-only` **no habría visto + nada**, porque el fichero **era el correcto**. Salió `+2/-1` donde se predijo `+1/-1`, y esa línea + de más era **una fila viva ajena sin commitear**. ⇒ **Un fichero compartido no se commitea por su + nombre.** + ⇒ **El procedimiento medido, para publicar SÓLO tu línea dejando la ajena intacta en el árbol:** +``` +git show HEAD: > base +# aplica SOLO tu cambio a `base`, anclado por CONTENIDO +BLOB=$(git hash-object -w base) +git update-index --cacheinfo "100644,$BLOB," +git diff --cached --stat # tiene que dar TU prediccion +git diff --stat # lo que queda fuera: lo ajeno, intacto +git commit +``` + ⇒ ⛔ **Y el resumen de los tres, que hay que llevar junto o se elige mal**: `-A` **se lleva otros + ficheros** · `add ` **se lleva otras LÍNEAS del mismo fichero** · `commit -- ` **te + protege del índice pero no del árbol, y no añade lo nuevo**. **Ninguno cubre a los otros dos.** + ⇒ ⛔ **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.