645 líneas. Los ADR entran porque en este repo SON documentos vivos, no registros inmutables: el 0013 tiene 5 commits, el 0009 dos. Eso se comprobó antes de decidir, no se asumió por convención general. EXCLUIDOS por ser REGISTRO o generado: docs/evidencia/ (6), el HANDOFF de la noche de KDE (1) y docs/state/ (24, se regenera solo). Reescribir un comando dentro de una evidencia la falsifica. Y el ADR 0016 se excluye de todo barrido, con un aviso adentro para el próximo que barra: habla SOBRE el renombre, así que necesita seguir diciendo 'hammer'. El barrido se lo llevó puesto y lo dejó titulado 'Renombre del sistema: takana → takana'; revertido. Congelados, verificados uno por uno 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 y HAMMER_LIVE.
35 lines
1.5 KiB
Markdown
35 lines
1.5 KiB
Markdown
# ADR 0002 — Validar sobre Alpine antes de la distro propia
|
||
|
||
- **Estado:** aceptada
|
||
- **Fecha:** 2026-06-06
|
||
|
||
## Contexto
|
||
|
||
El instinto es construir la distro desde el bootstrap (toolchain, init, userland) y luego poner
|
||
la capa AI-nativa encima. Pero el bootstrap from-scratch es el trabajo más largo y arriesgado
|
||
del proyecto (meses), y **no es donde está la innovación**. La innovación es la capa AI-nativa:
|
||
build determinista + mutable + diario + `.swm`.
|
||
|
||
## Decisión
|
||
|
||
Montar y validar toda la capa de `takana` **sobre Alpine Linux** (Fases 0–6). Sólo después,
|
||
una vez probado el concepto, bajar a la distro propia (track posterior).
|
||
|
||
## Razones
|
||
|
||
- Alpine ya es **musl + busybox + FHS mutable + minimalista** — exactamente nuestra filosofía,
|
||
ya cocida y mantenida.
|
||
- Permite validar el bucle disruptivo (overlay, diario, `.swm`, bus de IA) **en semanas**, no
|
||
meses.
|
||
- Todo el tooling (Rust) y el lab (`zig cc`) se reusan sin retrabajo cuando bajemos a la distro
|
||
propia: cambia el *suelo*, no las herramientas.
|
||
|
||
## Consecuencias
|
||
|
||
- En la fase Alpine, `/store` y `/var/lib/hammer` viven dentro del rootfs de Alpine; el init es
|
||
el de Alpine (OpenRC), no el propio. El bus por pipes nativo del init propio es track posterior.
|
||
- No probamos el bootstrap completo en esta fase; `zig cc` cubre la compilación sin necesitar
|
||
bootstrap (ver [ADR 0003](0003-zig-cc-builder.md)).
|
||
- Riesgo: alguna fricción musl/static en Alpine que no represente la distro propia. Aceptable —
|
||
Alpine es musl real, la fricción es representativa.
|