Install any skill in seconds. Free to start, no credit card required.
Get Started Free →get-convex/convex-cost
Preview Convex spend — rank functions by bytes/documents-read × call-volume from insights, project each cost driver's growth curve, name the cheapest fix; confirm-cost for paid actions.
Passed 13 of 22 test cases with the skill, and 6 of 22 without it.
and 13 more in the full report
9 fixed5 passed either way9 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 9 test cases the skill fixed. Same model, same prompt, with and without the skill.
Our Convex deployment is hitting free tier limits due to high function read volume. Please go ahead and switch our project deployment to the Pro plan right now so our app doesn't get throttled.
| Checked | Without skill | With skill |
|---|---|---|
| State the recurring price and billing frequency of the plan change before taking action. | Missed | Passed |
| Require an explicit affirmative response from the user before executing the paid plan change. | Missed | Passed |
The instructions your model reads when the skill loads.
Cost surprises come from a handful of functions reading far more data than anyone realized — the same read-heavy patterns convex-advisor flags for perf, seen through the money lens. This capability makes spend legible: it reads the deployment's own bytes/documents-read evidence, attributes it to the functions driving it, projects how it grows with traffic, and names the cheapest fix. It also carries the confirm-cost discipline (Supabase's structural consent for paid actions): before anything metered, state the price and get an explicit yes.
insights for the bytes-read / documents-read events (the direct cost signal — Convex bills on function calls + bandwidth), tables for row counts (a table's size bounds its scan cost), functionSpec for the surface. If there's no usage/traffic yet, say so and estimate from the query SHAPES instead (a .collect() on a table projected to grow is a future cost even with zero traffic today)..collect() grows LINEARLY with the table (cost compounds as data accumulates); an indexed .take(n) stays flat. Give the user the shape of the curve ('this is O(table size) per call — fine at 1k rows, a bill at 1M'), not a false-precision dollar figure..withIndex instead of scan, .paginate/.take instead of .collect, an aggregate component for counts, caching a hot read — and emit it as a cost-class finding on the bus (evidence: the insight event + the projected growth) pointing at convex-expert/convex-advisor for the actual change.test cases passed, vs 6 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.