ProdVerdict
← Blog
AgentsJuly 1, 20262 min read

Agent-first billing drift setup in 5 minutes

Tell Cursor to set up ProdVerdict — non-interactive bootstrap writes config, scheduled workflow, MCP, and team skills. No LLM in the check path.

cursor agent setupbilling drift detectionprodverdict setupstripe postgres syncai agent devops

Stripe says paid. Your app might disagree.

v0.13 makes that check agent-first: install a skill, tell your AI to set up ProdVerdict, and bootstrap writes everything — config, hourly drift workflow, Cursor MCP, and team skills — in one non-interactive pass.

The bug in one command

$
npx prodverdict@0.13.0 demo

No git clone. No API keys. You get a FAIL: active Stripe subscription, has_paid_access false in Postgres. That is billing drift — the gap CI does not check because Stripe is mocked in tests.

Tell your AI to set it up

Option A — skills (recommended):

$
npx skills add prodv-dev/prodverdict-sdk@prodverdict-setup -g -y

Then in Cursor: "Set up ProdVerdict for this repo."

Option B — one shell command:

$
npx prodverdict@0.13.0 setup --yes --format agent --from-env

Returns JSON with filesWritten, envWired, missing, and nextSteps. Wires credentials from .env.local when present. Only asks for STRIPE_SECRET_KEY or DATABASE_URL if they are missing.

Bootstrap creates:

  • prodverdict.yml matched to your stack
  • .github/workflows/prodverdict-hourly.yml for scheduled drift detection
  • .cursor/mcp.json with local MCP env
  • .cursor/skills/prodverdict-setup and prodverdict-verify for the whole team

Why scheduled, not PR-gated

Billing drift appears after deploy — when a webhook fires in production, not when you open a PR. Access is a scheduled monitor with Slack alerts on FAIL. Config, migration, boundary, and webhook contracts stay on PR gates.

$
npx prodverdict@0.13.0 scheduled --frequency hourly --install

Set repo secrets: read-only Stripe key, read-only Postgres URL, Slack webhook.

MCP: bootstrap_prodverdict

If local MCP is already configured, agents can call bootstrap_prodverdict instead of shelling out — same result, stable agent JSON.

Typical agent flow:

$
npx prodverdict scan --format agent
npx prodverdict setup --yes --format agent --from-env
npx prodverdict status --format agent
npx prodverdict doctor --format agent

Deterministic, fail-closed

ProdVerdict does not call an LLM to evaluate your billing state. Rules only. Missing credentials = fail, not a silent pass. Stripe and Postgres reads stay on your runner — never on prodverdict.com.

Next steps

Free on private repos. Pro Cloud ($39/project/mo) adds remote MCP repo scans and shared run history for teams already running local checks.

Try it in 60 seconds

Run the fixture demo — no Stripe key or database required.

$fixture demo
npx prodverdict@latest check access --config examples/nextjs-stripe/prodverdict.yml --fixtures --fixtures-dir examples/nextjs-stripe/scenarios/fail-revenue-leak

Comments

Guest comments. No account required. Max 300 words.

Loading comments…

0/300 words