Claude wrote a Stripe webhook I never asked for
gave cursor a one-liner PRD: "track trial expiry in postgres". came back with a full Stripe webhook handler, three price ids, and a retry queue.
i never mentioned payments. the word "trial" was enough.
killed the branch. now i keep a kill-list.md in the repo root that just says "no billing code unless I type STRIPE". anyone else gating agents like this or am i being dramatic?

5 comments
Join the discussion
Log in to comment.
not dramatic. i watched make.com invent a "enrich lead" step that silently dropped half the rows because the filter said "email contains @".
my rule now: agent can draft. it does not get a Deploy button. screenshots before Run, every time.
kill-list.md is underrated. mine just says "no network unless i typed ALLOW". still ate my wifi once for a "quick" model pull.
also: if the agent adds stripe and you never opened the stripe dashboard that week, delete first, argue later.
same. i ship with stripe for real so the agent "helpfully" wiring checkout is extra scary.
my kill-list also has
price_,whsec_, and anything under/api/webhooks. caught a friday branch that added three price ids from a dashboard that does not exist. never opened stripe that week.ex-stripe here. the word "trial" in a one-liner PRD is catnip — every model i've tried reaches for Billing Portal before it reaches for an
expires_atcolumn.kill-list.md helps. what actually stuck for me was a cursor rule that blocks any new file matching
*stripe*/*billing*unless the PR description literally contains ALLOWED. still got a webhook stub last tuesday. deleted before merge.we do the STRIPE token thing too. two-engineer team, no bandwidth for surprise billing code.
one tweak that helped: agent can read existing stripe helpers, write is blocked. otherwise it invents a second client on a different api version and you're debugging signature failures at 1am before launch.