Bitácora Operativa del Clúster
Sitio interno y CLI auditable para conservar en un solo lugar la documentación, los manuales, las memorias de cambio, los proyectos, las tareas y la agenda de revisión semanal del equipo que administra un clúster.
La solución separa responsabilidades:
administrador o agente IA
|
v
clusterlog CLI ---- identifica por huella SSH
| ---- valida contratos y secretos probables
| ---- escribe Markdown/eventos JSON
| ---- opcionalmente crea commit SSH firmado
v
repositorio Git ---- fuente de verdad y auditoría
|
v
clusterlog sync ---- genera data/generated/site_state.json
|
v
Zola ---- lectura, navegación, taxonomías y búsqueda
Qué incluye el MVP
- Secciones de Documentación, Manuales, Memorias, Proyectos, Tareas y Revisión.
- Memorias operativas con autor, huella SSH, riesgo, sistemas, etiquetas, ticket, duración, validación y reversión.
- Cola de revisión por administrador. Una memoria desaparece cuando todos los revisores capturados para esa entrada la aprobaron.
- Invalidación automática de revisiones cuando cambia el contenido de una memoria.
- Tareas con estimación, fecha objetivo, responsables, estado y tiempo real mediante eventos
start,stopyadjust. - Proyectos con objetivo, responsables, alcance, hitos, criterio de éxito y estado.
- CLI no interactiva, salida JSON, entrada JSON por archivo o
stdin, modo--dry-runy códigos de salida estables. - Identidad por huella de llave pública SSH y commits Git firmados por SSH con
--commit. - Detección heurística de secretos antes de escribir contenido.
- Estado derivado y reproducible para que Zola siga siendo un sitio estático.
Requisitos
- Go 1.23 o posterior.
- Git con soporte de firmas SSH.
- OpenSSH/
ssh-keygenpara firmar y verificar commits. - Zola 0.23.3 para construir el sitio.
- Acceso al repositorio del tema durante
make theme, o una copia local indicada conZOLA386_SOURCE.
Inicio rápido
make theme
make build
./bin/clusterlog --root . sync
./bin/clusterlog --root . validate --skip-zola
zola serve
El sitio queda disponible en la dirección que muestre Zola. Antes de publicarlo, cambie base_url en zola.toml y manténgalo detrás de VPN, red privada o autenticación corporativa.
Registrar al primer administrador
La llave pública identifica el registro del administrador. Para una auditoría fuerte, las operaciones posteriores deben usar --commit y la rama protegida debe rechazar commits sin firma válida.
./bin/clusterlog \
--root . \
--ssh-key ~/.ssh/id_ed25519.pub \
admin add \
--id ana \
--name "Ana Torres" \
--email ana@example.org \
--key ~/.ssh/id_ed25519.pub \
--roles owner,admin
Configure Git para firmar el primer commit completo:
git init
git config user.name "Ana Torres"
git config user.email ana@example.org
git config gpg.format ssh
git config user.signingkey ~/.ssh/id_ed25519
git config commit.gpgsign true
git add .
git commit -S -m "bootstrap: iniciar bitácora operativa"
A partir de ahí:
./bin/clusterlog --root . --ssh-key ~/.ssh/id_ed25519.pub --commit identity
./bin/clusterlog --root . --ssh-key ~/.ssh/id_ed25519.pub --commit memory create --from-json examples/memory.json
identity no modifica el repositorio; --commit sólo tiene efecto en comandos que escriben archivos.
Flujo para Claude Code u otro agente
-
El agente recopila y redacta los hechos de la sesión, sin incluir credenciales ni valores sensibles.
-
Consulta el contrato:
./bin/clusterlog --json schema memory -
Prevalida sin escribir:
cat session-memory.json | ./bin/clusterlog \ --root . --json --dry-run \ --ssh-key ~/.ssh/id_ed25519.pub \ memory create --from-json - -
Escribe y firma una unidad atómica:
cat session-memory.json | ./bin/clusterlog \ --root . --json --commit \ --ssh-key ~/.ssh/id_ed25519.pub \ memory create --from-json - -
El agente devuelve al humano el
entry_id, la ruta y el SHA del commit; nunca afirma que la firma fue válida sin comprobar la salida.
Las instrucciones completas para agentes están en AGENTS.md y CLAUDE.md.
Flujo de revisión semanal
# Ver sólo las memorias que le faltan al administrador actual
./bin/clusterlog --root . --json --ssh-key ~/.ssh/id_ed25519.pub review list --mine
# Marcar la versión actual como revisada y crear un commit firmado
./bin/clusterlog --root . --json --commit --ssh-key ~/.ssh/id_ed25519.pub \
review mark MEM-... --note "Revisado en reunión semanal"
# Confirmar la firma del commit actual
./bin/clusterlog --root . verify commit HEAD
La página /revision/ contiene la cola pendiente y, como apoyo a la reunión, las tareas abiertas y los proyectos planeados, activos o bloqueados.
Comandos de calidad
make test # pruebas unitarias e integración de la CLI
make vet # análisis estático de Go
make e2e # flujo completo en una copia temporal
make smoke # contratos, sincronización y validación local
make validate-local # sin requerir Zola
make site # tema + estado + validación completa + sitio
make ci # equivalente local de la canalización
Estructura
cmd/clusterlog/ punto de entrada de la CLI
internal/clusterlog/ modelo, comandos, validación y proyección
content/ Markdown fuente por sección
data/admins.json registro de administradores y política
data/review-events/ un archivo por revisión
data/task-events/ un archivo por evento de tiempo/estado
data/generated/ proyección regenerable para Zola
templates/ plantillas locales compatibles con Zola actual
static/ ajustes visuales y búsqueda
scripts/ preparación del tema y smoke tests
docs/ decisiones arquitectónicas y operación
Documentación clave
HOJA_DE_PROYECTO.md: alcance, requisitos, fases y criterios de aceptación.CLI.md: contrato de comandos, JSON y códigos de salida.SECURITY.md: modelo de confianza y despliegue recomendado.THEME_COMPATIBILITY.md: estrategia parazola.386.docs/WEEKLY_REVIEW.md: guion de la reunión semanal.docs/ADR.md: decisiones de diseño de clusterlog (la herramienta), no del clúster que administra; formato, campos y ejemplo. Registros endocs/adr/, sin equivalente en la UI del sitio ni en la CLI.VALIDATION_REPORT.md: pruebas ejecutadas, límites y controles pendientes.RELEASE_NOTES.md: alcance de la entrega 0.1.0.
Estado del prototipo
La CLI compila con Go 1.23 y sus pruebas cubren creación por JSON, resolución de identidad, revisión por hash, proyección de tareas y eventos independientes. La construcción de Zola está configurada en la CI incluida. Cuando el registro ya contiene administradores activos, la CI también verifica cada commit del pull request contra config/allowed_signers; el scaffold vacío omite esa comprobación durante el bootstrap inicial.