From 1e6eeb2fd9796488eb991f72c6c87ace909cd34c Mon Sep 17 00:00:00 2001 From: sirxavor Date: Mon, 31 Aug 2026 17:16:05 +0200 Subject: [PATCH] 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) --- .metodo/CHECKSUMS | 4 ++-- .metodo/bin/metodo | 25 +++++++++++++++++++++++++ .metodo/metodo.md | 28 ++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/.metodo/CHECKSUMS b/.metodo/CHECKSUMS index 232e4b2..57a08aa 100644 --- a/.metodo/CHECKSUMS +++ b/.metodo/CHECKSUMS @@ -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 diff --git a/.metodo/bin/metodo b/.metodo/bin/metodo index b0510ce..d7b81b6 100644 --- a/.metodo/bin/metodo +++ b/.metodo/bin/metodo @@ -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: +# +# 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 diff --git a/.metodo/metodo.md b/.metodo/metodo.md index 00ae0d4..33ea572 100644 --- a/.metodo/metodo.md +++ b/.metodo/metodo.md @@ -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