关于 instrument-feature-flags
instrument-feature-flags 是用于在应用中接入 PostHog 功能标志的开发技能,适用于新增功能的安全发布和代码审查。它会识别项目平台、参考对应实现指南,并指导标志创建、发布条件规划和代码接入。
主要功能
- 01识别项目语言、框架和包管理器
- 02按平台查阅实现指南
- 03查找或创建 PostHog 功能标志
- 04规划发布条件并接入代码
- 05通过环境变量配置 PostHog
适用场景
- 01为新功能添加分阶段发布控制
- 02为现有 PostHog 项目接入标志检查
- 03审查 PR 中的功能标志实现
MCP 相关
若已连接 PostHog MCP 服务,技能可用其工具查找或创建功能标志,并获取项目令牌;未连接时会指导用户在控制台创建标志。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ posthog/ skills --skill instrument-feature-flags安装后在 Claude Code 中输入/instrument-feature-flags确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/adding-feature-flag-code.mdandroid.mdapi.mdbest-practices.mdCOMMANDMENTS.mddjango.mddotnet.mdelixir.mdflask.mdflutter.mdgo.mdios.mdjava.mdlaravel.mdnext-js.mdnodejs.mdphp.mdpython.mdreact-native.mdreact.mdruby-on-rails.mdruby.mdrust.mdusage.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、pubspec.yaml、Podfile、Package.swift、requirements.txt、go.mod、Gemfile、composer.json、mix.exs 等),以确定语言和框架。
查找锁定文件(pnpm-lock.yaml、package-lock.json、yarn.lock、bun.lockb、go.sum、pubspec.lock、Podfile.lock、Package.resolved、mix.lock),以确定包管理器。
- 检查是否已设置 PostHog(SDK 初始化、环境变量等)。如果已安装并初始化 PostHog,跳到步骤 3。
步骤 2:研究埋点。(如果已设置 PostHog,则跳过。) 2.1. 在下方找到与检测到的平台匹配的参考文件——它是 SDK 初始化、标志评估方法和特定框架模式的权威来源。现在读取该文件。 2.2. 如果没有匹配的参考文件,请依靠通用知识并进行网页搜索。优先在 posthog.com/docs 中搜索。
步骤 3:创建或查找功能标志。
- 检查是否已连接 PostHog MCP 服务。如果已连接,使用其工具搜索用户希望添加埋点的现有功能标志,或创建新标志。
- 如果未连接 MCP 服务,请指导用户在 PostHog 控制台中创建标志。
步骤 4:规划发布条件。
- 确定发布策略(按百分比分批发布、用户定向、群组定向等)。
- 规划如何在代码中通过功能标志控制新功能。
步骤 5:为功能添加埋点。
- 按照平台特定的参考模式添加功能标志代码。
- 尽可能使用服务端评估,以避免 UI 闪烁。
- 不要改动现有文件的基本架构。改动应尽量精简、明确。
- 必须在尝试写入文件之前立即读取该文件。
步骤 6:设置环境变量。
- 检查项目是否已配置 PostHog 环境变量(例如在
.env、.env.local或特定框架的环境文件中)。如果已有有效值,则跳过此步骤。 - 如果缺少 PostHog 项目令牌,使用 PostHog MCP 服务的
projects-get工具获取项目的api_token。如果返回多个项目,请询问用户要使用哪个项目。如果未连接 PostHog MCP 服务或尚未通过身份验证,请向用户索取 PostHog 项目令牌。 - 对于 PostHog 主机 URL:检查 MCP 响应中的
projects-get是否包含region字段——US对应https://us.i.posthog.com,EU对应https://eu.i.posthog.com。如果 MCP 响应和现有项目配置中都没有区域信息,请询问用户:“您使用的是 PostHog US Cloud 还是 EU Cloud?”不要默认使用 US Cloud。 - 按照框架的命名约定,将这些值写入相应的环境文件。
- 在代码中引用这些环境变量,而不要将值硬编码。
参考文件
references/react.md- React 功能标志安装references/react-native.md- React Native 功能标志安装references/web.md- Web 功能标志安装references/nodejs.md- Node.js 功能标志安装references/python.md- Python 功能标志安装references/django.md- Djangoreferences/flask.md- Flaskreferences/php.md- PHP 功能标志安装references/laravel.md- Laravelreferences/ruby.md- Ruby 功能标志安装references/ruby-on-rails.md- Ruby on Railsreferences/go.md- Go 功能标志安装references/java.md- Java 功能标志安装references/rust.md- Rust 功能标志安装references/dotnet.md- .NET 功能标志安装references/dotnet.md- .NETreferences/elixir.md- Elixir 功能标志安装references/android.md- Android 功能标志安装references/ios.md- iOS 功能标志安装references/usage.md- iOS SDK 用法references/flutter.md- Flutter 功能标志安装references/api.md- API 功能标志安装references/next-js.md- Next.jsreferences/adding-feature-flag-code.md- 添加功能标志代码references/best-practices.md- 适用于生产环境的标志最佳实践references/COMMANDMENTS.md- 集成必须遵循的框架特定规则
每份平台参考文件都包含特定于 SDK 的安装、标志评估和代码示例。请找到与用户技术栈匹配的文件。如果未列出,请使用 API 参考作为后备。
关键原则
- 环境变量:始终使用环境变量存储 PostHog 密钥。切勿将其硬编码。
- 尽量少改动:在现有逻辑旁添加功能标志代码。不要替换或重构现有代码。
- 优先使用布尔标志:除非用户明确要求使用多变量标志,否则默认进行布尔标志检查。
- 尽可能在服务端执行:优先在服务端评估标志,以避免 UI 闪烁。