关于 omnibus-instrument-integration
用于在应用中添加或审查 PostHog SDK 集成的技能。它会识别项目技术栈,并指导安装、初始化、用户识别、配置及验证,覆盖多种框架和语言。
主要功能
- 01识别框架与包管理器
- 02提供框架专属设置参考
- 03指导 SDK 安装与初始化
- 04涵盖用户识别和环境变量
- 05包含验证与清理步骤
适用场景
- 01为新应用添加 PostHog
- 02审查 PostHog 设置相关的拉取请求
- 03配置前后端 PostHog 集成
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ posthog/ skills --skill omnibus-instrument-integration安装后在 Claude Code 中输入/omnibus-instrument-integration确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/android.mdangular.mdastro.mddjango.mdEXAMPLE-android.mdEXAMPLE-angular.mdEXAMPLE-astro-hybrid.mdEXAMPLE-astro-ssr.mdEXAMPLE-astro-static.mdEXAMPLE-astro-view-transitions.mdEXAMPLE-django.mdEXAMPLE-expo.mdEXAMPLE-fastapi.mdEXAMPLE-flask.mdEXAMPLE-javascript-node.mdEXAMPLE-javascript-web.mdEXAMPLE-laravel.mdEXAMPLE-next-app-router.mdEXAMPLE-next-pages-router.mdEXAMPLE-nuxt-3.6.mdEXAMPLE-nuxt-4.mdEXAMPLE-python.mdEXAMPLE-react-native.mdEXAMPLE-react-react-router-6.mdEXAMPLE-react-react-router-7-data.mdEXAMPLE-react-react-router-7-declarative.mdEXAMPLE-react-react-router-7-framework.mdEXAMPLE-react-tanstack-router-code-based.mdEXAMPLE-react-tanstack-router-file-based.mdEXAMPLE-react-vite.md详细介绍
添加 PostHog SDK 集成
使用此技能将 PostHog SDK 添加到应用中。适用于首次设置 PostHog,或审核需要初始化 PostHog 的 PR。涵盖 SDK 安装、提供程序设置和基本配置。支持任何框架或语言。
支持的框架:Next.js、React、React Router、Vue、Nuxt、TanStack Start、SvelteKit、Astro、Angular、Django、Flask、FastAPI、Laravel、Ruby on Rails、Android、Swift、React Native、Expo、Node.js 和原生 JavaScript。
说明
请按顺序执行以下步骤:
步骤 1:分析代码库并检测平台。
- 查找依赖文件(package.json、requirements.txt、Gemfile、composer.json、go.mod 等),以确定框架和语言。
- 查找锁文件(pnpm-lock.yaml、package-lock.json、yarn.lock、bun.lockb),以确定包管理器。
- 检查是否已有 PostHog 配置。如果 PostHog 已安装并初始化,请勿修改其代码。告知用户并跳至验证步骤。
步骤 2:研究集成方式。 2.1. 在下方查找与检测到的框架匹配的参考文件——它是 SDK 初始化、提供程序设置和配置模式的权威来源。现在阅读该文件。 2.2. 如果没有匹配的参考文件,请使用常识并进行网页搜索。优先搜索 posthog.com/docs。
步骤 3:安装 PostHog SDK。
- 为检测到的平台添加 PostHog SDK 包。请勿手动编辑 package.json——使用包管理器的安装命令。
- 始终在后台任务中安装包。不要等待安装完成;启动安装后立即继续其他工作。
步骤 4:初始化 PostHog。
- 按照框架参考说明初始化的位置和方式。不同框架之间的差异可能很大(例如,Next.js 15.3+ 使用 instrumentation-client.ts,Django 使用 AppConfig.ready(),Flask 使用 create_app())。
- 如果框架需要,请设置 PostHog 提供程序/包装器组件。
步骤 5:识别用户。
- 在客户端的登录和注册事件中添加 PostHog
identify()调用。 - 如果同时存在前端和后端,请通过
X-POSTHOG-DISTINCT-ID和X-POSTHOG-SESSION-ID标头,将客户端会话和 distinct ID 传递给服务端代码。
步骤 6:设置环境变量。
- 将 PostHog API 密钥和主机存储在环境变量中(例如
.env或框架专用的环境文件)。 - 在代码中引用这些环境变量,不要硬编码。
步骤 7:验证并清理。
- 检查项目是否存在错误。查找 package.json 中的类型检查或构建脚本。
- 确保创建的所有组件都已实际使用。
- 运行 package.json 中找到的任何代码检查或类似 Prettier 的脚本。
参考文件
references/EXAMPLE-next-app-router.md- next-app-router 示例项目代码references/EXAMPLE-next-pages-router.md- next-pages-router 示例项目代码references/EXAMPLE-react-react-router-6.md- react-react-router-6 示例项目代码references/EXAMPLE-react-react-router-7-framework.md- react-react-router-7-framework 示例项目代码references/EXAMPLE-react-react-router-7-data.md- react-react-router-7-data 示例项目代码references/EXAMPLE-react-react-router-7-declarative.md- react-react-router-7-declarative 示例项目代码references/EXAMPLE-react-vite.md- react-vite 示例项目代码references/EXAMPLE-nuxt-3.6.md- nuxt-3.6 示例项目代码references/EXAMPLE-nuxt-4.md- nuxt-4 示例项目代码references/EXAMPLE-vue-3.md- vue-3 示例项目代码references/EXAMPLE-react-tanstack-router-file-based.md- react-tanstack-router-file-based 示例项目代码references/EXAMPLE-react-tanstack-router-code-based.md- react-tanstack-router-code-based 示例项目代码references/EXAMPLE-tanstack-start.md- tanstack-start 示例项目代码references/EXAMPLE-sveltekit.md- sveltekit 示例项目代码references/EXAMPLE-astro-static.md- astro-static 示例项目代码references/EXAMPLE-astro-view-transitions.md- astro-view-transitions 示例项目代码references/EXAMPLE-astro-ssr.md- astro-ssr 示例项目代码references/EXAMPLE-astro-hybrid.md- astro-hybrid 示例项目代码references/EXAMPLE-angular.md- angular 示例项目代码references/EXAMPLE-javascript-node.md- javascript-node 示例项目代码references/EXAMPLE-javascript-web.md- javascript-web 示例项目代码references/EXAMPLE-django.md- django 示例项目代码references/EXAMPLE-flask.md- flask 示例项目代码references/EXAMPLE-fastapi.md- fastapi 示例项目代码references/EXAMPLE-python.md- python 示例项目代码references/EXAMPLE-laravel.md- laravel 示例项目代码references/EXAMPLE-ruby-on-rails.md- ruby-on-rails 示例项目代码references/EXAMPLE-ruby.md- ruby 示例项目代码references/EXAMPLE-android.md- android 示例项目代码references/EXAMPLE-swift.md- swift 示例项目代码references/EXAMPLE-react-native.md- react-native 示例项目代码references/EXAMPLE-expo.md- expo 示例项目代码references/next-js.md- Next.js - 文档references/react.md- React - 文档references/react-router-v6.md- React router v6 - 文档references/react-router-v7-framework-mode.md- React router v7 framework mode (remix v3) - 文档references/react-router-v7-data-mode.md- React router v7 data mode - 文档references/react-router-v7-declarative-mode.md- React router v7 declarative mode - 文档references/nuxt-js-3-6.md- Nuxt.js (v3.0 to v3.6) - 文档references/nuxt-js.md- Nuxt.js - 文档references/vue-js.md- Vue.js - 文档references/tanstack-start.md- Tanstack start - 文档references/svelte.md- Svelte - 文档references/astro.md- Astro - 文档references/angular.md- Angular - 文档references/js.md- JavaScript web - 文档references/posthog-js.md- PostHog JavaScript web SDKreferences/node.md- Node.js - 文档references/posthog-node.md- PostHog Node.js SDKreferences/django.md- Django - 文档references/flask.md- Flask - 文档references/python.md- Python - 文档references/posthog-python.md- PostHog python SDKreferences/laravel.md- Laravel - 文档references/ruby-on-rails.md- Ruby on rails - 文档references/ruby.md- Ruby - 文档references/android.md- Android - 文档references/ios.md- Ios - 文档references/react-native.md- React native - 文档references/identify-users.md- 识别用户 - 文档 每个框架参考都包含特定于 SDK 的安装、初始化和使用模式。请找到与用户技术栈匹配的参考。
核心原则
- 环境变量:始终使用环境变量存储 PostHog 密钥。切勿将其硬编码。
- 最小改动:在现有集成旁添加 PostHog 代码。不要替换或重构现有代码。
- 遵循示例:实现应尽可能遵循示例项目的模式。
- 分析约定:将事件名称、属性名称和功能标志键视为分析约定的一部分。复用项目中已有的名称和模式。引入新名称时,应确保清晰、描述性强,并与现有约定保持一致。
评论
支持 Markdown