关于 omnibus-instrument-feature-flags
用于在应用中添加 PostHog 功能标志,或配置其 SDK 的编码技能。它会识别项目技术栈、参考对应平台文档,并指导标志设置、发布规划和最小化代码改动。
主要功能
- 01识别语言和框架
- 02查阅平台专属 SDK 文档
- 03通过 PostHog MCP 查找或创建标志
- 04规划发布和定向条件
- 05使用环境变量添加最小化标志检查
适用场景
- 01控制新实现功能的启用
- 02在审查拉取请求时添加标志
- 03为尚未安装 SDK 的项目配置 PostHog
MCP 相关
连接 PostHog MCP 服务时,技能会使用其工具查找或创建功能标志。它也可使用 env-file-tools MCP 服务检查和设置环境变量。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ posthog/ skills --skill omnibus-instrument-feature-flags安装后在 Claude Code 中输入/omnibus-instrument-feature-flags确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/adding-feature-flag-code.mdandroid.mdapi.mdbest-practices.mddotnet.mdelixir.mdflutter.mdgo.mdios.mdjava.mdnext-js.mdnodejs.mdphp.mdpython.mdreact-native.mdreact.mdruby.mdrust.mdweb.md详细介绍
添加 PostHog 功能标记
使用此技能添加 PostHog 功能标记,以控制新功能或变更功能的启用。在实现功能或审查 PR 后使用此技能,确保通过功能标记安全地逐步发布。如果尚未安装 PostHog,此技能也涵盖 SDK 的初始设置。支持任何平台或语言。
支持的平台:React、Next.js、React Native、Web(JavaScript)、Node.js、Python、PHP、Ruby、Go、Java、Rust、.NET、Elixir、Android、iOS、Flutter 和 REST API。
说明
按顺序执行以下步骤:
第 1 步:分析代码库并检测平台。
- 查看依赖文件(package.json、requirements.txt、go.mod、Gemfile、composer.json 等),以确定语言和框架。
- 查看锁定文件(pnpm-lock.yaml、package-lock.json、yarn.lock、bun.lockb),以确定包管理器。
- 检查是否已配置 PostHog(SDK 初始化、环境变量等)。如果已安装并初始化 PostHog,请跳至第 3 步。
第 2 步:研究埋点。(如果已配置 PostHog,请跳过。) 2.1. 查找下方与检测到的平台相匹配的参考文件——该文件是 SDK 初始化、标记评估方法和特定框架模式的权威来源。现在阅读该文件。 2.2. 如果没有匹配的参考文件,请使用已有知识并进行网络搜索。优先搜索 posthog.com/docs。
第 3 步:创建或查找功能标记。
- 检查是否已连接 PostHog MCP 服务。如果可用,请使用其工具搜索用户希望埋点的现有功能标记,或创建新的标记。
- 如果没有可用的 MCP 服务,请指示用户在 PostHog 控制面板中创建标记。
第 4 步:规划发布条件。
- 确定发布策略(按百分比发布、按用户定位、按群组定位等)。
- 规划如何在代码中通过功能标记控制新功能。
第 5 步:为功能添加埋点。
- 按照特定平台的参考模式添加功能标记代码。
- 尽可能使用服务端评估,以避免 UI 闪烁。
- 不要改变现有文件的基本架构。尽量只做必要且针对性强的增补。
- 尝试写入文件前,必须立即读取该文件。
第 6 步:设置环境变量。
- 如果已连接 env-file-tools MCP 服务,请使用 check_env_keys 查看已有密钥,然后使用 set_env_values 创建或更新 PostHog API 密钥和主机地址。
- 在代码中引用这些环境变量,而不要硬编码。
参考文件
references/react.md- React 功能标志安装 - 文档references/react-native.md- React Native 功能标志安装 - 文档references/web.md- Web 功能标志安装 - 文档references/nodejs.md- Node.js 功能标志安装 - 文档references/python.md- Python 功能标志安装 - 文档references/php.md- Php 功能标志安装 - 文档references/ruby.md- Ruby 功能标志安装 - 文档references/go.md- Go 功能标志安装 - 文档references/java.md- Java 功能标志安装 - 文档references/rust.md- Rust 功能标志安装 - 文档references/dotnet.md- .net 功能标志安装 - 文档references/elixir.md- Elixir 功能标志安装 - 文档references/android.md- Android 功能标志安装 - 文档references/ios.md- Ios 功能标志安装 - 文档references/flutter.md- Flutter 功能标志安装 - 文档references/api.md- API 功能标志安装 - 文档references/next-js.md- Next.js - 文档references/adding-feature-flag-code.md- 添加功能标志代码 - 文档references/best-practices.md- 功能标志最佳实践 - 文档
每个平台参考文件都包含特定于 SDK 的安装、标志评估和代码示例。请查找与用户技术栈匹配的文件。如果未列出,请使用 API 参考作为后备。
关键原则
- 环境变量:始终使用环境变量存储 PostHog 密钥。切勿将其硬编码。
- 最小改动:在现有逻辑旁添加功能标志代码。不要替换或重构现有代码。
- 优先使用布尔标志:除非用户明确要求多变量标志,否则默认进行布尔标志检查。
- 尽可能在服务端执行:优先在服务端评估标志,以避免 UI 闪烁。