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:
parent
8a24fb5fdb
commit
1e6eeb2fd9
@ -1,5 +1,5 @@
|
|||||||
fe3263dd8d8dde7173757d0308246942dd0bdf40a743f6ad832ee946375bc722 metodo.md
|
a887b492ea9c1b760172bd25ea4d1a79cb9f4f096b5115b45712916ce774623d metodo.md
|
||||||
420e223b19e57a84181bfd5585ab4b63e3c7ec6df637930b51efb6d12f43d127 bin/metodo
|
c8b7746c26471b6b041abbea1583d2bf6e5b13020df63ca1b9503fa0b4757ec3 bin/metodo
|
||||||
f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md
|
f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md
|
||||||
cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md
|
cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md
|
||||||
2b9037f6dd57b5598c70a676cb728556654f05d1c5b024e7b716864659f7b884 workflows/sesion-ejecucion.md
|
2b9037f6dd57b5598c70a676cb728556654f05d1c5b024e7b716864659f7b884 workflows/sesion-ejecucion.md
|
||||||
|
|||||||
@ -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.
|
# 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.
|
# `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; }
|
_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() {
|
check_reparto_al_dia() {
|
||||||
_is_matriz || return 0
|
_is_matriz || return 0
|
||||||
hdr "la matriz está repartida (lo editado ha viajado)"
|
hdr "la matriz está repartida (lo editado ha viajado)"
|
||||||
@ -975,6 +999,7 @@ cmd_check() {
|
|||||||
printf 'metodo check — %s\n' "$ROOT"
|
printf 'metodo check — %s\n' "$ROOT"
|
||||||
check_drift
|
check_drift
|
||||||
check_apendices_no_viajan
|
check_apendices_no_viajan
|
||||||
|
check_incremento
|
||||||
check_reparto_al_dia
|
check_reparto_al_dia
|
||||||
check_semaforo_forma
|
check_semaforo_forma
|
||||||
check_semaforo_en_vuelo
|
check_semaforo_en_vuelo
|
||||||
|
|||||||
@ -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**.
|
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
|
⛔⛔ **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
|
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
|
commit, comentarios dentro de un rol: **todos son sitios donde el trabajo cae de forma natural** y
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user