chore(metodo): los merges no se juzgan, y C26 acota tambien por fecha
Un punto de adopcion por SHA no acota en una historia divergente. Y el mensaje de un merge lo escribe git, no una sesion: excluido de C25 y C26. Sesion: superadmin Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a57efc1bb6
commit
e2c54dd376
@ -1,5 +1,5 @@
|
||||
4dc0daf48bbd6b7d1272de64411d33f777f5a78f9e41640db61a47d5aa3e5683 metodo.md
|
||||
648a9dacc40d3649ef2e7a93b4227b74eff9479bd03ccab1c3dd6b0f757793bf bin/metodo
|
||||
a2418f334e07ea47dee15db713f25bb619383e3ae41facb91ad07626fc440cec bin/metodo
|
||||
f89b71bdf31028b05075636c1763c964e379bc37a00e0357d1c23a4dd19c09aa workflows/README.md
|
||||
cc241bbecf9647c747b8525b3a6b527455cd50ca0312caa44bc3544342c8ac41 workflows/comunicacion-entre-sesiones.md
|
||||
2b9037f6dd57b5598c70a676cb728556654f05d1c5b024e7b716864659f7b884 workflows/sesion-ejecucion.md
|
||||
|
||||
@ -128,13 +128,23 @@ check_sesion_trailer() {
|
||||
[ -n "$desde" ] || { info "sin punto de adopción todavía — se sella en el próximo 'metodo update'"; return 0; }
|
||||
git -C "$ROOT" cat-file -e "$desde^{commit}" 2>/dev/null || { skip "el punto de adopción $desde no existe en este repo"; return 0; }
|
||||
n=0; mal=0
|
||||
# ⛔ Un punto de adopción por SHA NO acota en una historia DIVERGENTE: `X..HEAD` incluye
|
||||
# todo lo no alcanzable desde X — incluido trabajo ANTERIOR a X hecho en otra rama, que
|
||||
# entra al hacer merge. Medido: un repo con 14 commits ajenos por delante quedó con esos
|
||||
# 14 dentro del rango, y el gate rojo por trabajo de la víspera de otra persona.
|
||||
# ⇒ Se filtra además por FECHA del commit sello: sólo se juzga lo posterior.
|
||||
# ⛔ Y se excluyen los MERGES: su mensaje lo escribe `git`, no una sesión. Juzgarlos sería medir
|
||||
# la salida de la herramienta y pedirle un dato que nadie tecleó.
|
||||
local _fecha
|
||||
_fecha=$(git -C "$ROOT" log -1 --format=%ct "$desde" 2>/dev/null)
|
||||
while read -r sha; do
|
||||
[ -z "$sha" ] && continue
|
||||
[ -n "$_fecha" ] && [ "$(git -C "$ROOT" log -1 --format=%ct "$sha")" -lt "$_fecha" ] && continue
|
||||
n=$((n+1))
|
||||
git -C "$ROOT" log -1 --format='%B' "$sha" | grep -qE '^Sesion:[[:space:]]*\S' || {
|
||||
bad "commit sin 'Sesion:' — $(git -C "$ROOT" log -1 --format='%h %s' "$sha" | cut -c1-60) (C26) — si lo hiciste A MANO, vale 'Sesion: xavier'; si aún no está empujado, un 'git commit --amend' sobre TU commit lo cierra sin excepciones"; mal=$((mal+1)); }
|
||||
done <<EOF
|
||||
$(git -C "$ROOT" rev-list "$desde..HEAD" 2>/dev/null)
|
||||
$(git -C "$ROOT" rev-list --no-merges "$desde..HEAD" 2>/dev/null)
|
||||
EOF
|
||||
[ "$mal" -eq 0 ] && ok "$n commit(s) desde la adopción, todos dicen quién los hizo"
|
||||
}
|
||||
@ -452,7 +462,10 @@ check_commits() {
|
||||
else
|
||||
range="HEAD"; since="" # sin marcador: repo nuevo → se juzga todo el historial
|
||||
fi
|
||||
n=$(git -C "$ROOT" rev-list --count $range 2>/dev/null || echo 0)
|
||||
# ⛔ Sin merges: su mensaje lo escribe `git`, no una persona ni una sesión. Juzgarlo es medir la
|
||||
# salida de la herramienta y exigirle una forma que nadie tecleó. (2026-08-31: nueve rojos en un
|
||||
# repo, todos merges automáticos.)
|
||||
n=$(git -C "$ROOT" rev-list --no-merges --count $range 2>/dev/null || echo 0)
|
||||
[ "${n:-0}" -eq 0 ] && { skip "sin commits nuevos desde la adopción (nada que revisar)"; return; }
|
||||
# `semaforo` es un tipo PROPIO de esta casa, añadido el 2026-08-28 (`D109`, Xavier). No es
|
||||
# Vocabulario ampliado el 2026-08-30 con LAS CUATRO CAPAS del corpus (`avisos`, `bitacora`,
|
||||
@ -492,7 +505,7 @@ check_commits() {
|
||||
fi
|
||||
bad "commit no-Conventional: \"$subj\" ($sha) (C25) — arréglalo, o decláralo en .metodo/EXCEPCIONES si ya está empujado"
|
||||
bad_c=$((bad_c+1))
|
||||
done < <(git -C "$ROOT" log --format="%h%x09%s" $range 2>/dev/null)
|
||||
done < <(git -C "$ROOT" log --no-merges --format="%h%x09%s" $range 2>/dev/null)
|
||||
[ "$exc_c" -gt 0 ] && warn "C25: ${exc_c} commit(s) con EXCEPCIÓN DECLARADA en .metodo/EXCEPCIONES (historia ya empujada; NO perdona lo que venga después)"
|
||||
[ "$bad_c" -eq 0 ] && ok "los ${n} commit(s) desde la adopción siguen Conventional$([ "$exc_c" -gt 0 ] && printf ' (%s con excepción declarada)' "$exc_c")"
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user