docs: añadir ADR, diario, CHANGELOG y comando /entrada_diario

Infraestructura de documentación operativa y de decisiones:

- docs/adr/ — Architecture Decision Records. Incluye plantilla y
  ADR 0001 documentando el experimento y retirada de GitButler.
- docs/diary/ — diario de avances con un archivo por día.
  Primera entrada 2026-04-24.md retrocubriendo esta sesión
  (conectar aurgi-pc, dashboard fn_monitoring, funciones systemd
  locales, ADR GitButler, regla KISS).
- CHANGELOG.md — formato Keep a Changelog para cambios cara a
  usuario/agentes. Sección 2026-04-24 con Added/Changed/Fixed/Removed.
- .claude/commands/entrada_diario.md — slash command para añadir
  entradas al diario con formato consistente.

Separación:
  diary   = contexto operativo diario
  CHANGELOG = qué cambió en el código
  ADR     = por qué se decidió algo
  rules   = reglas operativas del agente

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-24 14:27:38 +02:00
parent 28ff9c3f79
commit 32fc008cae
6 changed files with 323 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
# 2026-04-24
## 12:00 — Conectar aurgi-pc al registry server
Primera sesión en aurgi-pc (WSL). Vincular este PC al server centralizado y recuperar metadata de apps/projects/analysis/vaults existentes.
- Hecho: recompilado `fn` con `CGO_ENABLED=1 -tags fts5` desde `/usr/local/go/bin/go` (go1.25.0). Ahora tiene `fn sync`.
- Hecho: `~/.fn_pc` = `aurgi-pc`. Env vars `FN_REGISTRY_API` y `REGISTRY_API_TOKEN` desde `pass`.
- Hecho: `fn sync` contra `https://registry.organic-machine.com` — 44 enviados, 62 recibidos, aurgi-pc registrado con 18 locations.
- Hecho: `registry.db` gitignorada (regenerable con `fn index` + `fn sync`).
- Aprendizaje: GPG sin TTY en WSL obliga a desbloquear `pass` en terminal real una vez; caché de gpg-agent (ver [memoria feedback_gpg_pass_wsl](../../.claude/projects/memory)).
## 13:00 — Instalar dashboard fn_monitoring
Configurar el proyecto `fn_monitoring` (API + dashboard ImGui) en aurgi-pc para visualizar las apps.
- Hecho: clonado `registry_dashboard` + movido a `projects/fn_monitoring/apps/registry_dashboard/`.
- Hecho: inicializados submódulos `cpp/vendor/{imgui,implot}`. Re-registrado `glfw` como submódulo (antes tenía path `/home/lucas/...` heredado que bloqueaba `git submodule status`).
- Hecho: build Linux del dashboard (12.9 MB).
- Hecho: `projects/fn_monitoring/launcher.sh` — arranca API si no está viva + lanza dashboard + cleanup al salir.
- Fixed: `http_client.cpp` requería `#include <cstdint>` explícito (mingw más estricto que g++ Linux). Commit en subrepo del dashboard.
- Hecho: cross-compile Windows (19 MB) + copiado a `/mnt/c/Users/egutierrez/Desktop/registry_dashboard.exe`.
## 13:30 — Funciones systemd locales + servicio sqlite_api
Hasta ahora solo había funciones systemd remotas (via SSH para VPS). Crear versiones locales y registrar `sqlite_api` como servicio del sistema.
- Hecho: 6 funciones bash/infra — `systemd_local_{install_unit, enable, start, restart, status, uninstall}`.
- Hecho: pipeline bash/pipelines — `install_systemd_service` que compone las anteriores; genera unit file con env vars deterministas.
- Hecho: compilado `sqlite_api` como binario (antes `go run`) en `projects/fn_monitoring/apps/sqlite_api/sqlite_api`.
- Hecho: servicio `sqlite_api.service` instalado + enabled + active. Queda vivo al arrancar WSL (systemd=true en `/etc/wsl.conf`).
- Fixed: bugs en `systemd_local_{enable,start,restart}` que contaminaban stdout con mensajes de `systemctl` rompiendo el `$(...)` del pipeline. Redirigido a stderr.
## 14:00 — Experimento GitButler y retirada
Se probó GitButler para trabajo paralelo con virtual branches. Descartado.
- Problema: bugs graves con submódulos + gitlinks — `but` creaba commits vacíos o con contenido cruzado cuando se tocaba `.gitmodules`.
- Problema: auto-commits usaban el texto del turno del chat como commit message.
- Hecho: `but teardown` + eliminación completa (binario, plugin, skill, hooks en settings.json, config git, ramas fantasma).
- Hecho: commits consolidados en `master` de `fn_registry` (3 limpios) + push a origin.
- Hecho: documentado en [ADR 0001](../adr/0001-gitbutler-experiment.md).
## 14:30 — Formalizar filosofía KISS + docs
Derivar una regla operativa del aprendizaje de GitButler y preparar la infraestructura de documentación.
- Hecho: [`.claude/rules/kiss.md`](../../.claude/rules/kiss.md) + entrada #16 en `.claude/rules/INDEX.md`.
- Hecho: `docs/adr/` con README y ADR 0001.
- Hecho: `docs/diary/` con README y esta primera entrada.
- Hecho: `CHANGELOG.md` raíz retrocubriendo toda la sesión.
- Hecho: `/entrada_diario` slash command para añadir entradas rápido.
Pendiente:
- Lanzar el dashboard y verificar que muestra las 12 apps en la UI (tarea #9) — requiere terminal real con DISPLAY WSLg.
+38
View File
@@ -0,0 +1,38 @@
# Diario — fn_registry
Registro diario de avances: qué se trabajó, qué se completó, qué queda pendiente.
Un archivo por día con nombre `YYYY-MM-DD.md`. Dentro, una sección por bloque de trabajo con timestamp.
## Cuándo usar cada tipo de registro
| Archivo | Para qué | Granularidad |
|---------|----------|--------------|
| `docs/diary/YYYY-MM-DD.md` | **Qué hicimos hoy**. Contexto operativo, decisiones rápidas, cosas pendientes para mañana. | Diario |
| `CHANGELOG.md` (raíz) | **Qué cambió en el código** cara al usuario/agentes. Add/Change/Fix/Remove. | Por release o por hito |
| `docs/adr/NNNN-*.md` | **Por qué** tomamos una decisión arquitectural. | Ocasional |
Reglas:
- Nunca reescribir entradas antiguas — si algo cambia, añadir una nota nueva.
- Preferir bullet points breves a párrafos largos.
- Enlazar a commits, issues, ADRs o funciones del registry cuando aplique.
## Añadir una entrada
Usar el comando `/entrada_diario <descripción>`. Crea el archivo del día si no existe y añade una sección con hora actual.
## Formato de una entrada
```markdown
# YYYY-MM-DD
## HH:MM — Título corto
Contexto en 1-3 líneas.
- Hecho: viñeta
- Hecho: viñeta
- Pendiente: viñeta
Referencias: commit SHA, ADR #NNNN, issue #N
```