mcpField
F
flag-default-value

flag-default-value

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

flag-default-value について

flag-default-valueは、ルールに一致しない場合に使われるGrowthBookのフィーチャーフラグのデフォルト値を変更するスキルです。変更はドラフトに保存され、公開後に反映されます。

主な機能

  1. 01現在のデフォルト値と型を取得
  2. 02型に合う新しい値を検証
  3. 03ドラフトリビジョンで変更を送信
  4. 04既存のオープンドラフトを再利用
  5. 05公開前に影響範囲を提示

活用シーン

  1. 01どのルールにも一致しないユーザーの値を変更
  2. 02ブーリアンフラグのデフォルト状態を変更
  3. 03確認用にデフォルト値の変更を下書き
  4. 04公開前に非一致ユーザーへの影響を確認

MCP 対応

入力には MCP との関係についての記載がありません。

インストール

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

$npx skills add https://github.com/growthbook/skills --skill flag-default-value

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

詳細

flag-default-value

GrowthBook のフィーチャーフラグのデフォルト値を設定します。デフォルト値は、ユーザーに一致するルールがない場合に SDK が返す値です。これはフラグの基本状態であり、ターゲティングルールではありません。変更はドラフトリビジョンを経由し、反映するには公開が必要です。

すべての API 呼び出しは、同梱のヘルパー ${CLAUDE_PLUGIN_ROOT}/scripts/gb-call 経由で行います。GB_API_KEY を環境変数に設定するか、/growthbook:gb-setup によって ~/.config/growthbook/.env に書き込む必要があります。

必須入力

  • フラグ ID — ケバブケースのキーです。ユーザーが説明を提示した場合は、flag-search を使って特定します。
  • 新しいデフォルト値 — フラグの valueType と一致している必要があります。必ず文字列としてシリアライズします。

ワークフロー

1. フラグを取得する
gb-call GET /api/v2/features/<flag-id>

valueType と現在の defaultValue を取得します。変更を確認できるよう、現在のデフォルト値をユーザーに提示します。

2. 新しい値を検証する

送信前に検証します。API は書き込み時に型の不一致を検出しません。

valueType有効な defaultValue
boolean"true" または "false"(JSON のブール値ではなく文字列)
number数値として解析できる任意の文字列:"0"、"3.14"
json有効な JSON 文字列:"{\"key\":\"value\"}"
string空ではない任意の文字列

ユーザーの値が一致しない場合は処理を中断し、修正を依頼します。暗黙的な型変換は行いません。

3. ドラフト経由で変更を適用する
echo '{"defaultValue":"<string>"}' \
  | gb-call PUT /api/v2/features/<flag-id>/revisions/new/default-value -

new の特別なバージョン指定は、新しいドラフトを作成するか、既存のドラフトにアトミックに変更を追加します。返された version 番号を取得します。

4. 公開するか確認する

「このデフォルト値の変更を今すぐ公開しますか、それともドラフトのままにしますか?」

デフォルト値を変更すると、どのルールにも一致しないすべてのユーザーに影響します。影響が大きい可能性があります。公開する前に、動作の変化を明確に伝えます。

デフォルト値を <old> から <new> に変更すると、どのルールにも一致しないすべてのユーザーに影響します。<env> では現在 <rule-count> 件のルールがあり、それらすべてに一致しなかったユーザーには、これまでの <old> ではなく <new> が返されます。

公開手順は flag-publish に引き継ぎます。

ガードレール

  • ドラフトバージョンの引き継ぎ。 このセッションで前の書き込みスキルからバージョン番号が引き継がれている場合は、new ではなく明示的に使用します(例:.../revisions/42/default-value)。これにより、すべての変更が同じドラフトにまとめられます。新たに開始する場合は new を使います。これは最新の更新済みオープンドラフトを自動的に作成または再利用します。
  • defaultValue は valueType に関係なく常に文字列です。 API は文字列以外の値を拒否します。ブール値のオフは "false"、数値のゼロは "0"、空の JSON オブジェクトは "{}" です。
  • デフォルト値は強制ルールとは異なります。 デフォルト値が適用されるのは、すべてのルールに一致しない場合だけです。ターゲティング対象のユーザーに特定の値を返したい場合は、このスキルではなく flag-targeting を使います。
  • トラフィックへの影響が大きい可能性があります。 デフォルト値は、有効なすべての環境で、どのルールにも一致しないユーザー全員に適用されます。「オフ」の状態(例:"false" → "true")から変更すると、ルールがない場合に、本番トラフィックのユーザーにフィーチャーが公開される可能性があります。公開前にこの点を伝えます。
  • ブール型フラグのデフォルト値の変更は、ターゲティングルールがない場合、グローバルトグルと同じです。 ユーザーがこの点を理解していることを確認します。
  • 型の不一致は、書き込み時ではなく SDK の評価時に表面化します。 v2 のデフォルト値エンドポイントは、任意の文字列を受け付けます。defaultValue: "not-a-number" の数値フラグは、クライアントが評価するまでエラーになりません。

使用するエンドポイント

  • GET /api/v2/features/:id — フラグを取得して、現在の defaultValue と valueType を確認します
  • PUT /api/v2/features/:id/revisions/new/default-value(本文:{ "defaultValue": "<string>" })

引き継ぎ先

  • flag-search — ユーザーがフラグ ID ではなく説明を提示した場合
  • flag-targeting — ターゲティング対象のユーザーに特定の値を返すルールを追加または編集する場合
  • flag-cleanup — フラグが不要になり、アーカイブする場合
  • flag-publish — ドラフトを公開し、承認必須(400)やマージ競合(409)に対処する場合

コメント