About pod-sales
pod-sales provides a single-shot skill to run, demonstrate, or schedule one iteration of the sales pod without launching real LLM workers. It validates the pod template, reserves a budget, and records a status envelope; live execution is refused in this build.
Key features
- 01Validates pod templates and agent types
- 02Reserves budget in a file ledger
- 03Dry-run without invoking a model
- 04Writes pod status to backing store
- 05Emits a JSON result line
Use cases
- 01Smoke-testing a sales pod iteration
- 02Demonstrating the sales autopilot
- 03Scheduling a dry-run sales tick
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill pod-salesAfter installing, type/pod-salesin Claude Code to confirm it loaded.
Details
From the project READMESurfaces 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.
- Parse args (
--pod-template,--base-path,--dry-run/--live,--budget-cap-usd,--tick-id).--liveis refused with exit code 3 in Phase 2. - Load the pod template JSON (default:
templates/sales.json). - Validate via
validatePodTemplate(json)— schema inv3/@claude-flow/cli/src/business-pods/pod-schema.tsand inlined inpod-tick.mjsso the script runs without a built CLI. Throws with a JSON-pointer path on the first violation. - Resolve every
agent.agentTypeagainstKNOWN_AGENT_TYPES. Unknown types abort with exit code 2 and an actionable error. - Reserve
min(budgetUsdPerRun, --budget-cap-usd)USD against the file-based ledger at<base-path>/budget/<roomId>.json. HonorsreservationExpiryMs(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. - Build per-agent prompts (kickoff scoped to the bench description +
pod's PII policy). In
--dry-runthey are logged to stderr and the model is never invoked. - Commit the reservation. Dry-run actual = $0; live actual = the
reserved amount (Phase 3 wires real
claude -p--max-budget-usdreporting). - Append a
pod-statusenvelope to the Phase-1 backing store at<base-path>/.agentbbs/room-<derivedRoomId>.jsonlso subsequentfederation_bbs_watchcalls see the tick. - 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 error3—--liverequested (refused in Phase 2)
Phase 3 surfaces (not in this build)
--livemode: dispatch each prompt throughclaude -pheadless or a Managed Agent and capture the actual--max-budget-usdreported 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.
Comments
Markdown supported