关于 flag-create
flag-create 是用于在 GrowthBook 中创建功能标记的技能,适合需要添加新功能开关的团队。它会先检查标记键,并为每个环境显式设置为禁用状态。
主要功能
- 01检查标记键是否已占用
- 02选择值类型并确认命名
- 03解析项目与环境
- 04创建时在所有环境禁用
- 05通过 GrowthBook API 创建
适用场景
- 01为新功能创建开关
- 02创建带配置值的标记
- 03将标记归入指定项目
- 04在启用或添加规则前准备标记
MCP 相关
此输入未说明与 MCP 的关系。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ growthbook/ skills --skill flag-create安装后在 Claude Code 中输入/flag-create确认已加载。
详细介绍
flag-create
在 GrowthBook 中创建新的功能标志。我们始终在负载中为每个环境显式设置 {enabled: false},因此无论组织对新环境的默认状态设置如何,该标志创建后都会处于禁用状态——用户必须在创建后手动启用。功能标志的键是永久的;请谨慎选择名称。
所有 API 调用都通过随附的辅助工具执行:${CLAUDE_PLUGIN_ROOT}/scripts/gb-call。它需要 GB_API_KEY——可在 shell 中设置,或由 /growthbook:gb-setup 写入 ~/.config/growthbook/.env。如果缺少或无效,gb-call 的错误消息会指引你返回 /growthbook:gb-setup。
工作流
-
确认意图。 用一句话重述该标志将控制什么。如果用户想运行 A/B 测试(根据当前已有的上下文,将其转交给适当的实验技能),或想为现有标志添加规则(转交给
flag-rules),则停止。 -
检查键是否已被占用。
gb-call GET /api/v2/feature-keys确认拟定的键不在返回列表中。如果已被占用,请提出一个变体;API 会拒绝重复项,而且键创建后无法重命名。
-
选择值类型。 可选类型为
string、number、boolean、json。开关型标志默认使用boolean。仅当标志携带配置时(变体文案、阈值或结构化负载),才使用string或json。 -
解析项目(可选)。 如果用户提到了项目名称,请列出项目并选择 ID:
gb-call GET /api/v1/projects将标志限定到项目范围,比放在默认的组织级存储桶中更便于管理。如果不明确,请询问用户。
-
解析环境。 GrowthBook 要求创建负载包含列出所有环境的
environments映射。获取环境:gb-call GET /api/v1/environments构建映射,并将每个环境设为禁用。
-
确认命名。 v2 端点的正则表达式接受
[a-zA-Z0-9_.:|-](面向用户的文档和错误消息建议使用范围更窄的[a-zA-Z0-9_-])。默认采用 kebab-case(new-checkout-flow、dark-mode、pricing-experiment-2026-q2)——这符合文档建议,能让各团队的键保持一致,也可避免正则表达式日后收紧的影响。创建前向用户展示拟定的键。 -
构建负载并创建标志。 构造一个 JSON 对象:
{ "id": "<kebab-case-key>", "valueType": "boolean", "defaultValue": "false", "description": "<short description>", "environments": { "production": { "enabled": false }, "staging": { "enabled": false } }, "project": "<project-id, omit if org-wide>" }然后 POST:
echo '<payload-json>' | gb-call POST /api/v2/features - -
说明接下来会发生什么。 明确告知用户:该标志在所有环境中均处于禁用状态,并且尚无任何规则。提供两个后续操作:
- 如需在某个环境中启用该标志或添加定向规则,请使用
flag-targeting。 - 如需将此标志用作 A/B 测试中的变体开关,请使用
experiment-design,并提供该标志的 ID。
- 如需在某个环境中启用该标志或添加定向规则,请使用
防护措施
- 功能键是永久的。 GrowthBook 不允许在创建后重命名标志的
id。调用 API 前,请向用户确认拟定的名称。 owner默认为令牌所属用户。 从创建载荷中省略owner——API 会将标志归属到GB_API_KEY所属的用户。只有当用户想将标志分配给其他人时,才明确设置owner(邮箱或u_...userId)。- ID 字符集:优先使用 kebab-case。 v2 端点的正则表达式仍接受
[a-zA-Z0-9_.:|-],但面向用户的文档和错误消息推荐[a-zA-Z0-9_-]。不要建议使用包含.``:``|的 ID——未来版本可能会收紧规则。现有包含这些字符的旧键可以保留。 - 始终为每个环境显式设置
{enabled: false}。 不要依赖组织的“新环境默认状态”设置——该设置可配置,默认值可能是启用。请告知用户该标志在所有环境中均已禁用;静默的零评估(甚至更糟,意外启用评估)是 GrowthBook 中最容易踩的坑之一。 defaultValue始终序列化为字符串。 布尔值关闭时使用"false",数值使用"0",json使用 JSON 编码文本。API 会拒绝非字符串值。- v2 的环境映射中,每个环境仅包含
{enabled: bool}。 规则不再嵌套在各环境下——它们是标志上的顶层数组,之后通过flag-targeting(或直接通过 v2 revision 端点)添加。不要在每个环境中包含rules: []。 - 如果用户想要实验,请先暂停创建。 转交给
experiment-design。创建标志却不创建对应实验,是常见的困惑来源,会产生孤立标志。 - 有疑问就询问,不要猜测。 如果
valueType、defaultValue或项目不明确,请询问。标志是永久的。
使用的端点
GET /api/v2/feature-keys— 列出所有功能标志键(无分页上限)GET /api/v1/projects— 列出项目,用于将项目名称解析为 IDGET /api/v1/environments— 列出环境,用于构建environments映射POST /api/v2/features— 创建标志
创建后
响应包含标志的完整配置。向用户显示标志 ID,提醒其该标志在所有环境中均已禁用,并提供 GrowthBook UI 中该标志的链接。通过将 GB_API_URL 中的 api. 替换为 app. 来推导 <host>(云端默认值:https://app.growthbook.io)。链接:<host>/features/<flag-id>。
转交
flag-toggle— 在某个环境中启用标志flag-rules— 添加规则(会转到适当的规则类型技能)flag-default-value— 更改没有匹配规则时提供的回退值flag-metadata— 创建后设置项目、标签、描述或所有者flag-experiment— 将此标志关联到 A/B 实验experiment-design— 如果用户实际需要完整的 A/B 测试(先创建实验,再创建标志)