flag-toggle について
GrowthBookの機能フラグを特定の環境で有効化・無効化するClaudeスキルです。状態を確認してから操作の承認を求め、変更をドラフトとレビューのフローに通します。
主な機能
- 01フラグと環境の状態確認
- 02単一環境での有効・無効切り替え
- 03変更前の確認
- 04ドラフトリビジョンの作成・再利用
- 05公開と承認への引き継ぎ
活用シーン
- 01環境内のフラグを無効化
- 02環境を確認してフラグを有効化
- 03無効化前にルールへの影響を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ growthbook/ skills --skill flag-toggleインストール後、Claude Code で/flag-toggleを入力して読み込まれたか確認します。
詳細
flag-toggle
特定の環境で GrowthBook の機能フラグを有効または無効にします。環境の切り替えはキルスイッチです。環境でフラグが無効になっている場合、そのルールは評価されず、その環境のすべてのユーザーに対して SDK はデフォルト値を返します。ルールの内容にかかわらず、同じ動作になります。
フラグの変更と同様に、環境の切り替えも「下書き → レビュー → 公開」のフローを経由します。このフローを迂回する方法はありません。レビューは障害ではなく、標準の手順です。
すべての API 呼び出しは、同梱のヘルパー ${CLAUDE_PLUGIN_ROOT}/scripts/gb-call を経由します。GB_API_KEY を環境変数に設定するか、/growthbook:gb-setup で ~/.config/growthbook/.env に書き込む必要があります。
必須入力
- フラグ ID — kebab-case のキーです。ユーザーが説明を提示した場合は、flag-search を使って特定してください。
- 環境 — 切り替え対象の環境です。ユーザーが「production」または「prod」と言った場合は、実際の環境 ID を確認してください。
- 切り替え方向 — 有効(
true)または無効(false)です。ユーザーの言葉から判断し、変更前に確認してください。
ワークフロー
1. フラグと現在の切り替え状態を取得する
gb-call GET /api/v2/features/<flag-id>
以下を確認します。
environmentSettings— 環境 ID と現在のenabled状態の対応表です。環境名を確認し、切り替え前に現在の状態をユーザーに示すために使用します。rules— 無効にする場合に、アクティブなルールがあることを警告するために使用します(すべて評価されなくなります)。
フラグがすでに指定された状態の場合は、ここで終了します。「Flag <flag-id> is already <enabled/disabled> in <env>. No change needed.」
2. 環境を特定する
environmentSettings にある環境を提示します。ユーザーが「prod」や別名を使った場合は、続行する前にどの環境 ID を指しているのか確認してください。
gb-call GET /api/v1/environments
フラグの environmentSettings にすべての環境が含まれていない場合(例:その環境でフラグがまだ一度も切り替えられていない場合)は、これを使用します。
3. 操作を確認する
変更前に、操作内容を明確に伝えます。
「
<flag-id>は現在<env>で<enabled/disabled>です。これを<enable/disable>にします。無効にすると、すべてのルールが評価されなくなり、<env>のすべてのユーザーに対して SDK はデフォルト値(<defaultValue>)を返します。続行しますか?」
無効にする場合、デフォルト値以外を返しているアクティブルールがあれば、動作の変更を伝えます。
「注:現在、
<N>件のルールがデフォルト値とは異なる値を返しています。無効にすると、該当するユーザーにはすべて<defaultValue>が適用されます。」
4. 下書きを通じて切り替えを適用する
echo '{"environment":"<env-id>","enabled":<true|false>}' \
| gb-call POST /api/v2/features/<flag-id>/revisions/new/toggle -
new マジックバージョンは、新しい下書きを作成するか、既存の下書きに変更を追加します。返された version 番号を記録してください。
5. flag-publish で公開する
環境の切り替えは代表的なキルスイッチの用途です。すぐに公開するかユーザーに確認してください。
「切り替えを下書きのリビジョン
<version>に適用しました。今すぐ公開しますか?」
公開手順は flag-publish に引き継いでください。flag-publish は、承認が必要な場合(400)とマージコンフリクトが発生した場合(409)のエラーに対応します。
注:緊急のキルスイッチであっても、承認フローが標準の手順です。承認が必要で、状況が緊急の場合は、flag-publish の承認分岐にあるオプション B または C(組織全体でのバイパス、またはトークンごとのバイパス)が最も迅速ですが、管理者による操作が必要です。
ガードレール
- ドラフトのバージョン管理。 このセッションで前の書き込みスキルを実行した際にバージョン番号がすでにコンテキストにある場合は、
newではなく、明示的に使用してください(例:.../revisions/42/toggle)。これにより、すべての変更が同じドラフトにまとまります。新しく開始する場合はnewを使用してください。最新の更新日時が最も新しいオープンドラフトが自動的に作成または再利用されます。 - 環境の切り替えとルールレベルの
enabledは別物です。 これは、その環境でフラグを評価するかどうかを制御します。ルールレベルのenabledは、特定のルールを評価に含めるかどうかを制御します。これらは独立しているため、環境でフラグが有効でも、すべてのルールが無効になっていることがあります。 - 無効にすると、すべてのルール評価が停止します。 ユーザーには
defaultValueが返されます。defaultValueが"false"で、一部のユーザーにルールによって"true"が返されていた場合、それらのユーザーは機能を利用できなくなります。ユーザーがこの点を理解していることを確認してください。 - レビューを回避できる即時のキルスイッチはありません。 通常の手順はレビューを経ることです。緊急のため承認を省略する必要がある場合は、GrowthBook の UI を案内してください。そこで人間のオペレーターがより迅速に公開できる場合があります。または、組織全体のバイパス設定を案内してください。
newは既存のドラフトに変更を追加します。 チームメイトがこのフラグのオープンドラフトを作成している場合、切り替えはそのドラフトに反映されます。既存のドラフトが再利用された場合はユーザーに伝えてください。公開前にドラフトの所有者と調整する必要があります。- ここでは
allEnvironmentsの切り替えはサポートされていません。 このスキルで切り替えられるのは一度に1つの環境です。すべての環境を同時に切り替えるには、環境ごとにこのスキルを実行するか、GrowthBook の UI を使用してください。
使用するエンドポイント
GET /api/v2/features/:id— フラグの状態と現在の環境切り替え状況を取得しますGET /api/v1/environments— すべての環境を一覧表示し、環境 ID を確認しますPOST /api/v2/features/:id/revisions/new/toggle(本文:{ "environment": "<env-id>", "enabled": true|false })
引き継ぎ先
flag-search— ユーザーがフラグ ID ではなく説明を提示した場合flag-targeting— 有効な環境内のルールを追加または編集する場合flag-rules— 環境全体を切り替えずに、個々のルールを有効または無効にする場合flag-publish— ドラフトを公開し、承認が必要な場合(400)やマージの競合(409)に対処する場合