用途:把 Claude 变成 PostgreSQL 模式设计审查者。它是编排型技能,不是 DDL 语法参考,定义固定的 16 项检查(S-1..S-16)、严重度分级,以及每条发现应引用哪个同级技能。要求对每张表运行每项检查,禁止仅凭目测批准模式。
审查流程:1) PARSE,收集所有 CREATE TABLE、列、约束、索引,先跨全部表构建外键图;2) CHECK,对每张表运行全部 16 项检查;3) GRADE,为每条命中定级,并标注可能是刻意为之的选择;4) REPORT,输出结构化发现与一条总体结论。
严重度:CRITICAL 指破坏数据或租户隔离的结构缺陷,结论不能为 GOOD;WARNING 指在规模或维护上会出问题的设计缺陷;INFO 为风格或依赖上下文,由作者决定。结论:GOOD(无 CRITICAL、无 WARNING)/NEEDS-WORK(仅 WARNING)/POOR(存在任一 CRITICAL)。必须先构建外键图再定级;对刻意反规范化或已标注的选择,不得在未询问作者理由前直接判失败;不得在 CRITICAL 未处理时纠结命名等表面问题。
检查项示例:S-1 无主键(CRITICAL);S-2 多租户表无 RLS 或租户范围策略(CRITICAL);S-3 外键列无索引(WARNING);S-4 用 SERIAL 而非 GENERATED AS IDENTITY(WARNING);S-5 非 snake_case 标识符(WARNING);S-6 冗余索引(WARNING);S-7 启用 RLS 但缺 FORCE(WARNING);S-8 结构化数据存为文本(WARNING);S-9 事件时间用 timestamp 而非 timestamptz(WARNING);S-10 规范化违规(WARNING);S-11 逻辑必填列可空(WARNING);S-12 money 类型(INFO);S-13 应用表放在 public(INFO);S-14 char(n)(INFO);S-15 可空布尔作未记录三态(INFO);S-16 已知不变量缺 CHECK(INFO)。
输出格式:逐条列出 [SEVERITY] <schema.table[.column]>,含 Problem、Fix、Cite,必要时加 Note 询问是否为刻意设计;最后输出唯一结论行,如 Verdict : NEEDS-WORK (0 CRITICAL, 3 WARNING, 2 INFO)。
适用场景:用户要求审查模式、评估数据库设计或粘贴 DDL 求反馈;审计既有模式、迁移或新增/修改表的 PR;其他智能体生成的 CREATE TABLE DDL 上线前检查。不适用:审查 SQL 查询(用 postgres-agents-query-reviewer)、审查迁移锁与上线安全(用 postgres-agents-migration-reviewer)、从零编写 DDL(用 postgres-core-schema-design 或相关 postgres-syntax-* 技能)。
限制与反模式:避免只盯命名而漏掉缺主键、未询问即把反规范化判为缺陷、脱离完整外键图单独定级、严重度膨胀或压低、报告发现却不引用修复技能、未跑完 16 项检查就盖章 GOOD。参考文件包括 references/methods.md、references/examples.md、references/anti-patterns.md。官方文档:https://www.postgresql.org/docs/17/ddl-rowsecurity.html。