convex-cost

作成者: get-convex

Convexの支出をプレビュー — インサイトから関数をバイト数/読み取りドキュメント数×コールボリュームでランク付けし、各コスト要因の成長曲線を予測し、最も安価な修正を提示し、有料アクションのコストを確認します。

npx skills add https://github.com/get-convex/agent-skills --skill convex-cost

Preview what this app will cost

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.

Workflow

  1. GUARD: deploy-guard — a cost read is read-only over dev/prod (insights is cloud+user-auth only; not previews). Announce the deployment.
  2. GATHER the spend evidence via the official MCP: 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).
  3. ATTRIBUTE: rank functions by bytes/documents read per call × observed (or asked-about) call volume — the product is the cost driver, not either alone. A cheap-per-call function called constantly can outweigh an expensive rare one; show both factors.
  4. PROJECT: state how the top drivers scale — a full-table .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.
  5. NAME THE CHEAPEST FIX per driver — index + .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.
  6. CONFIRM-COST for paid actions: if the flow includes anything metered (a domain purchase, cloud provisioning, a plan change), STATE the price and recurrence explicitly and get an explicit yes BEFORE proceeding — never let a paid action happen as a side effect (the cost-confirm gate).
  7. REPORT: the current cost drivers ranked, each with its evidence + growth shape + fix, and a plain bottom line ('your spend is dominated by messages:list reading the whole table every call; index it and it drops ~100x'). Honest precision: Convex pricing changes and depends on plan — give relative/shape guidance and cite the pricing page for absolute numbers rather than inventing a dollar total.

Rules

  • Cost = data-read-per-call × call-volume — always show both factors; a cheap function called constantly can cost more than an expensive rare one.
  • Read the deployment's own insights/bytes-read evidence for spend; with no traffic yet, price the query SHAPES (a scan on a growing table is a future cost).
  • Give the growth CURVE, not false-precision dollars: O(table) scans compound as data accumulates; indexed access stays flat. Cite the pricing page for absolute figures.
  • Every cost driver names its cheapest fix and emits a cost-class finding on the bus pointing at the fixer (convex-expert/advisor).
  • Confirm-cost for any metered/paid action: state the price + recurrence and get an explicit yes BEFORE it happens — never as a side effect.
  • Read-only over dev/prod (deploy-guard); insights is cloud+user-auth only. Cost composes convex-advisor's evidence but frames it as money, not latency.

get-convexのその他のスキル

convex-performance-audit
get-convex
Convexのパフォーマンスを、読み取り、サブスクリプション、書き込み競合、関数制限について監査します。遅い機能、インサイトの調査結果、OCC競合、または読み取り増幅に使用します。
developmentdatabasedata-analysis
convex
get-convex
一般的なConvexリクエストを適切なプロジェクトスキルにルーティングします。ユーザーがどのConvexスキルを使用すべきか尋ねたり、不十分に指定されたConvexアプリタスクを与えた場合に使用します。
developmentdatabase
convex-setup-auth
get-convex
Convexの認証、IDマッピング、アクセス制御を設定します。Convexアプリでのログイン、認証プロバイダー、ユーザーテーブル、保護された関数、ロールに使用します。
developmentdatabaseapi
convex-quickstart
get-convex
アプリにConvexを作成または追加します。新しいConvexプロジェクト、npm create convex@latest、フロントエンドのセットアップ、環境変数、または最初のnpx convex devの実行に使用します。
developmentdatabase
convex-migration-helper
get-convex
Convexのスキーマとデータマイグレーションを、widen-migrate-narrowおよび@convex-dev/migrationsを用いて計画します。破壊的なスキーマ変更、バックフィル、テーブル再構築、またはダウンタイムゼロのロールアウトに使用します。
developmentdatabase
convex-create-component
get-convex
再利用可能なConvexコンポーネントを、独立したテーブルとアプリ向けAPIとともに構築します。新しいコンポーネント、再利用可能なバックエンドモジュール、統合、またはコンポーネント境界の作業に使用します。
developmentdatabase
convex-migrate
get-convex
@convex-dev/migrationsを使用して、デプロイされたConvexアプリ上でスキーマの移行 + データのバックフィルを実行します。
developmentdatabase
convex-optimize
get-convex
既存のConvexアプリを監査および最適化:セキュリティ、スケーリング、アップグレード、可観測性。