tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1411Shell 141Markdown 85Rust 842918 Definitions

ADR 0016: etapa 5 cerrada, con los dos guardianes que dispararon

5a recetas (1427 comentarios, cero hashes movidos y medido), 5b docs (59),
5c scripts (250, sin tocar una sola linea que no empiece por #).

Los dos guardianes que hicieron trabajo real: la linea base de hashes atrapo 3
recetas que se movian porque un comentario de SHELL dentro de una fase parece un
comentario de TOML; y el salteo de heredocs atrapo 3 MOTD que son texto del
producto, no comentarios.

Y queda anotado el bug que introdujo la etapa 4: atribuir-fallos.py casaba
contra el target de tracing, que es el module_path y por lo tanto el nombre del
crate. Quedo casando nada sin fallar.

6623f809094506ffcefc99f6e2e622810f2d6ee6 · by Sergio · (1 month ago) · parent 476168bb0 · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

1 files · +43 −1

diff --git a/docs/adr/0016-renombre-takana.md b/docs/adr/0016-renombre-takana.md
index 981ed977..657cd787 100644
--- a/docs/adr/0016-renombre-takana.md
+++ b/docs/adr/0016-renombre-takana.md
@@ -161,7 +161,49 @@ simplemente deja de cosechar. El directorio es lo **último** que se toca, y con
    **No se tocan:** las rutas `/var/lib/hammer` de sistemas ya instalados, el `-volid HAMMER_LIVE`
    del ISO (es identidad horneada en el medio) y el namespace `HARKAQ_*`, que es de otro subsistema.
 
-5. **Comentarios de recetas** (692). Gratis en hash, ruidoso en diff: va en un commit propio y solo.
+5. **Texto.** ← *hecho (2026-09-09)*, en tres commits.
+
+   - **5a — recetas (741, 1427 comentarios).** Cero ArtifactHash movidos, y está **medido**: se
+     hashearon las 741 antes y después y los ficheros de hashes son idénticos byte a byte.
+
+     **El guardián valió la pena.** El primer barrido filtraba por «la línea empieza con `#`» y
+     movió el hash de `helix`, `lsof` y `steam-runtime-sniper`. La causa: una fase se escribe como
+     `compile = …` y sus comentarios de **shell** también empiezan con `#`, pero viven
+     dentro del **valor** — y las fases sí entran en `hash_inputs`. El barrido definitivo calcula
+     los rangos de las cadenas multilínea de TOML y no entra ahí. Sin la línea base de hashes esto
+     se descubría meses después, en un rebuild.
+
+   - **5b — 59 docs de diseño, runbooks y ADR.** Los ADR entran porque en **este** repo son
+     documentos vivos, no registros: el 0013 tiene 5 commits y el 0009 dos. Se comprobó antes de
+     decidir. **Excluidos** `docs/evidencia/`, el HANDOFF de la noche de KDE y `docs/state/`
+     (generado). **Y este fichero**, que habla *sobre* el renombre: el barrido lo dejó titulado
+     «Renombre del sistema: takana → takana».
+
+   - **5c — 250 comentarios en 151 scripts,** con el control de que el diff no toca ni una línea
+     que no empiece por `#`. El barrido saltea heredocs, y ese guardián **disparó 3 veces**: eran
+     los `MOTD` que el script escribe **dentro de la imagen construida** — texto del producto, no
+     comentario. Se cambiaron aparte, como rebranding deliberado.
+
+   **El hallazgo caro de la etapa 5, que en realidad es un bug que introdujo la 4:**
+   `scripts/atribuir-fallos.py` casaba contra `hammer_build: fetch …`. Ese prefijo es el **target
+   de `tracing`**, que por defecto es `module_path!()` — o sea **el nombre del crate**. Al renombrar
+   `hammer-build` → `takana-build`, el target pasó a `takana_build` y el script quedó **casando
+   nada**: no fallaba, imprimía cero atribuciones, indistinguible de un log sin problemas.
+   Comprobado con el binario (`RUST_LOG=info` sobre zlib), no deducido. Ahora acepta las dos, y
+   **tiene que seguir aceptándolas**: los logs viejos que ya están en disco dicen la forma vieja.
+
+   *(El mensaje del commit de 5c perdió cuatro fragmentos por sustitución de comandos del shell con
+   comillas invertidas. No se enmendó: `main` es compartida y el cron empuja cada 30 min, así que
+   reescribir historia es peor que un mensaje incompleto. El detalle vive acá.)*
+
+   **Congelados y verificados con controles:** `/opt/hammer`, `/var/lib/hammer`, `/usr/bin/hammer`,
+   `/mnt/vvv/hammer`, la URL de gitea, `hammer-farm.service`, `hammer-live-install.sh`,
+   `BRIEFING-hammer.md`, `hammerd`, `hammer-recover`, `HAMMER_LIVE`, `.hammer-zig-cc`,
+   `.hammer-cargo-vendor` y dos identificadores más que aparecieron al barrer:
+   - `hammer-build-state/1` — el `schema` del estado generado. Nadie lo valida, pero el valor de un
+     identificador de esquema **es** ser estable; renombrarlo no gana nada.
+   - `hammer-edit` — es una **receta con artefacto sellado**: su `name` está en la ruta del store
+     (`store/cf075804…-hammer-edit`). Renombrarla huerfaniza el artefacto.
 6. **Retirar el alias.** Y recién entonces, si se quiere, el directorio `/mnt/vvv/hammer` — parando
    el cron y reescribiendo el crontab en el mismo movimiento.