mcpField
C
convex-advisor

convex-advisor

github.com/get-convexクラウド・DevOps6931.2k 回インストール1 日前に更新
リポジトリ

convex-advisor について

convex-advisor は、Convex デプロイの健全性、パフォーマンス、コストを確認するスキルです。公式 Convex MCP の実行時イベントとコードを照合し、根本原因と根拠付きの所見を示します。

主な機能

  1. 0172 時間分の健全性イベント収集
  2. 02テーブルと関数の情報確認
  3. 03イベントの原因をコードから特定
  4. 04所定スキーマで所見を出力
  5. 05重要度順に修正案を提示

活用シーン

  1. 01読み取り上限やしきい値の調査
  2. 02書き込み競合の分析
  3. 03実行時の根拠に基づくデプロイ評価

MCP 対応

公式 Convex MCP を使い、デプロイ状態、健全性イベント、テーブル情報、関数仕様を取得します。insights ツールは、ユーザーとしてログインしたクラウド開発または本番デプロイで利用でき、約 72 時間分のトラフィックが必要です。助言の実行は読み取り専用です。

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/convex-advisorを入力して読み込まれたか確認します。

詳細

ライブデプロイメントアドバイザー

静的レビューは推測にすぎませんが、デプロイメントは事実を把握しています。Convex 公式 MCP には、関数ごとの型付き72時間分のヘルスイベントを返す insights ツールが用意されています。イベントには、documentsReadLimit / bytesReadLimit(ハードリミット到達)、documentsReadThreshold / bytesReadThreshold(リミットに接近)、occFailedPermanently / occRetried(書き込み競合)があり、それぞれに証拠(table_name、bytes_read、documents_read、OCC のドキュメント ID とリトライ回数)が含まれます。アドバイザーは、該当関数の実際のコードを読み込んで各イベントの根本原因を特定し、findings バス(specs/finding.schema.json)に所見を出力します。これにより、修正担当を割り当て、リリース準備状況を評価できます。

ワークフロー

  1. GUARD:deploy-guard のステップ0〜1を実行し、読み取り対象のデプロイメントを特定して告知します。prod の insights/logs は読み取り専用であれば参照できます。アドバイザリーパスでは、prod への変更操作を有効にしてはいけません。
  2. GATHER(Convex 公式 MCP 経由で決定論的に実行):status → デプロイメントセレクター、insights → 型付き72時間分のイベント、tables → スキーマと行数、functionSpec → パブリック/内部インターフェイスを取得します。insights ツールは、ユーザーとしてログインしている場合に限り、クラウドの dev/prod デプロイメントで利用できます(プレビューやデプロイキーのスコープに限定されたコンテキストでは利用できません)。また、約72時間分のトラフィックが必要です。何も返されない場合や利用できない場合は、その旨を伝え、convex-reviewer の利用を提案してください。所見を捏造してはいけません。
  3. 各インサイトイベントの根本原因を、該当関数のコードを読んで特定します。
    • bytesReadThreshold/Limit または documentsReadThreshold/Limit → 指定されたテーブルで .collect()、インデックスなしの .filter()、ページネーションの欠如を探します。修正には、インデックスと .withIndex、.take(n) または .paginate(convex-expert のパターン)、あるいは件数集計用の集計コンポーネントを使用します。
    • occRetried / occFailedPermanently → 指定されたドキュメントに対する読み取り・変更・書き込みの集中箇所(共有カウンター、ステータスの切り替えなど)を探します。修正には、@convex-dev/sharded-counter の使用、読み取りセットの縮小、または競合処理の workpool への移行を行います。
    • logs 内で失敗(status: failure)が繰り返されている場合 → cron のクラッシュループ、バリデーターによる拒否、未処理のエラー形状に分類します。
  4. specs/finding.schema.json に従って所見を出力します。class は perf/correctness/cost、severity はインサイトの種類に基づいて設定します(リミット到達 = high、閾値超過 = med、リトライ = med、永続的な OCC 失敗 = high)。locus は {kind: deployment, functionId, tableName}、evidence は {kind: insight-event, detail: the raw event} とします。confidence は confirmed とします(イベントは実際に発生しており、仮説ではありません)。修正が機械的に可能な場合は、fixCapability と autofixable を指定します。
  5. REPORT:所見を重大度順に並べ、それぞれに(a)ランタイムの証拠を1行で示します(「messages:list は昨日、messages から4.2MBを31回読み込みました」など)。(b)file:line を含むコードレベルの根本原因、(c)具体的な修正方法と適用する機能を記載します。修正の適用を提案し、確認があった場合にのみ適用します。その後、トラフィック発生後に insights を再実行して傾向を検証するか、静的チェックを直ちに再実行します。
  6. 対象範囲を厳守します。これはヘルス/パフォーマンス/コストの確認です。認可の所見は convex-authz に、コードのイディオムに関する所見は convex-reviewer に、エラーのトリアージは sentinel に振り分け、作業を重複させず、参照先を示す所見を出力します。

ルール

  • 根拠重視:すべての指摘に、実際のインサイトイベント、ログ行、またはテーブルの統計値を引用してください。デプロイに根拠がなければ、アドバイザーから指摘は出しません(代わりに convex-reviewer を提案してください)。
  • 設計上、読み取り専用です:アドバイザリーパスはデプロイを変更せず、prod の変更フラグも有効にしません(deploy-guard の原則に従います)。
  • 報告の前にコードから根本原因を特定してください:インサイトイベントが症状を示し、指摘では行とその仕組みを明示する必要があります。
  • findings バスに出力してください(specs/finding.schema.json)。confidence は confirmed とします。ランタイムイベントは仮説ではなく事実です。
  • イベントの種類に基づいて重要度を決定してください:limit-hit/permanent-OCC-failure は high、threshold/retried は med です。
  • 担当範囲を守ってください:パフォーマンス/コスト/健全性のみを扱います。認可は convex-authz に、スタイルは convex-reviewer に、エラーのトリアージは sentinel に任せてください。
  • 該当する場合は、独自実装よりコンポーネントによる修正を優先してください(カウンターの OCC には sharded-counter、件数スキャンには aggregate)。これは suggest と同じ方針です。

コメント