chore(metodo)!: reparto — la evidencia sale a cicatrices.md (197k -> 141k)
Las 146 cicatrices salen de metodo.md a cicatrices.md con id plano (C-001..C-146) y las reglas se quedan enteras. cicatrices.md viaja tambien pero NO se lee por defecto. Atado con C40, las tres ramas ejercitadas. Solo .metodo/ — byte a byte desde la matriz. Sesion: superadmin Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
ef49f193e8
commit
dc66279749
@ -1,5 +1,5 @@
|
||||
f226449c1039cca20dd14575fd26f6e5336e2d97e112e28a41a237ad1d1d84e2 metodo.md
|
||||
36796ff4e2adf641dac48b4436a86ba75f99a919886b73e0b5266642a4b55634 bin/metodo
|
||||
12ac115f5f7becf0f2490c6e5ad22b9588983319d953fb56a7172863169b4027 metodo.md
|
||||
11bf48ad900c3a8748f229f4938a600ddd2a34897f36ee2284b10b5d44e3a0bf bin/metodo
|
||||
f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md
|
||||
cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md
|
||||
2b9037f6dd57b5598c70a676cb728556654f05d1c5b024e7b716864659f7b884 workflows/sesion-ejecucion.md
|
||||
|
||||
@ -162,6 +162,32 @@ EOF
|
||||
# como el principio de otro párrafo. Ningún check miraba la integridad de la prosa.
|
||||
# ⇒ Testigo: una línea que acaba a mitad de frase (minúscula o coma) seguida de una que
|
||||
# ARRANCA un bloque nuevo (⛔ ⭐ ⚠️ ⇒ ⚙️ ⚰️ ✅, una cicatriz `*(`, o una cabecera `#`).
|
||||
# ── C40: toda cicatriz referenciada existe, y ninguna sobra ────────────────────
|
||||
# ⛔ El corte regla/cicatriz (2026-09-02) mete una INDIRECCIÓN, y una indirección se
|
||||
# pudre en silencio: un `C-047` citado que ya no existe se lee como una referencia
|
||||
# normal, y una cicatriz huérfana no la echa de menos nadie. Los ids son PLANOS y no
|
||||
# se renumeran nunca — decidido por Xavier: es mucho más resiliente que codificar la
|
||||
# sección, que caduca al primer movimiento.
|
||||
check_cicatrices() {
|
||||
hdr "toda cicatriz referenciada existe (C40)"
|
||||
local md cic
|
||||
if [ -f "$ROOT/metodo.md" ] && [ -f "$ROOT/cicatrices.md" ]; then md="$ROOT/metodo.md"; cic="$ROOT/cicatrices.md"
|
||||
elif [ -f "$ROOT/.metodo/metodo.md" ] && [ -f "$ROOT/.metodo/cicatrices.md" ]; then md="$ROOT/.metodo/metodo.md"; cic="$ROOT/.metodo/cicatrices.md"
|
||||
else skip "no hay metodo.md + cicatrices.md que carear"; return 0; fi
|
||||
local refs defs falta sobra dup
|
||||
refs=$(grep -o 'C-[0-9]\{3\}' "$md" | sort -u)
|
||||
defs=$(grep -o '^### C-[0-9]\{3\}' "$cic" | sed 's/^### //' | sort -u)
|
||||
falta=$(comm -23 <(echo "$refs") <(echo "$defs") | tr '\n' ' ')
|
||||
sobra=$(comm -13 <(echo "$refs") <(echo "$defs") | tr '\n' ' ')
|
||||
dup=$(grep -o '^### C-[0-9]\{3\}' "$cic" | sort | uniq -d | tr '\n' ' ')
|
||||
local mal=0
|
||||
[ -n "${falta// /}" ] && { bad "cicatriz(es) CITADAS y no definidas: $falta (C40) — la referencia se lee como normal y no lleva a ningún sitio"; mal=1; }
|
||||
[ -n "${sobra// /}" ] && { bad "cicatriz(es) DEFINIDAS y no citadas: $sobra (C40) — huérfanas: nadie las echa de menos"; mal=1; }
|
||||
[ -n "${dup// /}" ] && { bad "id(s) DUPLICADOS en cicatrices.md: $dup (C40) — un id se asigna una vez"; mal=1; }
|
||||
[ "$mal" -eq 0 ] && ok "$(echo "$refs" | grep -c .) cicatriz(es), todas citadas y todas definidas"
|
||||
return 0
|
||||
}
|
||||
|
||||
check_prosa_partida() {
|
||||
hdr "prosa cortada a mitad de frase (C39)"
|
||||
local f n
|
||||
@ -976,6 +1002,10 @@ cmd_init() {
|
||||
mkdir -p "$md/bin"
|
||||
cp "$SELF_ROOT/metodo.md" "$md/metodo.md"
|
||||
cp "$SELF_ROOT/bin/metodo" "$md/bin/metodo"; chmod +x "$md/bin/metodo" 2>/dev/null || true
|
||||
# Las CICATRICES viajan igual que la constitución (decidido por Xavier, 2026-09-02): el disco
|
||||
# es gratis y el contexto no, así una sesión puede abrir la evidencia sin tener la matriz al
|
||||
# lado. NO se lee por defecto — sólo cuando alguien discute una regla o quiere el dato crudo.
|
||||
[ -f "$SELF_ROOT/cicatrices.md" ] && cp "$SELF_ROOT/cicatrices.md" "$md/cicatrices.md"
|
||||
# los workflows transversales viajan también (2026-08-29): un repo que se clona solo no
|
||||
# tiene la matriz al lado, así que un puntero a su ruta no le resuelve. El semáforo NO.
|
||||
mkdir -p "$md/workflows"
|
||||
@ -1044,6 +1074,10 @@ cmd_update() {
|
||||
[ -d "$md" ] || { echo "metodo update: $tgt no tiene .metodo/ — usa 'metodo init $tgt'."; exit 2; }
|
||||
cp "$SELF_ROOT/metodo.md" "$md/metodo.md"
|
||||
cp "$SELF_ROOT/bin/metodo" "$md/bin/metodo"; chmod +x "$md/bin/metodo" 2>/dev/null || true
|
||||
# Las CICATRICES viajan igual que la constitución (decidido por Xavier, 2026-09-02): el disco
|
||||
# es gratis y el contexto no, así una sesión puede abrir la evidencia sin tener la matriz al
|
||||
# lado. NO se lee por defecto — sólo cuando alguien discute una regla o quiere el dato crudo.
|
||||
[ -f "$SELF_ROOT/cicatrices.md" ] && cp "$SELF_ROOT/cicatrices.md" "$md/cicatrices.md"
|
||||
# los workflows transversales viajan también (2026-08-29): un repo que se clona solo no
|
||||
# tiene la matriz al lado, así que un puntero a su ruta no le resuelve. El semáforo NO.
|
||||
mkdir -p "$md/workflows"
|
||||
@ -1104,6 +1138,7 @@ cmd_check() {
|
||||
check_sesion_trailer
|
||||
check_incremento
|
||||
check_prosa_partida
|
||||
check_cicatrices
|
||||
check_reparto_al_dia
|
||||
check_semaforo_forma
|
||||
check_semaforo_en_vuelo
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user