mcpField
F
flag-toggle

flag-toggle

github.com/growthbook開発2540 回インストール4 週間前に更新
リポジトリ

flag-toggle について

GrowthBookの機能フラグを特定の環境で有効化・無効化するClaudeスキルです。状態を確認してから操作の承認を求め、変更をドラフトとレビューのフローに通します。

主な機能

  1. 01フラグと環境の状態確認
  2. 02単一環境での有効・無効切り替え
  3. 03変更前の確認
  4. 04ドラフトリビジョンの作成・再利用
  5. 05公開と承認への引き継ぎ

活用シーン

  1. 01環境内のフラグを無効化
  2. 02環境を確認してフラグを有効化
  3. 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)に対処する場合

コメント