用途:确定 PostHog 仓库中某个文件、目录或代码路径归哪个团队所有,或反查某团队拥有的全部代码。
主要能力:按顺序检查两个来源。products/*/product.yaml 是 products/ 下的权威来源,在 owners: 中以裸 slug 列出负责团队,并拥有 products/<name>/** 全部内容,因其位于所拥有的目录内而不会过期。.github/CODEOWNERS 与 CODEOWNERS-soft 是 products/ 之外路径的备份,前者为硬性/阻断规则(多为基础设施),后者承载共享代码的大部分产品映射。
使用方式:先运行 ownership.js 做确定性解析,它从自身位置定位仓库根目录,并用 git ls-files 枚举受跟踪文件。命令示例: S=.agents/skills/establishing-code-ownership/ownership.js node $S file posthog/hogql/printer.py(加 --all 查看所有匹配规则) node $S team team-surveys(slug 或 @PostHog/ 句柄均可) node $S unowned(可追加路径前缀限定范围) 脚本使用与 CI 相同的 GitHub 忠实匹配器 .github/scripts/codeowners.js。优先级为:products/<name>/** 用 product.yaml;否则阻断性 CODEOWNERS 所有者;否则最后匹配的 CODEOWNERS-soft 规则。
限制:不追踪生成文件到其源文件所有者,不查阅手册,不搜索 Slack。无所有者或生成文件时需继续手动步骤。生成文件应追溯到其输入来源并报告逻辑所有者,同时标记差距。反查团队代码时需同时检查两个来源,并验证 CODEOWNERS-soft 路径是否仍存在,因为其会漂移。最后手段是功能所有权手册,再最后是 Slack,二者均需标记可能过时。slug 与句柄形式不统一,无法解析时可两种形式都试。