# Cost Federation > Cableado del lado consumidor para los eventos federation_spend de la Fase 3 de ADR-097: ventanas móviles de gasto por peer más chequeo de umbral de suspensión. Fuente: https://skillsagentes.com/skills/ruvnet/ruflo/cost-federation Markdown: https://skillsagentes.com/skills/ruvnet/ruflo/cost-federation.md Repositorio: https://github.com/ruvnet/ruflo Autor: ruvnet Licencia: MIT Actualizado: hace 3 meses Coste de contexto: 31 tok instalada, 592 tok al activarse, 592 tok con todos los archivos del bundle Bundle: 1 archivo, 2 KB Permisos que pide: bash ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add ruvnet/ruflo --skill cost-federation --agent claude-code # Cursor npx -y skills add ruvnet/ruflo --skill cost-federation --agent cursor # Codex npx -y skills add ruvnet/ruflo --skill cost-federation --agent codex # Gemini CLI npx -y skills add ruvnet/ruflo --skill cost-federation --agent gemini # Windsurf npx -y skills add ruvnet/ruflo --skill cost-federation --agent windsurf # Cline npx -y skills add ruvnet/ruflo --skill cost-federation --agent cline ``` ## Qué hace - Agrega ventanas móviles (1h/24h/7d) de gasto por peer a partir de eventos `federation_spend`. - Marca los peers que superan el umbral de suspensión configurado del breaker de federación. - Es la parte consumidora de la Fase 3 de ADR-097; hasta que se publique upstream, reporta 'no se encontraron eventos'. ## Cuándo usarla - Antes de abrir tráfico de federación a un nuevo peer, para establecer una línea base. - Periódicamente (ej. `/loop 5m`) para monitorear el gasto por peer. - Después de que la Fase 3 de ADR-097 se publique, para verificar el razonamiento de suspensión del breaker. ## Qué la activa - "¿Cuánto ha gastado cada peer federado en las últimas 24h?" - "¿Algún peer superó el umbral de suspensión?" ## Antes de instalar - Depende de que la Fase 3 de ADR-097 publique eventos en el namespace `federation-spend`; mientras tanto no hay datos. - runs shell commands ## Archivos - SKILL.md — 2 KB ## SKILL.md Reproducido tal cual desde ruvnet/ruflo bajo MIT. Esta sección es el documento original y está en inglés. # Cost Federation ADR-097 Phase 3 specifies a `federation_spend` event bus that publishes one event per `federation_send` completion: `{peerId, taskId, tokensUsed, usdSpent, ts}`. Cost-tracker is the declared consumer — it aggregates per-peer rolling windows (1h / 24h / 7d) and the federation breaker queries that aggregate to suspend peers exceeding the configured threshold. **Phase 3 isn't landed upstream yet.** This skill is the consumer-side wiring; it activates the moment upstream publishes events to the `federation-spend` namespace. Until then it reports cleanly with a "no events found" notice. ## When to use - Before opening federation traffic to a new peer — establish baseline. - Periodically (e.g. `/loop 5m`) to monitor per-peer spend across windows. - After ADR-097 Phase 2/3 lands — to verify breaker suspension reasoning. ## Steps 1. **Run the script**: ```bash node plugins/ruflo-cost-tracker/scripts/federation.mjs ``` Optional env: - `FED_FORMAT=json` — JSON instead of markdown - `FED_NAMESPACE=federation-spend` — override target namespace - `FED_SUSPEND_THRESHOLD_USD=5.0` — breaker threshold (ADR-097 default) 2. **Inspect** — per-peer 1h/24h/7d windows of count + USD spent, plus a "Suspension threshold check" block flagging peers over the breaker line. ## Storage contract (consumer side) When Phase 3 lands, events should be persisted to namespace `federation-spend` with key prefix `fed-spend-` and JSON value matching: ```json { "peerId": "", "taskId": "", "tokensUsed": 12345, "usdSpent": 0.0287, "ts": "2026-05-05T..." } ``` The script reads any record matching that prefix, regardless of how upstream produces them. Multiple events per peer accumulate cleanly into the rolling-window sums. ## Cross-references - [ADR-097: Federation budget circuit breaker](../../v3/docs/adr/ADR-097-federation-budget-circuit-breaker.md) — the complete spec - `cost-report` — same data, different lens (cost-report focuses on local agent spend; this skill on per-peer federated spend) - `ruflo-federation` plugin — the producer side (when Phase 3 lands) ## Dónde encaja - Categoría: [DevOps e infraestructura](https://skillsagentes.com/categorias/devops-infraestructura.md) — Despliegues, contenedores, IaC y flujos de gestión de incidentes. - Creador: [ruvnet](https://skillsagentes.com/creators/ruvnet.md) — 275 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Harness Gepa](https://skillsagentes.com/skills/ruvnet/ruflo/harness-gepa.md): Inspecciona y audita genomas GEPA: carga y valida un genoma, renderiza el system prompt que compila, o clasifica los modos de fallo de una transcripción de ejecución. - [Deepseek Reason](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-reason.md): Completion en modo razonamiento contra deepseek-reasoner (R1) de DeepSeek. Devuelve el chain-of-thought por separado de la respuesta final. Lee DEEPSEEK_API_KEY y degrada si falta o la API no responde. - [Deepseek Chat](https://skillsagentes.com/skills/ruvnet/ruflo/deepseek-chat.md): Completion de un solo turno contra el modelo deepseek-chat de DeepSeek vía /v1/chat/completions. Lee DEEPSEEK_API_KEY y degrada con status:degraded si falta o la API no responde. Para tareas sin razonamiento. - [Adr Index](https://skillsagentes.com/skills/ruvnet/ruflo/adr-index.md): Construye o reconstruye el índice de ADRs y su grafo de dependencias ejecutando scripts/import.mjs, en vez de cientos de llamadas MCP. - [Agntcy Status](https://skillsagentes.com/skills/ruvnet/ruflo/agntcy-status.md): Muestra el estado de la integración AGNTCY/SLIM/CASA: si los paquetes están instalados, qué transporte está activo y si el enforcement de CASA está habilitado. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)