takana etapa 5b: los 59 docs de diseño, runbooks y ADR
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.
This commit is contained in:
+11
-11
@@ -11,7 +11,7 @@
|
||||
│ │ │ │ ▲ │
|
||||
│ ▼ │ │ │ hardlinks normalizados │
|
||||
│ ┌───────────────────────┐ │ │ │ │
|
||||
│ │ hammer-build (lab) │ │ │ ┌───┴──────────────┐ │
|
||||
│ │ takana-build (lab) │ │ │ ┌───┴──────────────┐ │
|
||||
│ │ bubblewrap + zig cc │ compila musl │ │ │ HIDRATACIÓN │ patchelf / copy │
|
||||
│ │ recetas + grafo deps │ estático │ │ └───┬──────────────┘ │
|
||||
│ └──────────┬────────────┘ │ │ │ │
|
||||
@@ -40,28 +40,28 @@ el host; siempre delega al lab.
|
||||
|
||||
| Componente | Crate | Responsabilidad única |
|
||||
|---|---|---|
|
||||
| **Laboratorio** | `hammer-build` | Compilar una receta de forma hermética → artefacto en el store |
|
||||
| **Store CAS** | `hammer-core` | Guardar/recuperar artefactos por hash BLAKE3; garbage collection |
|
||||
| **Hidratación** | `hammer-build` | Proyectar artefactos del store al FHS real (hardlink + patchelf) |
|
||||
| **Overlay** | `hammer-cli` | Montar/fusionar/descartar capa de experimentación en caliente |
|
||||
| **Laboratorio** | `takana-build` | Compilar una receta de forma hermética → artefacto en el store |
|
||||
| **Store CAS** | `takana-core` | Guardar/recuperar artefactos por hash BLAKE3; garbage collection |
|
||||
| **Hidratación** | `takana-build` | Proyectar artefactos del store al FHS real (hardlink + patchelf) |
|
||||
| **Overlay** | `takana-cli` | Montar/fusionar/descartar capa de experimentación en caliente |
|
||||
| **Diario** | `hammerd` | Vigilar mutaciones (fanotify), log append-only, exportar `.swm` |
|
||||
| **Bus de agente** | `hammerd` | Socket de control para IA/scripts; eventos del sistema |
|
||||
| **CLI** | `hammer-cli` | El binario `hammer` que orquesta todo lo anterior |
|
||||
| **Tipos compartidos** | `hammer-core` | `Recipe`, `Swm`, `Hash`, `Store`, formatos serializables |
|
||||
| **CLI** | `takana-cli` | El binario `takana` que orquesta todo lo anterior |
|
||||
| **Tipos compartidos** | `takana-core` | `Recipe`, `Swm`, `Hash`, `Store`, formatos serializables |
|
||||
|
||||
## 3. Flujo de datos canónico (de la intención al sistema vivo)
|
||||
|
||||
1. **Intención** — el humano (o la IA) expresa un cambio: *"que grep ignore binarios por
|
||||
defecto y use regex Perl"*.
|
||||
2. **Receta** — se traduce a una `Recipe`: repo + commit fijado + patch + flags + compilador.
|
||||
3. **Build** — `hammer-build` levanta el sandbox, compila con `zig cc`, produce un binario
|
||||
3. **Build** — `takana-build` levanta el sandbox, compila con `zig cc`, produce un binario
|
||||
musl estático, lo deposita en el store bajo `BLAKE3(...)`.
|
||||
4. **Overlay** — el artefacto se hidrata, pero **en una capa overlay temporal**, no en el
|
||||
sistema real. El humano/IA prueba en caliente.
|
||||
5. **Validación** — corre el test harness; los eventos van por el bus (`BUILD_READY`,
|
||||
`CRASHED`). Si falla, se descarta el overlay; el sistema base intacto.
|
||||
6. **Promoción** — si pasa, se fusiona al FHS real. El diario registra la mutación.
|
||||
7. **Compartir** — `hammer export` empaqueta el delta como `.swm`: base-hash + patch + config.
|
||||
7. **Compartir** — `takana export` empaqueta el delta como `.swm`: base-hash + patch + config.
|
||||
Otro usuario lo `apply`-ea: su IA reproduce y verifica localmente; nunca ejecuta tu binario.
|
||||
|
||||
## 4. Estado en disco (layout)
|
||||
@@ -85,10 +85,10 @@ el host; siempre delega al lab.
|
||||
|
||||
## 5. Límites del sistema (qué corre dónde)
|
||||
|
||||
- **`hammer-build`** corre privilegiado lo justo para crear namespaces (vía `bubblewrap`,
|
||||
- **`takana-build`** corre privilegiado lo justo para crear namespaces (vía `bubblewrap`,
|
||||
que usa user-namespaces sin root real cuando es posible).
|
||||
- **`hammerd`** corre como servicio bajo el init; expone el bus y vigila el diario.
|
||||
- **`hammer` (CLI)** corre como el usuario; es el punto de entrada de todo flujo manual.
|
||||
- **`takana` (CLI)** corre como el usuario; es el punto de entrada de todo flujo manual.
|
||||
- **La IA** es un cliente del bus como cualquier otro proceso — sin privilegios especiales
|
||||
más allá de los que el humano le conceda explícitamente (ver [SDD 08](08-ai-integration.md)).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user