chore(metodo): un incremento sin declarar es indistinguible de una deriva

.metodo/INCREMENTO declara lo que este repo tiene DE MAS: ruta, fecha y por que.
Propone el frente, coloca quien lleva el Metodo.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
sirxavor 2026-08-31 17:16:05 +02:00
parent 8a24fb5fdb
commit 1e6eeb2fd9
3 changed files with 55 additions and 2 deletions

View File

@ -1,5 +1,5 @@
fe3263dd8d8dde7173757d0308246942dd0bdf40a743f6ad832ee946375bc722 metodo.md
420e223b19e57a84181bfd5585ab4b63e3c7ec6df637930b51efb6d12f43d127 bin/metodo
a887b492ea9c1b760172bd25ea4d1a79cb9f4f096b5115b45712916ce774623d metodo.md
c8b7746c26471b6b041abbea1583d2bf6e5b13020df63ca1b9503fa0b4757ec3 bin/metodo
f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md
cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md
2b9037f6dd57b5598c70a676cb728556654f05d1c5b024e7b716864659f7b884 workflows/sesion-ejecucion.md

View File

@ -101,6 +101,30 @@ info() { printf ' \033[36minfo\033[0m %s\n' "$*"; } # censo, NO veredicto: no
# se usa. Un puntero roto NO avisa: no encuentras lo que buscabas y concluyes que no existe.
# `update` sella aquí lo que reparte; `check` compara. Sólo aplica a la MATRIZ.
_huella_reparto() { { tr -d '\r' < "$SELF_ROOT/metodo.md"; tr -d '\r' < "$SELF_ROOT/bin/metodo"; } | md5sum | cut -d' ' -f1; }
# ⛔ INCREMENTOS DECLARADOS (2026-08-31). Un repo puede necesitar documentos que el Método no
# prevé — nacen de lo que ese frente entrega, y eso no se deduce del Método. ⛔ Pero **un
# incremento SIN DECLARAR es indistinguible de una DERIVA**: quien mire el repo mañana ve un corpus
# que no cuadra y no puede saber si es «tiene un incremento aprobado» o «se fue por su cuenta».
# ⇒ Se declara en `.metodo/INCREMENTO` (del repo; NO se vendoriza), una línea por documento:
# <ruta relativa> <AAAA-MM-DD> <por qué ESTE repo lo necesita>
# Misma forma que EXCEPCIONES, que ya está probada: nominal, fechada, motivada, contada e IMPRESA.
# ⚠️ Se ata lo decidible: que lo declarado EXISTA. ⛔ Lo contrario —cazar un fichero que está y no
# está declarado— NO se ata, y se dice por qué: exigiría una definición de «línea base» del corpus
# que hoy no existe, y un gate que la adivinara daría rojos crónicos. Queda como criterio humano.
check_incremento() {
local f="$ROOT/.metodo/INCREMENTO"
hdr "incrementos declarados (lo que este repo tiene DE MÁS)"
[ -f "$f" ] || { ok "ninguno declarado — el corpus es el del Método"; return 0; }
local n=0 falta=0 ruta fecha resto
while read -r ruta fecha resto; do
case "$ruta" in ''|'#'*) continue;; esac
n=$((n+1))
if [ -e "$ROOT/$ruta" ]; then info "$ruta ($fecha) — $resto"
else bad "declarado y NO EXISTE: $ruta ($fecha) — un incremento declarado que no está es un puntero roto"; falta=$((falta+1)); fi
done < "$f"
[ "$falta" -eq 0 ] && ok "$n incremento(s) declarado(s), todos presentes"
}
check_reparto_al_dia() {
_is_matriz || return 0
hdr "la matriz está repartida (lo editado ha viajado)"
@ -975,6 +999,7 @@ cmd_check() {
printf 'metodo check — %s\n' "$ROOT"
check_drift
check_apendices_no_viajan
check_incremento
check_reparto_al_dia
check_semaforo_forma
check_semaforo_en_vuelo

View File

@ -907,6 +907,34 @@ mirar**. Las dos veces lo cazó la sesión nueva, que era la única que **no dab
correcto** — lo que está mal es **a quién, o desde cuándo, se refiere**.
**UN INCREMENTO SIN DECLARAR ES INDISTINGUIBLE DE UNA DERIVA.** Un repo puede necesitar documentos
que el Método no prevé —nacen de **lo que ese frente entrega**, y eso no se deduce del Método—; pero
si no están declarados en ningún sitio, **quien mire ese corpus mañana no puede saber si es «tiene un
incremento aprobado» o «se fue por su cuenta»**.
⇒ Es el raíl de fuente única **sin su otra mitad**: hay fuente, y **no hay lista de excepciones a la
fuente**. *(Y no es teórico: el propio linter mide **la copia sellada**, no lo que cada repo tiene de
más ⇒ **hoy un incremento es indistinguible de una deriva para el instrumento del árbol**.)*
**Se declara en `.metodo/INCREMENTO`** —del repo, no viaja—, una línea por documento con **ruta,
fecha y por qué ESTE repo lo necesita**. Misma forma que las excepciones de commits, que ya está
probada: **nominal, fechada, motivada, contada e impresa en cada corrida**.
⚠️ **Se ata lo decidible —que lo declarado EXISTA— y se dice por qué no lo demás**: cazar un fichero
que está y **no** está declarado exigiría una definición de «línea base» del corpus que hoy no existe,
y un gate que la adivinara daría **rojos crónicos**. Queda como criterio humano, **a propósito**.
⭐ **Y QUIÉN PROPONE Y QUIÉN COLOCA, que no es lo mismo: PROPONE EL FRENTE, COLOCA Y RATIFICA QUIEN
LLEVA EL MÉTODO.**
**El frente es el único que puede VER la necesidad**: un documento extra nace de a quién entrega ese
proyecto, y desde fuera no se deduce.
**Pero el frente NO puede decidir dónde vive lo que escribe.** *(Cicatriz 2026-08-31: una
orquestadora escribió **cuatro** raíles en su propio corpus creyéndolos suyos; **tres eran generales y
uno no**, y **ella no podía distinguirlos** — sólo ve su frente. Además, de los tres, uno se paró por
un motivo que ella no habría dado: **una ocurrencia no hace un raíl**. Y quien la paró **no fue un
gate: fue el usuario**.)*
⇒ Por eso el reparto es: **el frente dice QUÉ necesita y POR QUÉ, con la medida delante; quien lleva
el Método decide SI es incremento o es Método, y QUÉ FORMA tiene.** Así **proponer desde el frente no
tiene coste**: lo peor que puede pasar es que le digan que no.
⛔ **La pregunta «¿esto es del Método o es mío?» no la puede contestar quien lo escribe.**
⛔⛔ **LO QUE SE MIDE SE ESCRIBE EN LA CAPA DEL QUE EJECUTA, NO EN LA DEL QUE DECIDE — y por eso es
correcto, está escrito, y quien decide no puede verlo.** Evidencias, scripts de banco, mensajes de
commit, comentarios dentro de un rol: **todos son sitios donde el trabajo cae de forma natural** y