用途:这是扩展 posthog-definitions 以支持新 PostHog 资源类型的操作手册,说明改什么、为什么改,而非逐行代码。适用于希望把新资源作为代码管理的场景,例如“添加 feature flags”“用 TypeScript 定义 cohorts”“为 apply 添加 survey 支持”。若只需一次性 API 调用或脚本,则不适用。
主要能力与流程:先阅读 docs/implementation/architecture.md、identity.md、apply.md,并对照 insight(较简单)与 dashboard(含跨资源引用)两套现有实现。每个新资源位于 src/resources/<resource>/ 独立目录,包含 sdk.ts、client.ts、pipeline.ts、pipeline.test.ts、client.test.ts、index.ts,并在 src/resources/index.ts 的 RESOURCES 数组和 src/index.ts 中注册导出。
安全不变量(不可妥协):CLI 绝不读取、修改或删除未打标签的资源。需复制两种机制:list 过滤仅返回含 iac:<resource>:<...> 标签的行;写入前重新获取并确认标签仍在,否则抛 SafetyViolationError。无 tags 字段的资源改用 description 末尾 HTML 注释标记承载身份。
其他要点:用 Zod 校验每个 API 响应(新资源走校验路径,不用旧式类型断言);复用 specHash 做规范化投影哈希;跨资源引用只哈希 key、执行时解析 id;validate 返回全部问题而非首个;displayFoo 与 displayFooFromServer 形状须一致;用 Node 内置测试运行器,测试用例 500ms 超时。资源 slug 一旦选定不可更改。
限制:资料未提供具体命令、完整代码示例与官方文档链接,部分内容在原文中被截断(如示例部分)。