From 444063b499acc95be7cfbca41908659ad05ae758 Mon Sep 17 00:00:00 2001 From: sirxavor Date: Thu, 3 Sep 2026 11:03:28 +0200 Subject: [PATCH] =?UTF-8?q?chore(metodo):=20reparto=20=E2=80=94=20empuja?= =?UTF-8?q?=20un=20SHA,=20no=20una=20rama;=20el=20autor=20no=20discrimina?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tener la comprobacion correcta no basta si comparte turno con la accion. Y git log --format=%an da sirxavor para TODO: el autor no distingue lo tuyo de lo ajeno. Lo que no es heuristica: publica tu sha exacto. Solo .metodo/ — byte a byte desde la matriz. Sesion: superadmin Co-Authored-By: Claude Opus 5 --- .metodo/CHECKSUMS | 2 +- .metodo/cicatrices.md | 24 ++++++++++++++++++++++++ .metodo/metodo.md | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/.metodo/CHECKSUMS b/.metodo/CHECKSUMS index b1dc943..f70b1ba 100644 --- a/.metodo/CHECKSUMS +++ b/.metodo/CHECKSUMS @@ -1,4 +1,4 @@ -3de6821d4feb7f1c62b546605d0caecc6be9e4ffd4cb1396852c7612781267b1 metodo.md +41997a7e81b1178a3ecfd643b56d8dcb1e106ac75c36a099c4170612e46fd53b metodo.md 1e9242642ed009b993a9ca613b1f4d438748b91eadf5af1f6dab669c87a560cb bin/metodo f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md diff --git a/.metodo/cicatrices.md b/.metodo/cicatrices.md index 8ff2b8a..90a3dd8 100644 --- a/.metodo/cicatrices.md +++ b/.metodo/cicatrices.md @@ -1257,3 +1257,27 @@ otra sesión estaba empujando ahí (`c5895af`). Careó contra la fuente y **el s 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**. +### C-160 + +`kubernetes` (incidencia), 2026-09-03, **y es la otra mitad de `C-158`**: se apuntó en el semáforo a +las ~09:40 antes de escribir (308→309 líneas). Al ir a commitear al cerrar: worktree **limpio**, +`origin/main..HEAD` **vacío**, y su texto en **0 apariciones — ni en el árbol ni en ninguna +revisión** (`git log -S` sin resultados). **Su fila no estaba «sin commitear»: no existía.** +⇒ La otra sesión **hizo bien la mitad difícil** —vio la línea ajena por la predicción del diffstat y +**no la firmó**— pero **apartó el fichero entero**, y eso **la borró**. +⛔ **Y la dueña no se entera**: su worktree sale **limpio**, así que el síntoma de *«me han borrado el +trabajo»* es **indistinguible** del de *«ya estaba commiteado»*. Sólo lo vio **porque fue a commitear +y no había nada que commitear**; sin ese gesto, la fila **habría desaparecido en silencio** y el +semáforo **habría mentido sobre quién tocaba el cluster `work` durante un incidente**. + +### C-161 + +`kubernetes` (incidencia), 2026-09-03, **el mismo día en que se escribió el raíl y teniendo el +comando correcto puesto**: publicó un commit ajeno al empujar su fila. **Corrió +`git log origin/main..HEAD` antes del `push` y VIO las dos líneas ajenas en la salida** — y las puso +**en la misma llamada que el `push`**, así que el dato **se imprimió y no pudo detener nada**. +⇒ Sus palabras: *«tener la comprobación correcta no basta si comparte turno con la acción»*. +⛔ **Y el segundo filo, que invalida el atajo obvio**: en este árbol **todos los commits llevan +`sirxavor` de autor**, así que **`git log --format=%an` NO distingue lo tuyo de lo ajeno**. El autor +no es un discriminante: lo son **el mensaje y la fecha** — o, mejor, **no adivinar**. + diff --git a/.metodo/metodo.md b/.metodo/metodo.md index d3bb85a..d08227e 100644 --- a/.metodo/metodo.md +++ b/.metodo/metodo.md @@ -1523,6 +1523,13 @@ canal no está repitiendo lo que el corpus dice — está entregando **lo único recoger** (callejones ya recorridos, una medida tomada *y por qué no vale*, la calibración del puesto). ⇒ Ahí el deber es el inverso y es del que recibe: **fijar en el corpus lo que le llegó por el canal, o el relevo sólo ha movido la deuda de sitio.** +⛔ **Y EL SEMÁFORO DECLARA INTENCIÓN, NO OCUPACIÓN REAL: puede darte vía libre estando el repo +ocupado.** Una sesión que aún no ha escrito su fila —o que la escribió con el alcance corto— **no +aparece**, y quien carea concluye *«libre»* sobre un dato que **sólo dice lo que alguien se acordó de +declarar**. *(cicatriz `C-159`)* +⇒ **Carearlo es necesario y NO es suficiente.** El estado real de un repo lo dan **`git log +@{u}..HEAD` y `git status --porcelain`**, que **no dependen de que nadie se acuerde**. ⇒ **Córrelos +aunque el semáforo diga que estás sola.** ⛔ **El ESTADO DE OTRO FRENTE se re-verifica antes de retransmitirlo — o se marca «según me dijeron a las HH:MM».** Nunca se afirma en plano. *(cicatriz `C-121`)* @@ -1895,6 +1902,33 @@ git diff --cached --stat # tiene que dar TU prediccion git diff --stat # lo que queda fuera: lo ajeno, intacto git commit ``` + ⛔⛔ **Y DETECTAR LA LÍNEA AJENA ES LA MITAD: LA OTRA ES DEJARLA DONDE ESTABA.** Apartar el fichero + entero para no firmarla **la borra** — y **su dueña no se entera**, porque **su worktree sale + limpio**: el síntoma de *«me han borrado el trabajo»* es **indistinguible** del de *«ya estaba + commiteado»*. *(cicatriz `C-160`)* + ⇒ ⭐ **Sólo se descubre por un gesto que casi nadie hace: ir a commitear y encontrar que no hay + nada que commitear.** Quien cierre sesión sin ese gesto **no lo ve nunca**, y el fichero queda + mintiendo sobre quién estaba trabajando — en el caso medido, **durante un incidente en producción**. + ⇒ **El gesto que preserva las DOS mitades es commitear SÓLO TU LÍNEA** —`git add -p`, + `git stash push --keep-index`, o el `hash-object` + `update-index` de arriba—, **nunca apartar el + fichero**. + ⇒ ⛔ Y el corolario, con un caso más: **el índice y el árbol son compartidos aunque commitees por + rutas.** Aquí **ni siquiera hizo falta un `add` ancho** para perder trabajo ajeno: bastó con + proteger el propio de la forma intuitiva. + ⇒ ⛔ **Y DOS FILOS MÁS, medidos el mismo día en que se escribió esto y por quien tenía el comando + correcto escrito** *(cicatriz `C-161`)*: + **(a)** **Tener la comprobación correcta no basta si comparte turno con la acción.** No falló por + ignorarla: la corrió, **vio las líneas ajenas**, y aun así publicó — porque el dato y el gesto + ocurrieron en el mismo turno. **Una puerta que no puede llegar a tiempo de parar no es una puerta.** + **(b)** ⛔ **Y el atajo obvio para saber qué es tuyo NO FUNCIONA en este árbol: `git log + --format=%an` da `sirxavor` para TODO**, porque todas las sesiones commitean con la misma + identidad. **El autor no discrimina.** Quedan el mensaje y la fecha, que son heurísticas. + ⇒ ⭐ **Y lo que no es heurística: EMPUJA UN SHA, NO UNA RAMA.** Guarda tu `HEAD` justo después de + commitear y publica **exactamente eso** —`git push origin :main`—: lo que haya llegado + después **no sube**, y **no dependes de reconocerlo**. Si el remoto rechaza, es que alguien empujó + en medio: **entonces miras, y entonces decides**. + + ⇒ ⛔ **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.**