mcpField
I
instrument-feature-flags

instrument-feature-flags

github.com/posthog开发76536 次安装今天更新
代码仓库

关于 instrument-feature-flags

instrument-feature-flags 是用于在应用中接入 PostHog 功能标志的开发技能,适用于新增功能的安全发布和代码审查。它会识别项目平台、参考对应实现指南,并指导标志创建、发布条件规划和代码接入。

主要功能

  1. 01识别项目语言、框架和包管理器
  2. 02按平台查阅实现指南
  3. 03查找或创建 PostHog 功能标志
  4. 04规划发布条件并接入代码
  5. 05通过环境变量配置 PostHog

适用场景

  1. 01为新功能添加分阶段发布控制
  2. 02为现有 PostHog 项目接入标志检查
  3. 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.md
android.md
api.md
best-practices.md
COMMANDMENTS.md
django.md
dotnet.md
elixir.md
flask.md
flutter.md
go.md
ios.md
java.md
laravel.md
next-js.md
nodejs.md
php.md
python.md
react-native.md
react.md
ruby-on-rails.md
ruby.md
rust.md
usage.md
web.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 - Django
  • references/flask.md - Flask
  • references/php.md - PHP 功能标志安装
  • references/laravel.md - Laravel
  • references/ruby.md - Ruby 功能标志安装
  • references/ruby-on-rails.md - Ruby on Rails
  • references/go.md - Go 功能标志安装
  • references/java.md - Java 功能标志安装
  • references/rust.md - Rust 功能标志安装
  • references/dotnet.md - .NET 功能标志安装
  • references/dotnet.md - .NET
  • references/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.js
  • references/adding-feature-flag-code.md - 添加功能标志代码
  • references/best-practices.md - 适用于生产环境的标志最佳实践
  • references/COMMANDMENTS.md - 集成必须遵循的框架特定规则

每份平台参考文件都包含特定于 SDK 的安装、标志评估和代码示例。请找到与用户技术栈匹配的文件。如果未列出,请使用 API 参考作为后备。

关键原则

  • 环境变量:始终使用环境变量存储 PostHog 密钥。切勿将其硬编码。
  • 尽量少改动:在现有逻辑旁添加功能标志代码。不要替换或重构现有代码。
  • 优先使用布尔标志:除非用户明确要求使用多变量标志,否则默认进行布尔标志检查。
  • 尽可能在服务端执行:优先在服务端评估标志,以避免 UI 闪烁。

评论

支持 Markdown