chore(metodo): reparto — fase 1 de compresion: dos contradicciones vivas

La seccion Entrega recomendaba 'git pull' donde otro rail dice que es un
no-op, y presentaba el porcelain como LA puerta cuando solo cubre una
ventana. Desambiguadas las dos, no borradas.

Solo .metodo/ — byte a byte desde la matriz.

Sesion: superadmin

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
sirxavor 2026-09-02 19:29:12 +02:00
parent 274cc1672a
commit d690d5c861
2 changed files with 17 additions and 5 deletions

View File

@ -1,4 +1,4 @@
90bd7d9feb0ebf513cf60e292436dc90653e42e31a41b4ff115eaf93cd0c480a metodo.md
411e75dd254ed1555a6091cf9c99ee15c889b320707fcf9caabd11d7cffc9082 metodo.md
fb7e88324524184b9f685c49c0bbcc6c9a55beb07bb5c0b1b31cd29c51c4117f bin/metodo
f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md
cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md

View File

@ -2093,8 +2093,15 @@ pega tal cual.
- **Git canónico único y MEDIDO**: se empuja a un remoto y solo ahí; un fallo se **mide**
(dry-run/reintento) antes de concluir "no hay credenciales"; el remoto muerto se elimina localmente.
- **Commits Conventional** (`feat/fix/docs/ci` + scope); el `doc:` registra el **porqué**.
- **Working-tree compartido**: `git add` con ruta explícita (**nunca `-A`**), `git pull` antes de
deploy y antes de commitear docs, una tarea = una sesión/worktree.
- **Working-tree compartido**: `git add` con ruta explícita (**nunca `-A`**) y, mejor,
**`git commit -- <rutas>`**, que ignora el índice para todo lo demás; una tarea = una sesión.
**Y `git pull` NO es parte de esto**: entre sesiones **de esta máquina** es un **no-op**
comparten árbol e índice, ver el cuarto filo de `§9`— y creerlo una protección **es el modelo
equivocado**. Donde **sí** hace falta es contra el **remoto**, cuando ha podido empujar **otra
máquina o una persona**. *(Los dos casos, el 2026-09-02: un satélite midió que su `pull` no traía
nada porque ya lo tenía; y `MOT` rechazó un `push` porque **un compañero había empujado tres
commits** desde otro sitio.)* ⇒ **Distingue de quién te estás sincronizando**: de otra sesión, no
hay nada que traer; de otra máquina, sí.
- ⛔ **QUIÉN EMPUJA: el `push` es un acto de ÁMBITO, no un acto sobre tus commits** *(Xavier,
2026-08-29)*. **Un `push` publica todo lo que hay entre el remoto y tu HEAD, lo haya puesto quien
lo haya puesto** — así que el permiso no se decide por quién escribió el commit, sino por **de
@ -2214,8 +2221,13 @@ pega tal cual.
**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.
⇒ Y el sub-raíl operativo, **con su límite dicho, que es la mitad que faltaba**: `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. ⛔ **Pero sólo ve lo que YA ESTABA cuando empezaste** — una
escritura ajena que entra **después** de tu `add` **no la caza**, y hoy se usaba como si bastara.
**La que cubre esa ventana es `git diff --cached --name-only` INMEDIATAMENTE antes de commitear**,
leída por ojos y **no encadenada con `&&`** a lo que viene detrás. **Las dos no son redundantes:
cubren ventanas distintas.**
**Y UN CUARTO, QUE ES DE OTRA COMPROBACIÓN: `git status` NO VE LOS COMMITS SIN EMPUJAR.** Son
**dos gestos distintos y ninguno implica al otro**`git status --porcelain` dice **qué me llevo
DENTRO del commit**; `git log origin/main..HEAD` dice **qué PUBLICO con él**. Correr el primero y