planetscale-change-gates-and-approval-contract
planetscale-change-gates-and-approval-contract について
PlanetScale を操作するエージェント向けに、データベースやリポジトリの変更をリスク別に分類し、承認・実行・報告の要件を定めるスキルです。レビュー可能な提案と、本番環境に影響する変更、自律実行が禁止される操作を区別します。
主な機能
- 015段階の変更リスク分類
- 02各分類の承認ルール
- 03実行前のリスクチェックリスト
- 04実行後の報告要件
- 05曖昧な依頼への拒否指針
活用シーン
- 01データベース変更の承認要否の判断
- 02本番変更計画とロールバックの準備
- 03広範で曖昧な変更依頼への対応
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ planetscale/ skills --skill planetscale-change-gates-and-approval-contractインストール後、Claude Code で/planetscale-change-gates-and-approval-contractを入力して読み込まれたか確認します。
詳細
変更ゲートと承認の要件
目的
可用性、安全性、セキュリティ、データ、または開発者のワークフローに影響する、意図しない変更や自律的な変更を防ぎます。
操作クラス
クラス A:デフォルトで読み取り専用
承認なしで実行できます。
- データベース、ブランチ、キースペース、Webhook、バックアップ、ロール、トラフィック予算、スキーマの推奨事項、デプロイリクエスト、Insights データを一覧表示します。
- リポジトリのコードを調査します。
- スキーマメタデータを読み取ります。
- 機密性のないデータベースメタデータを読み取ります。
- レポートと変更案を作成します。
クラス B:状態を作成する提案
デフォルトで実行できます。ただし、オペレーターから厳格な変更禁止モードを要求された場合に限り、承認が必要です。
- API POST を使ってクエリパターンレポートを作成します。結果が読み取り専用のテレメトリであっても対象です。
- Webhook のテストイベントを実行します。
- 一時的なローカルブランチやファイルを作成します。
- 外部ツールで PR やイシューを作成します。
- データベースの開発用ブランチを作成します。
- 本番以外の開発用ブランチに DDL やマイグレーションを適用します。
- レビューワークフローで保護されたブランチを対象に、デプロイリクエストを作成します。
最後の 3 項目は、既存のレビュシステム内での提案です。人間がマージまたはデプロイするまで、本番環境には何も反映されません。ゲートを設けるべきなのは、提案の作成ではなく、マージ/デプロイ操作(クラス C/D)です。PR の作成許可を求めて作業を中断するエージェントは、操作を誤って分類しています。
クラス C:動作を変更する操作
必ず明示的な承認が必要です。
- セーフマイグレーションを有効にします。
- セーフマイグレーションを無効にします。
- デプロイリクエストの承認設定を変更します。
- Traffic Control の予算またはルールを作成/更新/削除します。
- Traffic Control の予算を強制モードに切り替えます。
- Webhook を作成/更新/削除します。
- 生クエリの収集を有効にします。
- 再起動が必要な拡張機能や設定を有効/無効にします。
- ロールを作成/更新/削除します。
- パスワードをリセットします。
- pg_strict の設定を変更します。
- 接続プーリングの動作を変更します。
- IP 制限、PrivateLink、PSC、またはパブリックアクセスを変更します。
- バックアップのスケジュールまたは保持期間を変更します。
- 復元用ブランチを作成します。
- 自動バックアップ以外のバックアップを作成します。
- ブランチのサイズまたはレプリカのトポロジーを変更します。
- リポジトリのファイルまたは依存関係を編集します。
クラス D:本番データ/可用性に影響する操作
明示的な承認、対象の明示的な確認、ロールバック計画が必要です。可能であれば、別の人間によるレビューも必要です。
- 本番環境の DDL。
- 本番環境の DML。
- スキーマの推奨事項を本番環境に適用します。
- Vitess のデプロイリクエストをキューに追加する、または本番環境に適用します。
- ブランチを昇格または復元します。
- ブランチ、データベース、ロール、Webhook、バックアップ、またはトラフィックルールを削除します。
- 本番環境で Traffic Control を強制します。
- 本番環境のネットワークアクセスを変更します。
- 本番環境の認証情報をローテーションします。
- 高負荷時に緊急バックアップを作成します。
クラス E:自律的な実行を禁止
人間が直接操作するか、別途承認されたインシデント対応手順に従う場合を除き、決して実行しないでください。
- 本番データベースを削除します。
- 本番環境の安全機構をすべて無効にします。
- 本番テーブルまたはカラムを削除します。
- IP 制限またはプライベート専用の状態を解除します。
- ログ、イシュー、PR、Slack、またはレポートにシークレットを保存または公開します。
- データベースのテレメトリから生成されたコードを自動マージします。
- LLM が生成した DDL を自動適用します。
承認要件
有効な承認には、次の内容を含める必要があります。
- 変更 ID。
- 対象の組織/データベース/ブランチ。
- 本番環境に影響するかどうか。
- 正確な操作を実行する許可。
無効な承認の例:
- 「ベストプラクティスに従ってください。」
- 「すべて修正してください。」
- 「推奨事項を適用してください。」
- 変更 ID を明示しない「進めてください」。
自律実行の例外
変更ごとの承認に代わる方法は、../planetscale-autonomous-execution-mode/SKILL.md で定義されている、リスクを認識した自律モードだけです。オペレーターがリスクを明示的に認識し、対象範囲を指定して、本番環境を含めるかどうかを明示した場合、その確認は、指定された範囲内に限り、クラス B/C(本番環境を含める場合はクラス D)のアクションに対する変更ごとの承認に代わります。
自律モードでも、このスキルの他の要件はすべて適用されます。
- どのような表現であっても、クラス E のロックは解除されません。
- クラス C/D の各ステップでは、実行前チェックリストを引き続き作成する必要があります(実行計画として提示し、停止して承認を待つ形式にはしません)。
- 実行後の報告も引き続き必要です。
- 対象範囲外の作業には、新たな承認または新たな確認が必要です。
必須の実行前チェックリスト
クラス C または D のアクションを実行する前に、以下を提示してください。
- 正確なコマンド、API エンドポイント、ダッシュボードでの操作、SQL、またはリポジトリの差分。
- 対象の確認。
- 期待される影響。
- 可用性への影響。
- データのリスク。
- セキュリティのリスク。
- ロールバック計画。
- 検証計画。
- 監視計画。
その後、承認を求めて停止してください。
必須の実行後レポート
承認された変更を後から実行した場合は、以下を報告してください。
- 変更内容。
- 変更日時。
- 承認者。
- 使用したインターフェース。
- 成功を示す証拠。
- 警告事項。
- ロールバックの状態。
- 継続的な監視。
必須の拒否対応
本番環境に対する広範または曖昧な変更を適用するよう求められた場合は、その広範なアクションを拒否し、より安全な、対象を明確にした変更計画を提示してください。
次の文を使用してください。
「曖昧な指示に基づく本番環境への広範な変更は適用しません。リスクとロールバックの詳細を含む、対象を明確にした変更セットを作成できます。」