1# ¿Dónde está hammer hoy? (mapa amigable)
2
3> Una foto en lenguaje humano de qué funciona, qué falta y por dónde seguir.
4> Fecha: 2026-06-22. Para el detalle de arquitectura, ver [`docs/`](docs/).
5
6## La idea en una frase
7
8`hammer` es una distro de Linux con dos pisos: un **sótano de laboratorio** que compila
9todo desde fuente de forma reproducible y guarda cada binario por su hash, y un **piso de
10arriba** clásico y mutable (un Linux normal con `/bin`, `/lib`, `/etc`) donde puedes romper
11cosas y revertir. Está pensada para que una **IA** entienda y modifique el sistema entero.
12
13## El semáforo: qué está listo
14
15| Pieza | Estado | En cristiano |
16|---|---|---|
17| 🟢 Núcleo del laboratorio | **Listo** | Compila aislado (bubblewrap + zig cc + musl), direcciona por hash BLAKE3 |
18| 🟢 Auto-hospedaje (self-host) | **Listo y verificado** | El toolchain se reconstruye a sí mismo *bit a bit* dentro de una VM |
19| 🟢 Kernel propio | **Listo** | Linux 6.16.12 compilado por nosotros, **arranca** la VM y se reproduce idéntico |
20| 🟢 Frente Rust/LLVM | **Cerrado** | Cadena pura mrustc → rustc 1.91.1, sin binarios ajenos de confianza |
21| 🟢 Paquetería `.swm` | **Listo (6/6 piezas)** | Empaquetar, repo firmado, instalar/desinstalar, deps, repo por red |
22| 🟢 Catálogo de software | **145 recetas** | Subió de 88 a 145 en una sola sesión (sobre todo CLIs de Rust) |
23| 🟡 Instalar en disco real | **En curso** | Imágenes EFI/ISO existen; falta pulir "instalar desde el live" |
24| 🟡 Userland Rust-nativo | **En curso** | coreutils/findutils de uutils ya construyen y corren |
25| ⚪ Distro instalable redonda | **Pendiente** | Las etapas B/D/E del roadmap |
26
27## Lo más importante que se logró
28
291. **Soberanía del arranque.** No dependemos de binarios precocidos de nadie. Partiendo de
30 un compilador mínimo, hammer reconstruye su propio Rust, su propio kernel y sus propias
31 herramientas — y al hacerlo dos veces da **exactamente el mismo resultado** (reproducible
32 bit a bit). Eso se probó dentro de una máquina virtual, no solo en teoría.
33
342. **Una "granja" de software que escala.** Hay un pipeline que toma recetas de `nixpkgs` y
35 Alpine, las adapta al formato de hammer, las compila y promueve las que funcionan al
36 catálogo. En esta sesión pasó de 88 a 145 paquetes, casi todo CLIs de Rust populares
37 (ripgrep, bat, fd, zoxide, helix, zellij, uv, ruff, biome…).
38
393. **El "techo" actual es conocido.** Lo que frena más builds ya no es un misterio: es la
40 versión mínima de Rust que pide cada programa (MSRV) y los paquetes que arrastran C/C++
41 (`openssl`, `git2`). Subir el toolchain de 1.91.1 a 1.96 destrabó una tanda entera.
42
43## Por dónde sigue
44
45- **Escalar el catálogo a cientos** de paquetes con la cola ya pre-cargada
46 (`JOBS=4 scripts/build-farm.sh`).
47- **Terminar "instalar desde el live"**: que arrancar el ISO y darle a instalar deje un
48 sistema usable en disco (Etapa B del roadmap).
49- **Seguir reemplazando el userland** por equivalentes Rust-nativos (xargs es el próximo).
50- Pulidos opcionales: squashfs+overlay, arranque EFI fino, rollback al boot.
51
52## Para orientarte en el repo
53
54- `crates/` — el código de hammer (CLI, daemon, build lab, journal, overlay…).
55- `recipes/` — el catálogo (145 `.toml`); `recipes/incoming/` es la cola por procesar.
56- `scripts/` — orquestadores: `selfhost-verify.sh` (la prueba de fuego), `build-farm.sh`
57 (la granja), `import-batch.sh` (importa tandas), `rust-frontier/` (la cadena Rust pura).
58- `docs/` — el diseño completo (SDD); empieza por `00-vision.md` y `10-roadmap.md`.
59
60---
61*Este archivo es el resumen humano. El estado técnico denso vive en la memoria del proyecto
62y en los mensajes de commit (en español, granulares).*
ESTADO.md
¿Dónde está hammer hoy? (mapa amigable)
Una foto en lenguaje humano de qué funciona, qué falta y por dónde seguir.
Fecha: 2026-06-22. Para el detalle de arquitectura, ver docs/.
La idea en una frase
hammer es una distro de Linux con dos pisos: un sótano de laboratorio que compila
todo desde fuente de forma reproducible y guarda cada binario por su hash, y un piso de
arriba clásico y mutable (un Linux normal con /bin, /lib, /etc) donde puedes romper
cosas y revertir. Está pensada para que una IA entienda y modifique el sistema entero.
El semáforo: qué está listo
| Pieza | Estado | En cristiano |
| 🟢 Núcleo del laboratorio | Listo | Compila aislado (bubblewrap + zig cc + musl), direcciona por hash BLAKE3 |
| 🟢 Auto-hospedaje (self-host) | Listo y verificado | El toolchain se reconstruye a sí mismo bit a bit dentro de una VM |
| 🟢 Kernel propio | Listo | Linux 6.16.12 compilado por nosotros, arranca la VM y se reproduce idéntico |
| 🟢 Frente Rust/LLVM | Cerrado | Cadena pura mrustc → rustc 1.91.1, sin binarios ajenos de confianza |
🟢 Paquetería .swm | Listo (6/6 piezas) | Empaquetar, repo firmado, instalar/desinstalar, deps, repo por red |
| 🟢 Catálogo de software | 145 recetas | Subió de 88 a 145 en una sola sesión (sobre todo CLIs de Rust) |
| 🟡 Instalar en disco real | En curso | Imágenes EFI/ISO existen; falta pulir "instalar desde el live" |
| 🟡 Userland Rust-nativo | En curso | coreutils/findutils de uutils ya construyen y corren |
| ⚪ Distro instalable redonda | Pendiente | Las etapas B/D/E del roadmap |
Lo más importante que se logró
-
Soberanía del arranque. No dependemos de binarios precocidos de nadie. Partiendo de
un compilador mínimo, hammer reconstruye su propio Rust, su propio kernel y sus propias
herramientas — y al hacerlo dos veces da exactamente el mismo resultado (reproducible
bit a bit). Eso se probó dentro de una máquina virtual, no solo en teoría.
-
Una "granja" de software que escala. Hay un pipeline que toma recetas de nixpkgs y
Alpine, las adapta al formato de hammer, las compila y promueve las que funcionan al
catálogo. En esta sesión pasó de 88 a 145 paquetes, casi todo CLIs de Rust populares
(ripgrep, bat, fd, zoxide, helix, zellij, uv, ruff, biome…).
-
El "techo" actual es conocido. Lo que frena más builds ya no es un misterio: es la
versión mínima de Rust que pide cada programa (MSRV) y los paquetes que arrastran C/C++
(openssl, git2). Subir el toolchain de 1.91.1 a 1.96 destrabó una tanda entera.
Por dónde sigue
- Escalar el catálogo a cientos de paquetes con la cola ya pre-cargada
(
JOBS=4 scripts/build-farm.sh).
- Terminar "instalar desde el live": que arrancar el ISO y darle a instalar deje un
sistema usable en disco (Etapa B del roadmap).
- Seguir reemplazando el userland por equivalentes Rust-nativos (xargs es el próximo).
- Pulidos opcionales: squashfs+overlay, arranque EFI fino, rollback al boot.
Para orientarte en el repo
crates/ — el código de hammer (CLI, daemon, build lab, journal, overlay…).
recipes/ — el catálogo (145 .toml); recipes/incoming/ es la cola por procesar.
scripts/ — orquestadores: selfhost-verify.sh (la prueba de fuego), build-farm.sh
(la granja), import-batch.sh (importa tandas), rust-frontier/ (la cadena Rust pura).
docs/ — el diseño completo (SDD); empieza por 00-vision.md y 10-roadmap.md.
Este archivo es el resumen humano. El estado técnico denso vive en la memoria del proyecto
y en los mensajes de commit (en español, granulares).