关于 flag-experiment
flag-experiment 是将 GrowthBook 功能标志规则关联到独立管理实验的 Skill。它指导变体映射和规则创建,并将定向编辑与实验变更交由相应 Skill 处理。
主要功能
- 01创建 experiment-ref 标志规则
- 02获取标志与实验详情
- 03将实验变体映射为标志值
- 04通过 flag-targeting 编辑定向
- 05将草稿规则交接以供发布
适用场景
- 01将已有实验关联到功能标志
- 02为实验变体设置标志值
- 03调整实验关联规则的定向
- 04准备待发布的草稿规则
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ growthbook/ skills --skill flag-experiment安装后在 Claude Code 中输入/flag-experiment确认已加载。
详细介绍
flag-experiment
为 GrowthBook 功能开关添加 experiment-ref 规则。此规则会将开关规则关联到单独管理的 GrowthBook 实验对象——实验是变体、指标和分析的事实来源。
所有 API 调用都通过随附的辅助脚本完成:${CLAUDE_PLUGIN_ROOT}/scripts/gb-call。需要在环境变量中设置 GB_API_KEY,或通过 /growthbook:gb-setup 将其写入 ~/.config/growthbook/.env。
工作流
路径 A — 添加 experiment-ref 规则
当用户已有 GrowthBook 实验,或想通过功能开关启动实验时,使用此路径。
1. 获取功能开关并确认实验存在:
gb-call GET /api/v2/features/<flag-id>
记录 valueType——后续需要用它正确映射变体值。
gb-call GET /api/v1/experiments/<experiment-id>
记录实验的 variations 数组。每个变体都有一个 id(例如 var_abc123)和一个 name。配置规则时需要这些信息。
如果用户还没有实验,请转到 experiment-launch——它会端到端处理实验创建和功能开关配置。重要的是,如果功能开关已存在,experiment-launch 会检测到它(创建时遇到 409,然后走复用路径),并将实验关联到现有功能开关,而不是创建新的功能开关。告诉用户:“experiment-launch 会找到你现有的功能开关——只需提供相同的开关键值。”
2. 映射变体值:
确认每个实验变体应提供的功能开关值。功能开关的 valueType 决定值的格式:
boolean:通常为处理组使用"true",对照组使用"false"string/number/json:询问用户每个变体对应的值
3. 构建载荷:
{
"rule": {
"type": "experiment-ref",
"experimentId": "<exp-id>",
"variations": [
{ "variationId": "<var_control_id>", "value": "false" },
{ "variationId": "<var_treatment_id>", "value": "true" }
],
"description": "<optional>",
"enabled": true,
"allEnvironments": false,
"environments": ["<env-id>"]
}
}
variations 数组中的变体顺序必须与实验中的变体顺序一致。如果用户省略所有 variationId 字段,服务端会自动从实验中填入这些字段;不过显式提供会更安全,也能避免出现无提示的不匹配。
4. 发布规则:
echo '<payload>' | gb-call POST /api/v2/features/<flag-id>/revisions/new/rules -
记录返回的 version。交接给 flag-publish。
路径 B — 编辑现有 experiment-ref 规则的定向条件
服务端允许对 experiment-ref 规则修改 enabled、condition、savedGroups、prerequisites、作用范围(allEnvironments/environments)和 description。对此请使用 flag-targeting——它包含完整的条件决策树,以及针对敏感字段的警告并确认防护机制。
不要直接修改 experiment-ref 规则上的 experimentId 或 variations。 实验才是事实来源。仅更改功能开关规则中的这些字段,会导致功能开关与实验之间出现不易察觉的偏差。如果用户需要更改实验,请转到 experiment-launch 或使用 GrowthBook UI。
防护措施
- 草稿版本沿用。 如果本会话中之前的写入技能已提供版本号,请明确使用该版本号,而不要使用
new。如果是全新开始,则使用new。 variations的顺序必须与实验中的变体顺序一致。 如果顺序错误,变体分配就会错位——对照组用户会看到实验组的值,反之亦然。构建载荷前,务必先读取实验以确认变体顺序。- 可以自动填充
variationId,但有风险。 如果省略所有variationId字段,服务端会根据实验填入这些值。只有当实验的变体数量与用户指定的值数量完全一致时,才使用此方式,否则服务端可能会悄无声息地错配。 - 编辑现有实验引用规则的
experimentId或variations时,必须先警告并征求确认。 API 允许修改这些字段,但这会导致标志与实验不一致。应用补丁前,务必说明风险并取得明确确认。 - 服务端会拒绝对实验引用规则应用以下补丁:
value、coverage、controlValue。这些是实验的属性,不属于标志规则。如果用户尝试设置这些字段,请立即停止。 - 实验必须位于同一数据源中。 如果实验使用的数据源与组织的默认数据源不匹配,指标查询可能会失败。如果用户要在内联规则中指定指标,请确认数据源一致。
- 每个标志针对每个实验使用一条实验引用规则是标准做法。多条规则指向同一个实验会造成分桶重叠并破坏分析结果。
使用的端点
GET /api/v2/features/:id— 获取标志状态、valueType 和当前规则GET /api/v1/experiments/:id— 获取实验及其变体POST /api/v2/features/:id/revisions/new/rules— 添加实验引用规则
交接
flag-search— 仅有名称或描述时,用于查找标志 IDexperiment-launch— 创建新实验,并将其端到端关联到标志flag-targeting— 编辑现有实验引用规则的定位条件、范围或已保存的分组flag-rules— 重新排序或删除实验规则experiment-stop— 停止实验;停止后,使用 flag-rules 清理实验引用规则flag-publish— 发布草稿