关于 flag-metadata
用于修改 GrowthBook 现有功能标志管理元数据的技能,面向维护标志配置的团队。它通过草稿修订提交字段变更,并在发布前要求确认。
主要功能
- 01修改描述、负责人和项目
- 02更新标签及自定义字段
- 03配置 JSON Schema 和 neverStale
- 04通过草稿修订应用变更
适用场景
- 01调整功能标志的负责人或项目
- 02更新标志说明和标签
- 03修改自定义字段或 JSON Schema
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ growthbook/ skills --skill flag-metadata安装后在 Claude Code 中输入/flag-metadata确认已加载。
详细介绍
flag-metadata
更新现有 GrowthBook 功能标志的管理元数据。与其他所有标志变更一样,元数据变更(描述、所有者、项目、标签、自定义字段、JSON 架构)会经过草稿修订版 — 必须先发布才会生效。
所有 API 调用都通过捆绑的辅助脚本完成:${CLAUDE_PLUGIN_ROOT}/scripts/gb-call。需要在环境变量中设置 GB_API_KEY,或由 /growthbook:gb-setup 将其写入 ~/.config/growthbook/.env。
必填输入
开始前收集:
- 标志 ID — kebab-case 键。如果用户提供的是描述,先使用 flag-search 解析。
- 要更改的内容 — 以下一项或多项:description、owner、project、tags、neverStale、customFields、jsonSchema。
工作流
1. 获取当前元数据
gb-call GET /api/v2/features/<flag-id>
向用户展示他们即将更改的字段的当前值。在修改之前,确认拟议的新值。
2. 解析项目 ID(如果要更改项目)
API 不接受项目名称 — 先将名称解析为 ID:
gb-call GET /api/v1/projects
将用户提供的项目名称与返回列表匹配,并使用 id 字段。
3. 通过草稿应用元数据变更
echo '<payload>' | gb-call PUT /api/v2/features/<flag-id>/revisions/new/metadata -
new 这个特殊版本会创建一个新草稿,或以原子方式叠加到现有草稿上。
支持的字段及其类型:
{
"description": "<string>",
"owner": "<email or u_... userId>",
"project": "<project-id or empty string to clear>",
"tags": ["<tag>", "<tag>"],
"neverStale": true,
"customFields": { "<key>": "<value>" },
"jsonSchema": { "<json-schema-object>" }
}
仅发送用户想要更改的字段。不要回传未更改的字段。
记录返回的 version 编号,以用于发布步骤。
4. 提议发布
询问:“现在发布此元数据变更,还是保留为草稿?”
元数据变更风险较低 — 默认立即提议发布。将发布步骤交给 flag-publish 处理,包括任何所需审批或合并冲突的处理。
防护措施
- 草稿版本传递。 如果本次会话中先前写入技能的上下文已有版本号,请明确使用该版本(例如
.../revisions/42/metadata),而不是new。这样可确保所有变更都在同一草稿中。若是全新操作,则使用new— 它会自动创建或复用最近更新的开放草稿。 owner接受电子邮件或u_...用户 ID。 请向用户索取要分配给的人员的电子邮件或用户 ID。如果他们想分配给自己,请索取其电子邮件或用户 ID — 没有可读取的环境变量默认值。如果用户提供的是姓名而非电子邮件,请要求澄清 — API 不接受显示名称。project是 ID,不是名称。 设置前务必通过GET /api/v1/projects解析项目名称。空字符串""会清除项目关联(将标志移回组织级范围)。tags会替换整个数组。 它不是追加操作 — 如果标志已有标签,而用户只想添加一个,请先获取当前标签,追加后发送完整的更新数组。neverStale: true会永久让该标志退出过期检测。 适用于紧急关闭开关、运维切换项和许可证门控。请提醒用户:设置后,即使数月未触碰,该标志也不会出现在过期标志报告中。jsonSchema仅限企业版。 如果组织未启用此功能,API 会返回错误 — 请明确告知用户。- 元数据变更仍会经过审批工作流。 看似无关紧要的描述变更也可能触发组织的审核关卡。请使用 flag-publish,并预期会遇到与其他修订版相同的所需审批/合并冲突失败情况。
customFields键必须与组织配置的自定义字段定义相匹配。 如果组织无法识别该键,API 可能会静默丢弃或报错。请确认自定义字段键名称正确。
使用的端点
GET /api/v2/features/:id— 获取当前元数据以供确认GET /api/v1/projects— 将项目名称解析为 IDPUT /api/v2/features/:id/revisions/new/metadata— 将元数据变更应用到草稿
交接
flag-search— 如果用户提供的是描述,而不是标志 IDflag-default-value— 更改没有规则匹配时标志所提供的内容flag-cleanup— 完全归档或删除标志flag-publish— 发布草稿,并处理需要审批的情况(400)和合并冲突(409)
评论
支持 Markdown