hbox-docs/docs/agentes.md

80 lines
5.4 KiB
Markdown

---
title: "Agentes del sitio"
description: "Qué hacen solos el vigía, el agente diario y el bot de standup en drogheda.helgen.online, qué dejan listo para que Leo lo apruebe y qué nunca hacen."
date: 2026-10-27
---
# Agentes del sitio
Desde el 27-oct-2026 el sitio tiene tres ayudantes que trabajan solos. Todo lo que hacen queda aquí mismo: en
[Incidencias](tableros/incidencias.md), en el [Standup](tableros/standup.md), en el historial de cada pendiente y en la
[Bitácora](bitacora.md). Si algo de esto no te gusta, dilo en una incidencia.
| Agente | Qué es | Cuándo corre | Dónde se ve |
|---|---|---|---|
| **Vigía** | Un programa en el servidor, sin IA (`backend/vigia.py`) | Cada hora, en el minuto 7 | [Incidencias](tableros/incidencias.md) con origen «vigía» |
| **Agente diario** | Claude, como tarea programada en la Mac de Leo | Lunes a viernes, 6:37 pm | Comentarios en cada incidencia, ramas `agente/…` en git.helgen.online, lote del día |
| **Bot de standup** | El mismo agente diario | En la misma corrida: deja listo el standup del siguiente día hábil | [Standup](tableros/standup.md) y la franja azul de arriba |
## El vigía
Revisa cada hora y abre una incidencia cuando algo se repite (si ya hay una abierta igual, le suma una ocurrencia):
- **Entradas:** alguien con 3 o más intentos fallidos en 24 horas y ninguno bueno después. La incidencia dice el motivo
y una pista (Bloq Mayús, mayúscula que puso el teléfono, espacio de más). **Nunca guarda contraseñas.**
- **Servidor:** errores de Python y respuestas 5xx del backend.
- **Navegadores:** el mismo error de JavaScript, o la misma llamada que falla, 3 veces o por 2 personas.
- **Salud:** que el backend conteste, que el archivo de usuarios tenga sus permisos (`leo:www-data 640`), que haya disco.
- **Configuración:** que el servicio instalado en el servidor diga lo mismo que el del repositorio (administradores,
actas repetibles). Así se habría visto el 27-oct que el servicio instalado a mano dejó fuera la prueba Ethernet/serie.
## El agente diario
Cada tarde lee las incidencias abiertas, el reporte del vigía y los errores, y actúa con estas reglas:
### Lo hace solo (no necesita autorización)
1. **Atender:** clasificar (tipo y gravedad), decir quién la atiende, juntar duplicadas y **contestar en la incidencia**
qué encontró y qué sigue. Si falta información, la pide ahí mismo a quien reportó.
2. **Reproducir** la falla en una copia del sitio con datos de prueba y escribir la causa.
3. **Arreglar lo que es solo de páginas** — textos, ligas rotas, estilos, el JavaScript de los tableros — en una copia
limpia del repositorio: prueba (`mkdocs build --strict`, pruebas del backend, vista en claro, oscuro y teléfono),
guarda el cambio en git.helgen.online con el folio de la incidencia y **publica solo las páginas** si la comparación
con el servidor muestra que no se lleva nada más. Después comenta en la incidencia qué cambió y cómo deshacerlo.
4. **Cerrar** como resuelta cuando el arreglo ya está publicado y el vigía no ve la falla en 24 horas.
5. **Avisar en la entrada** (aviso público, sin datos internos) cuando una falla impide entrar a varias personas.
### Lo deja listo para que Leo lo apruebe
- Cualquier cambio del **backend** (`backend/*.py`), de **nginx**, del **servicio** o del servidor; reinicios y `sudo`.
- Lo que toca **cuentas, contraseñas o permisos** (también restablecer una contraseña).
- Lo que cambia **datos**: actas, inventario, pendientes. Los cambios del tablero van en un **lote** que Leo aplica
(`./scripts/tablero.sh revisar` → `aplicar`), como siempre.
- Lo de la **página de entrada** y de las **actas de campo** (`entrar.html`, `cuenta.html`, `formularios/`): aunque sean
páginas, si fallan nadie puede trabajar.
Lo deja en una rama `agente/AAAA-MM-DD-INC-xxxx` con su prueba, y en el resumen del día dice exactamente qué comando correr.
### Nunca
Borrar nada · ver, guardar o pedir contraseñas · cambiar permisos · mandar mensajes o correos a nombre de alguien ·
publicar datos del proyecto en la página de entrada · tocar el archivo de parámetros 4G/NTRIP.
## El bot de standup
1. **Prepara** para cada persona con pendientes abiertos su parte del día siguiente: instrucciones concretas (qué hacer,
en qué orden, con la liga al documento) y una pregunta por pendiente. Lee el tablero, las decisiones de Ingeniería,
la última junta y lo que esa persona contestó ayer.
2. **Pregunta** en el [Standup](tableros/standup.md): ¿qué terminaste?, ¿qué te falta?, ¿qué te bloquea? Cada quien
contesta en 2 minutos y, si lo deja marcado, sus tarjetas se mueven solas (a su nombre).
3. **Resume** para Leo y Adriana (pestaña Equipo): quién contestó, qué se terminó y los bloqueos con quién los destraba.
Lo que falte en el tablero (comentarios, pendientes nuevos por un bloqueo) va en el lote del día para que Leo lo aplique.
## Para ingeniería
- Código: `backend/vigia.py`, `backend/incidencias.py`, `backend/standup.py`, `backend/acceso.py` (página de entrada);
instrucciones del agente: `agentes/agente-diario.md` en el repositorio `hbox-docs`; ayuda para llamar la API desde la Mac:
`scripts/agente-api.sh`.
- El agente entra a la API por el servidor (`127.0.0.1:8081`, usuario `claude`); el vigía, como `vigia`.
- Cambiar estas reglas = editar esta página y `agentes/agente-diario.md` en el mismo cambio.