SuperAPI AI 工具集

survey-sdk-audit

测试与质量

查看项目

更新于 10-16 08:07

技能介绍

用途:审计 PostHog 问卷功能在各 SDK 中的支持情况与最低版本要求,用于维护 surveyVersionRequirements.ts 及 SDK 功能对齐文档。\n\n主要能力与流程:\n1. 环境检查:先对 $POSTHOG_JS_PATH、$POSTHOG_IOS_PATH、$POSTHOG_ANDROID_PATH、$POSTHOG_FLUTTER_PATH 执行 ls 验证路径,缺失时向用户询问;可将路径保存到 .claude/settings.local.json 的 env 与 permissions(Read/Grep 对应 SDK 仓库路径)。\n2. 理解功能:查看 surveyVersionRequirements.ts 中对应 check 函数,如 s.conditions?.deviceTypes、s.appearance?.fontFamily、s.conditions?.urlMatchType。\n3. 查版本:先查各 SDK CHANGELOG;未找到再用 git log -S 查提交并配合 git tag --contains 定位首个包含版本。Flutter 需查 iOS podspec 的 s.dependency 'PostHog' 与 Android build.gradle 的原生依赖版本。\n4. 验证实现:字段存在不等于功能实现,须检查过滤逻辑与渲染代码。参考实现为 posthog-js 浏览器端(packages/browser/src/extensions/surveys.ts 等);移动端参考 posthog-react-native 的 getActiveMatchingSurveys.ts。需对比 canActivateRepeatedly、hasEvents、getSurveySeen 等工具函数行为。注意 iOS/Android 有 linkedFlagKey 但未实现 linkedFlagVariant 校验、重复激活条件检查不一致等陷阱。Android 为纯 delegate 模式,无内置 UI,暴露 display model 即视为支持(issue: false)。\n5. 产出格式:feature、sdkVersions、unsupportedSdks(含 issue 链接或 false)、check 函数。\n6. 建 issue:先搜索 PostHog/posthog 与对应 SDK 仓库是否已有同类 issue,再按仓库标签(如 feature/surveys;Survey、enhancement)创建,并附模板内容。\n7. 收尾:更新 surveyVersionRequirements.ts、运行 pnpm --filter=@posthog/frontend build:survey-sdk-docs 重新生成 sdk-feature-support.mdx,并把新 issue 加到跟踪 issue https://github.com/PostHog/posthog/issues/45658 的任务列表。更新跟踪 issue 正文时先导出到 /tmp/tracking_issue_body.md,用 Edit 修改经用户确认后再用 gh api PATCH 提交。\n\n限制与注意:$ 环境变量在 Bash 工具中不保证展开,优先用 Read/Grep 工具;不要猜测版本,以 changelog 或 git 历史为准;测试代码不算实现;Web 专属功能(URL 定位、CSS 选择器)对移动端标记为不适用。