docs(flows): DoD obligatorio con user-facing surface + abrir issues 0100-0103 (taxonomia, frontmatter migration, dev_console, work dashboard)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-17 00:07:03 +02:00
parent 212875ed0d
commit 5d2a14e50a
77 changed files with 4062 additions and 311 deletions
+28
View File
@@ -71,6 +71,34 @@ Tres triggers distintos, mismo sink.
- `function_stats.matrix_send_message_*`: calls dependientes de eventos reales.
- Sala Matrix recibe mensajes de los 3 origenes.
## Definition of Done
Ver `README.md` seccion DoD + user-facing.
### Generico
- [ ] **Repetibilidad**: 3 triggers (node fail / DAG fail / violations) disparan mensaje cada uno, 100x sin perdida.
- [ ] **Observabilidad**: cada envio en `call_monitor.calls`; cola persistente registra envios pendientes si Matrix down.
- [ ] **Error-path**: Matrix down → cola en operations.db; al reconectar drena en orden.
- [ ] **Idempotencia**: dedup: misma alerta 10x en 1min → 1 mensaje agregado, no flood.
- [ ] **Secrets**: bot token en `pass matrix/bot-token`.
- [ ] **Docs**: `## Notas` con onboarding + comandos para provocar trigger de prueba.
- [ ] **Registry-first**: `matrix_send_message_py_infra` registrado + reusado.
- [ ] **INDEX + status**: `status: done` + INDEX + movido.
### User-facing
- [ ] **User-facing**: usuario lee alerta en sala Matrix `#fn-registry-ops` con prefix emoji severidad + nombre app + link al dashboard de la app fallida.
- [ ] **User-facing repeat**: cada fallo real dispara mensaje en la sala; sala es el feed de salud diario del stack.
- [ ] **User-facing onboarding**: parrafo en `## Notas`: "Para enterarse de fallos: unirse a `#fn-registry-ops` (creds Matrix en `pass matrix/user`). Heartbeat 09:00 confirma bot vivo. Probar trigger: `./fn run inject_synthetic_violation`."
- [ ] **User-facing latencia**: evento → mensaje en <3s p95 (medido sobre 100 envios).
### Custom
- [ ] Severity routing: `critical` → `#fn-registry-ops`; `warning` → `#fn-registry-dev`.
- [ ] Self-test diario 09:00: bot envia heartbeat si vivo; ausencia heartbeat = alerta meta.
- [ ] Mensaje formateado con link al dashboard (no solo texto plano).
## Notas
- Throttling: max 1 mensaje/minuto por origen para evitar spam.