flag-default-value について
flag-default-valueは、ルールに一致しない場合に使われるGrowthBookのフィーチャーフラグのデフォルト値を変更するスキルです。変更はドラフトに保存され、公開後に反映されます。
主な機能
- 01現在のデフォルト値と型を取得
- 02型に合う新しい値を検証
- 03ドラフトリビジョンで変更を送信
- 04既存のオープンドラフトを再利用
- 05公開前に影響範囲を提示
活用シーン
- 01どのルールにも一致しないユーザーの値を変更
- 02ブーリアンフラグのデフォルト状態を変更
- 03確認用にデフォルト値の変更を下書き
- 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)に対処する場合