用途
该技能会检查连接到 PlanetScale 的应用仓库,推荐合适的 SQLCommenter 风格查询标记(query tagging)方案,使 PlanetScale Insights 和 Postgres Traffic Control 能把查询归因到具体的应用代码路径。技能明确说明:未经批准,不会编辑文件或安装依赖。
仓库检查内容
技能首先识别仓库的以下信息:
- 语言与框架
- ORM 或查询构建器
- 数据库适配器
- 迁移工具
- 后台任务系统
- 路由框架
- 部署元数据来源(例如 git SHA 或 release ID)
- 已有的 SQL 注释、查询标签、追踪、OpenTelemetry 或数据库中间件
- PlanetScale 连接配置
- 仓库连接的是 Vitess、Postgres,还是两者都连接
推荐包映射
原则是:优先选用与检测到的技术栈最原生、仍在维护的选项。
- Ruby on Rails / ActiveRecord:若需要 PlanetScale Query Insights 兼容的 SQLCommenter 格式,首选 PlanetScale 的
activerecord-sql_commenter;备选包括 Rails 内置查询日志、marginalia(旧版 Rails 或已有 Basecamp 风格归因)、sqlcommenter_rails(项目已使用 OpenTelemetry SQLCommenter 生态)。建议标签:application、controller、action、job、route、release_sha。 - Laravel / PHP:首选
spatie/laravel-sql-commenter。建议标签:application、route、controller、action、job、queue、release_sha。 - Prisma / TypeScript / JavaScript:检测到 Prisma 时,使用其官方 SQL 注释包:
@prisma/sqlcommenter、@prisma/sqlcommenter-query-tags、@prisma/sqlcommenter-trace-context。资料指出,PlanetScale 的 Postgres 查询标签文档可能把 Prisma 列为缺少官方 SQLCommenter 支持,但 Prisma 当前文档提供了官方包,检测到 Prisma 时应以 Prisma 当前文档为准。建议标签:application、service、route、operation、feature、release_sha。 - Knex / Sequelize / Express / Node:使用 OpenTelemetry SQLCommenter 生态中仍在维护且兼容的中间件或instrumentation。建议标签:application、service、route、controller、action、feature、release_sha。
- Kysely / Drizzle / Bun / 自定义查询构建器:若没有维护中的 SQLCommenter 包,建议在数据库客户端边界或查询构建器扩展层手工打标签。要求:结构化 SQL 注释;标签插入在语句终止符之前;标签能穿过 ORM、代理和连接池;值需 URL 编码且对 SQL 注释安全;标签基数低。
- Django / SQLAlchemy / psycopg2 / Flask / Python:在兼容的前提下使用 OpenTelemetry SQLCommenter 生态中的 instrumentation。建议标签:application、framework、route、view、job、release_sha。
- Java / Hibernate / Spring:使用兼容的 SQLCommenter instrumentation。建议标签:application、service、controller、action、route、release_sha。
- Go / database/sql / net/http / gorilla/mux:使用兼容的 SQLCommenter instrumentation,或在查询边界使用数据库包装器。建议标签:application、service、handler、route、job、release_sha。
标准标签策略
所有框架的基线建议:仅使用稳定、有界(低基数)的值;标记前先规范化路由;包含应用/服务/任务归因;包含部署 SHA;包含来源类型(agents、scripts、BI、workers、integrations);不得包含密钥、PII、用户 ID、请求 ID、原始租户 ID 或原始 URL。
验证计划
在建议合并之前:确认生成的 SQL 注释出现在本地/预发查询日志中;确认注释能穿过 ORM、驱动、连接池和 PlanetScale 连接路径;确认 Insights 显示标签;确认标签基数有界;确认 Traffic Control 能匹配 Postgres 的预期标签;确认不含敏感数据。
输出
技能返回:检测到的技术栈、当前查询标记状态、推荐的包或手工 instrument 路径、建议的标签 schema、可能改动的文件、验证步骤、风险、需批准的建议改动,并以“No repository files or dependencies have been changed.”结尾。