spend-gate
Gate any billable action (GPU pods/instances, paid APIs or tiers, cloud credits) behind a cost estimate, a live balance check, and an explicit yes for that action. Use before any create/deploy on a pa
SKILL.mdspend-gate/SKILL.md
GitHubEvery billable action gets its own gate, every time: estimate → balance → explicit yes → log. A budget, a spend cap, or an earlier "go ahead with the plan" is context, not approval.
- Classify: pod/instance creation, paid deploys, MCP create/deploy/run/start/update tools on a paid provider (e.g. job submits, endpoint updates, pod start), per-token or per-request paid APIs. Unsure → treat as billable.
- Estimate: unit price × hours/tokens/requests. Prefer the tool's own quote or dry run; else the provider's pricing page, cited with URL and read date. Remembered prices don't count.
- Balance: the provider's read-only billing/balance call if one exists (e.g. Runpod MCP
list-billing; it shows spend history, not credit, so say which you got). No free balance read → say so in the gate and ask the user for the balance or to confirm it; never skip this step. Read-only calls only. - Gate: show the command, unit price + source, estimated total, live balance. Wait for an explicit yes to this action, repeats of approved actions included.
- Log before running, in
skilleddocs/spend.md(create with header):
Fill the resource id into the same row once known. A declined gate is logged too: one row, amount 0, purpose starting "declined:". Untracked → exclude| when (local) | amount | purpose | price source | resource id | |---|---|---|---|---|skilleddocs/per TRACKING.md (it also covers thepip install .hazard). - Run, then for anything that bills while idle (pod, instance, endpoint, volume): give the teardown or auto-stop now, and remind again when the work is done.
Blocked by the spend-guard hook → HOOK.md.