# Pod Sales > Ejecuta un tick del pod de negocio de ventas: carga la plantilla, valida el esquema, resuelve agentes, reserva presupuesto y publica un resumen. Dry-run por defecto; `--live` reservado para la Fase 3. Fuente: https://skillsagentes.com/skills/ruvnet/ruflo/pod-sales Markdown: https://skillsagentes.com/skills/ruvnet/ruflo/pod-sales.md Repositorio: https://github.com/ruvnet/ruflo Autor: ruvnet Licencia: MIT Actualizado: el mes pasado Coste de contexto: 143 tok instalada, 777 tok al activarse, 777 tok con todos los archivos del bundle Bundle: 1 archivo, 3 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 pod-sales --agent claude-code # Cursor npx -y skills add ruvnet/ruflo --skill pod-sales --agent cursor # Codex npx -y skills add ruvnet/ruflo --skill pod-sales --agent codex # Gemini CLI npx -y skills add ruvnet/ruflo --skill pod-sales --agent gemini # Windsurf npx -y skills add ruvnet/ruflo --skill pod-sales --agent windsurf # Cline npx -y skills add ruvnet/ruflo --skill pod-sales --agent cline ``` ## Qué hace - Ejecuta un tick del pod de negocio de ventas: carga `templates/sales.json` y lo valida contra el esquema del pod. - Resuelve cada agente contra el registro de agentes de ruflo y reserva presupuesto en un ledger de archivo (stub de Fase 2). - Construye prompts de dry-run por agente sin invocar ningún modelo real. - Publica un resumen en la sala 'sales' y emite una línea JSON estructurada con `{podName, tickId, agentsRan, totalUsd, status}`. ## Cuándo usarla - Demostrar, probar en modo smoke o programar una iteración del autopilot de ventas sin gastar en LLMs reales. ## Cuándo no - El modo `--live` está reservado para la Fase 3 y se rechaza con código de salida 3 en esta versión. ## Qué la activa - "Ejecuta un tick de prueba del pod de ventas" - "Simula una iteración del pod de ventas sin gastar presupuesto real" ## Antes de instalar - Necesita `templates/sales.json` y el registro de agentes de ruflo; el modo `--live` aún no está disponible. - runs shell commands ## Archivos - SKILL.md — 3 KB ## SKILL.md Reproducido tal cual desde ruvnet/ruflo bajo MIT. Esta sección es el documento original y está en inglés. Surfaces `pod-tick.mjs` as a single-shot skill for the sales pod. Use when Claude Code needs to demonstrate, smoke-test, or schedule one iteration of the sales autopilot without spawning real LLM workers. ## Algorithm Implementation: [`scripts/pod-tick.mjs`](../../scripts/pod-tick.mjs). 1. Parse args (`--pod-template`, `--base-path`, `--dry-run` / `--live`, `--budget-cap-usd`, `--tick-id`). `--live` is refused with exit code 3 in Phase 2. 2. Load the pod template JSON (default: `templates/sales.json`). 3. Validate via `validatePodTemplate(json)` — schema in `v3/@claude-flow/cli/src/business-pods/pod-schema.ts` and inlined in `pod-tick.mjs` so the script runs without a built CLI. Throws with a JSON-pointer path on the first violation. 4. Resolve every `agent.agentType` against `KNOWN_AGENT_TYPES`. Unknown types abort with exit code 2 and an actionable error. 5. Reserve `min(budgetUsdPerRun, --budget-cap-usd)` USD against the file-based ledger at `/budget/.json`. Honors `reservationExpiryMs` (default 60_000 ms, bounded to [5000, 300000] per ADR-164.1 §3.2). `TODO(adr-164.1)`: swap the file ledger for the atomic SQLite tracker in Phase 3. 6. Build per-agent prompts (kickoff scoped to the bench description + pod's PII policy). In `--dry-run` they are logged to stderr and the model is never invoked. 7. Commit the reservation. Dry-run actual = $0; live actual = the reserved amount (Phase 3 wires real `claude -p` `--max-budget-usd` reporting). 8. Append a `pod-status` envelope to the Phase-1 backing store at `/.agentbbs/room-.jsonl` so subsequent `federation_bbs_watch` calls see the tick. 9. Emit a single JSON line on stdout: `{podName, tickId, agentsRan, totalUsd, envelopeId, status}`. ## Exit codes - `0` — tick succeeded (`status === 'success'`) - `2` — invalid template / unknown agent type / budget exhausted / arg error - `3` — `--live` requested (refused in Phase 2) ## Phase 3 surfaces (not in this build) - `--live` mode: dispatch each prompt through `claude -p` headless or a Managed Agent and capture the actual `--max-budget-usd` reported spend. - Atomic SQLite budget tracker (ADR-164.1 §3.2). - Multi-pod variants (`pod-marketing`, `pod-finance`, ...) — each gets its own skill once Phase 3 ships. ## Dónde encaja - Categoría: [Automatización](https://skillsagentes.com/categorias/automatizacion.md) — Flujos de varios pasos que se ejecutan sin supervisión. - 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)