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

⎇ c963b24b5ed7095b6cb9c419d48ff4b692638b4e docs/README.md Markdown · 48 lines · 3.2 KB History raw

ADR 0012: registrar como PENDIENTE el dilema del árbol de fuentes (caché vs workspace) c963b24b5 · sergio ·

1# Documentación de diseño de hammer
2
3Estos documentos son la fuente de verdad del diseño. El código los implementa; cuando haya
4discrepancia, o se corrige el código o se actualiza el SDD con un commit que explique por qué.
5
6## Software Design Documents (SDD)
7
8| # | Documento | Qué cubre |
9|---|---|---|
10| 00 | [Visión y filosofía](00-vision.md) | Por qué existe, qué problema resuelve, la actitud de ingeniería |
11| 01 | [Arquitectura general](01-architecture.md) | El modelo de dos mundos, componentes, flujo de datos |
12| 02 | [El laboratorio de build](02-build-lab.md) | Sandbox, `zig cc`, recetas, CAS, grafo de dependencias |
13| 03 | [Hidratación y store](03-hydration.md) | Store content-addressed, hardlinks a FHS, patchelf, rollback |
14| 04 | [Overlay de experimentación](04-overlay.md) | overlayfs en caliente, try/commit/discard |
15| 05 | [Diario de mutaciones](05-journal.md) | fanotify, log append-only, config-sin-ser-declarativa |
16| 06 | [Formato `.swm`](06-swm-format.md) | Manifiesto de mutación compartible, esquema, firma |
17| 07 | [Bus de init y de agente](07-agent-bus.md) | `/run/init.control`, `/run/agent.sock`, protocolo |
18| 08 | [Integración de la IA](08-ai-integration.md) | El bucle agéntico, seguridad, intención → `.swm` |
19| 09 | [Modelo de confianza](09-trust-model.md) | Reproducibilidad, verificar-no-confiar, log de transparencia |
20| 10 | [Roadmap](10-roadmap.md) | Fases, MVP, primer entregable |
21| 11 | [Bootstrap from-scratch](11-bootstrap.md) | Track posterior: Stage 0/1/2, auto-alojamiento, semilla pinned |
22| 12 | [`arje` como init real del Stage 1](12-init-real.md) | Contrato de runtime: seed card, hammerd supervisado, `CRASHED` real |
23| 16 | [harkaq: la jaula de hammer](16-harkaq-jaula.md) | Landlock+seccomp sobre el bwrap actual; política = clausura; evidencia negativa de hermeticidad |
24
25### Runbooks (operativos)
26
27| Runbook | Para qué |
28|---|---|
29| [Validar Stage 1 booteando en QEMU](runbooks/stage1-vm-boot.md) | `stage0`→`stage1`→initramfs→QEMU; criterios de éxito y troubleshooting |
30
31## Architecture Decision Records (ADR)
32
33Decisiones tomadas, con su contexto y consecuencias. Ver [`adr/`](adr/).
34
35| # | Decisión |
36|---|---|
37| 0001 | [Rust para el tooling y daemons](adr/0001-rust-for-tooling.md) |
38| 0002 | [Validar sobre Alpine antes de la distro propia](adr/0002-alpine-first.md) |
39| 0003 | [`zig cc` como compilador por defecto del lab](adr/0003-zig-cc-builder.md) |
40| 0004 | [No escribir nuestro propio Nix](adr/0004-no-custom-nix.md) |
41| 0005 | [Hidratación por hardlinks](adr/0005-hardlink-hydration.md) |
42| 0006 | [Commits fijados, no HEAD vivo](adr/0006-pinned-commits.md) |
43| 0007 | [`arje` como init propio del track posterior](adr/0007-arje-como-init-propio.md) |
44| 0008 | [Bootstrap en 3 stages, `zig` como semilla](adr/0008-bootstrap-stages.md) |
45| 0009 | [Código direccionado por contenido (estilo Unison)](adr/0009-content-addressed-code.md) |
46| 0010 | [Arranque por grafo: el menú de boot como navegación del grafo](adr/0010-arranque-grafo-mirada.md) |
47| 0011 | [Etapa Escritorio: campaña KDE Plasma 6](adr/0011-escritorio-kde-plasma.md) |
48| 0012 | [El árbol de fuentes es caché y workspace a la vez — **PENDIENTE, dilema abierto**](adr/0012-arbol-de-fuentes-compartido-vs-privado.md) |

README.md

Documentación de diseño de hammer

Estos documentos son la fuente de verdad del diseño. El código los implementa; cuando haya discrepancia, o se corrige el código o se actualiza el SDD con un commit que explique por qué.

Software Design Documents (SDD)

#DocumentoQué cubre
00Visión y filosofíaPor qué existe, qué problema resuelve, la actitud de ingeniería
01Arquitectura generalEl modelo de dos mundos, componentes, flujo de datos
02El laboratorio de buildSandbox, zig cc, recetas, CAS, grafo de dependencias
03Hidratación y storeStore content-addressed, hardlinks a FHS, patchelf, rollback
04Overlay de experimentaciónoverlayfs en caliente, try/commit/discard
05Diario de mutacionesfanotify, log append-only, config-sin-ser-declarativa
06Formato .swmManifiesto de mutación compartible, esquema, firma
07Bus de init y de agente/run/init.control, /run/agent.sock, protocolo
08Integración de la IAEl bucle agéntico, seguridad, intención → .swm
09Modelo de confianzaReproducibilidad, verificar-no-confiar, log de transparencia
10RoadmapFases, MVP, primer entregable
11Bootstrap from-scratchTrack posterior: Stage 0/1/2, auto-alojamiento, semilla pinned
12arje como init real del Stage 1Contrato de runtime: seed card, hammerd supervisado, CRASHED real
16harkaq: la jaula de hammerLandlock+seccomp sobre el bwrap actual; política = clausura; evidencia negativa de hermeticidad

Runbooks (operativos)

RunbookPara qué
Validar Stage 1 booteando en QEMUstage0→stage1→initramfs→QEMU; criterios de éxito y troubleshooting

Architecture Decision Records (ADR)

Decisiones tomadas, con su contexto y consecuencias. Ver adr/.

#Decisión
0001Rust para el tooling y daemons
0002Validar sobre Alpine antes de la distro propia
0003zig cc como compilador por defecto del lab
0004No escribir nuestro propio Nix
0005Hidratación por hardlinks
0006Commits fijados, no HEAD vivo
0007arje como init propio del track posterior
0008Bootstrap en 3 stages, zig como semilla
0009Código direccionado por contenido (estilo Unison)
0010Arranque por grafo: el menú de boot como navegación del grafo
0011Etapa Escritorio: campaña KDE Plasma 6
0012El árbol de fuentes es caché y workspace a la vez — PENDIENTE, dilema abierto