chore(metodo): el indice tambien es compartido, y el gate arreglado
git add con ruta explicita no desmonta lo que otra sesion dejo staged: tu commit se lleva ficheros que ni nombraste ni tocaste. El gesto que falta no es «no uses -A» sino: si te llevaste algo ajeno, DILO EN EL MENSAJE. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
5922c7f5db
commit
2b6b69ee29
@ -1,5 +1,5 @@
|
||||
343e8a8b741931d28a9aa09a1f4cc3b7e92f20e825fe49d511bde3e3641ca22c metodo.md
|
||||
7a8d29ab793674397b50489a01825e469b52593a12bc24c4368bcfc469d20559 bin/metodo
|
||||
a09aef8bef5baca613fcfa937099b3436540a08aff03c621460c3b0d34b89e89 metodo.md
|
||||
2a4147dc9c3944685182864524a97ba9e56eda150d59d51e3737a86750468c84 bin/metodo
|
||||
f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md
|
||||
cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md
|
||||
2b9037f6dd57b5598c70a676cb728556654f05d1c5b024e7b716864659f7b884 workflows/sesion-ejecucion.md
|
||||
|
||||
@ -93,13 +93,18 @@ check_semaforo_en_vuelo() {
|
||||
local f="$ROOT/workflows/sesiones-activas.md"
|
||||
[ -f "$f" ] || return 0 # sólo aplica donde vive el semáforo (el árbol)
|
||||
hdr "filas vivas con bloque EN VUELO"
|
||||
# ⛔ El sujeto es LA CELDA DE ESTADO, no la línea. La v1 hacía `grep` de 🟢 sobre la línea entera
|
||||
# y marcó como viva una fila CERRADA que usaba 🟢 como PROSA dentro de una predicción — el gate
|
||||
# perdió su sujeto. Y una fila CERRADA/CANCELADA queda fuera pase lo que pase con su texto.
|
||||
# ⛔ Y NO se usa `grep -c`: imprime 0 **y además sale con código 1**, así que un `|| echo 0`
|
||||
# añadía un segundo cero y `[ -gt ]` reventaba — el gate no podía salir VERDE.
|
||||
local vivas sin
|
||||
vivas=$(grep -c "^| 2026.*🟢" "$f" 2>/dev/null || echo 0)
|
||||
sin=$(grep "^| 2026.*🟢" "$f" 2>/dev/null | grep -vc "EN VUELO" || echo 0)
|
||||
vivas=$(grep -c "| 🟢" "$f" || true)
|
||||
sin=$(grep "| 🟢" "$f" | grep -vc "EN VUELO" || true)
|
||||
if [ "$sin" -gt 0 ]; then
|
||||
bad "$sin de $vivas fila(s) 🟢 sin bloque EN VUELO — una fila viva sin estado en vuelo no releva a nadie"
|
||||
bad "$sin de $vivas fila(s) viva(s) sin bloque EN VUELO — una fila viva sin estado en vuelo no releva a nadie"
|
||||
else
|
||||
ok "$vivas fila(s) 🟢, todas con EN VUELO"
|
||||
ok "$vivas fila(s) viva(s), todas con EN VUELO"
|
||||
fi
|
||||
}
|
||||
check_apendices_no_viajan() {
|
||||
|
||||
@ -1695,6 +1695,22 @@ pega tal cual.
|
||||
decisión, **publicarlo no la toma**: se empuja **diciéndolo** y la decisión sigue pendiente de su
|
||||
dueño. Y **antes de usarlo se comprueba que la orquestadora no está viva** — *el único testigo
|
||||
válido es «escribí y no contestó»*, jamás «no la veo en el listado».
|
||||
⛔⛔ **Y HAY UN SEGUNDO AGUJERO, PEOR: EL ÍNDICE TAMBIÉN ES COMPARTIDO.** `git add <ruta>` **no
|
||||
desmonta lo que otra sesión ya dejó *staged***, así que tu commit se lleva **ficheros que ni
|
||||
nombraste ni tocaste** — con ruta explícita, sin `-A`, y haciendo todo bien.
|
||||
*(Cicatriz 2026-08-30, y el sitio es lo que la hace útil: la superadmin commitea **dos** ficheros
|
||||
nombrados uno a uno; entran **tres**. El tercero era el trabajo *staged* de otra sesión, que
|
||||
**sobrevivió íntegro** pero quedó publicado **bajo un mensaje que hablaba de otra cosa** — y con
|
||||
él se perdió **la explicación que esa sesión estaba escribiendo en su propio mensaje**, que era lo
|
||||
valioso. ⭐ **Y el asunto de ese commit era, literalmente, «en este árbol git no distingue
|
||||
sesiones», con un cuerpo que decía que un commit ajeno bajo un mensaje ajeno borra la única
|
||||
atribución que existe.** Lo cometió **mientras lo escribía**. Su propia puerta imprimió
|
||||
`ficheros=3` habiendo nombrado 2 — y no paró: cara (c) y cara (d) a la vez.)*
|
||||
⇒ **El gesto que falta NO es «no uses `git add -A`»** —no se usó— **sino: si te llevaste algo
|
||||
ajeno, DILO EN EL MENSAJE.** Es lo único que devuelve la atribución cuando `git` no distingue
|
||||
sesiones, y **cuesta una línea**.
|
||||
⇒ Y el sub-raíl operativo: **`git status --porcelain` ANTES de tu primer `git add`**. Si hay algo
|
||||
*staged* que no es tuyo, **no es tuyo el índice**: o esperas, o lo declaras.
|
||||
- La **representación en disco es parte del artefacto**: cuando un hash o un runtime consume el
|
||||
checkout, se fija con el repo — **eol** por `.gitattributes` y **bit de ejecución** — o el testigo
|
||||
mide el checkout, no el contenido (una DERIVA falsa en un clone sin tocar entrena a ignorar el
|
||||
|
||||
Loading…
Reference in New Issue
Block a user