From bfd292b8c76325612efdb8d5efcbf415b26a3722 Mon Sep 17 00:00:00 2001 From: sirxavor Date: Sun, 30 Aug 2026 14:00:48 +0200 Subject: [PATCH] =?UTF-8?q?chore(metodo):=20gate=20explicito=20=E2=80=94?= =?UTF-8?q?=20los=20apendices=20NO=20viajan?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hasta ahora se cumplia solo porque un glob no recursa: proteccion implicita. Ahora hay un check que enrojece si un apendice llega a vendorizarse. Co-Authored-By: Claude Opus 5 (1M context) --- .metodo/CHECKSUMS | 2 +- .metodo/bin/metodo | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/.metodo/CHECKSUMS b/.metodo/CHECKSUMS index 66802d0..338ac01 100644 --- a/.metodo/CHECKSUMS +++ b/.metodo/CHECKSUMS @@ -1,5 +1,5 @@ b3aa1294777afebe63d4e914e555849c3435c3c08e45533b99c96b096fcda9ad metodo.md -a65fcd72ed8b6ed87ee35fb06d16796c55a2f138f31d35ba27f116b25dc1bde2 bin/metodo +5250d8aea9e8205f2a7f55c0a9c1ce0c383258f71969de777c70b4a311513baa bin/metodo f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md 6871c5f29642ccec3e60109324de1e5bab8fa5ee73792360d85277bde3323aea workflows/comunicacion-entre-sesiones.md 2b9037f6dd57b5598c70a676cb728556654f05d1c5b024e7b716864659f7b884 workflows/sesion-ejecucion.md diff --git a/.metodo/bin/metodo b/.metodo/bin/metodo index 73713fa..337aa39 100644 --- a/.metodo/bin/metodo +++ b/.metodo/bin/metodo @@ -80,6 +80,20 @@ info() { printf ' \033[36minfo\033[0m %s\n' "$*"; } # censo, NO veredicto: no # ── Check 1 · integridad de la copia vendorizada (C11) ─────────────────────── # El máster vive en OTRO repo (la matriz), así que el testigo no es el máster sino el # CHECKSUM sellado al distribuir (metodo init/update). Caza si alguien editó la copia a mano. +# ⛔ Gate explícito (2026-08-30): los APÉNDICES no viajan. Hasta hoy eso se cumplía SOLO +# porque el glob `workflows/*.md` no recursa — una protección implícita, o sea algo que +# funciona por casualidad. Si alguien cambia ese glob, los apéndices empiezan a viajar a +# 27 repos en silencio. Este check lo dice. +check_apendices_no_viajan() { + hdr "los apéndices NO viajan (son de proyecto, no de método)" + local d="$ROOT/.metodo/workflows/apendices" n + if [ -d "$d" ]; then + n=$(ls "$d"/*.md 2>/dev/null | wc -l) + bad "hay $n apéndice(s) vendorizado(s) en .metodo/workflows/apendices — un apéndice presupone este árbol y NO debe viajar" + else + ok "ningún apéndice vendorizado" + fi +} check_drift() { hdr "integridad de la copia vendorizada (C11)" local md="$ROOT/.metodo" @@ -889,6 +903,7 @@ cmd_update() { cmd_check() { printf 'metodo check — %s\n' "$ROOT" check_drift + check_apendices_no_viajan check_ids check_headings check_links