Skip to content
Back to skills

Pg Doc Schema Review

ASecurity

Review and fix PRD/BP/tech design Markdown that includes PostgreSQL table DDL and API examples. Use to enforce these conventions: no auto-increment primary keys, no foreign keys, avoid join-based designs, unique constraints written with UNIQUE (not CREATE UNIQUE INDEX), detailed COMMENTs for tables/columns, and entity/aggregate-root tables include create_time and update_time.

  • 3 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added May 28, 2026
databasespythonsqlexpressapidatabase

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned May 28, 2026

npx -y skills add muzhicaomingwang/ai-ideas --skill pg-doc-schema-review --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pg Doc Schema Review?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pg Doc Schema Review
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/muzhicaomingwang-pg-doc-schema-review/badge)](https://www.skillsdirectory.com/skills/muzhicaomingwang-pg-doc-schema-review)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: pg-doc-schema-review
description: Review and fix PRD/BP/tech design Markdown that includes PostgreSQL table DDL and API examples. Use to enforce these conventions: no auto-increment primary keys, no foreign keys, avoid join-based designs, unique constraints written with UNIQUE (not CREATE UNIQUE INDEX), detailed COMMENTs for tables/columns, and entity/aggregate-root tables include create_time and update_time.
---

# pg-doc-schema-review

Follow this workflow when reviewing or editing PRD/BP Markdown that contains database schema / SQL examples.

## Rules to enforce

### IDs / primary keys

- Prefer **domain-scoped globally unique string IDs** as primary keys (PostgreSQL `TEXT`), with prefix = entity name or abbreviation (e.g., `plan_...`, `sup_...`), unique within the domain.
- Do **not** use auto-increment / identity as the **primary key** (avoid `SERIAL`, `GENERATED ... AS IDENTITY`, `AUTO_INCREMENT`).
- If an auto-increment numeric ID is explicitly required (rare), use `BIGINT` and **do not expose it as the entity’s external identifier**; keep the external identifier as the prefixed string ID.

### Schema design

- Do **not** define foreign keys (`FOREIGN KEY`, `REFERENCES`).
- Avoid designs that require join queries for core read paths (“不要连表查询”): prefer denormalized fields, JSONB snapshots, or read-optimized tables.

### Indexing

- Add indexes for the intended query paths.
- Unique requirements should be expressed using `UNIQUE` (e.g., `email TEXT NOT NULL UNIQUE`, or `CONSTRAINT ux_xxx UNIQUE (...)`), **not** `CREATE UNIQUE INDEX`.

### Comments

- Every table must have `COMMENT ON TABLE ...`.
- Every column must have `COMMENT ON COLUMN ...`.

### Timestamps

- Entity tables / aggregate root tables must include:
  - `create_time TIMESTAMPTZ NOT NULL DEFAULT NOW()`
  - `update_time TIMESTAMPTZ NOT NULL DEFAULT NOW()`
- If the doc claims DB triggers, state it explicitly; otherwise, assume **application-level update of `update_time`**.

## Review checklist (what to look for)

- ID type mismatches between API examples and schema (`*_id` as string vs int).
- Use of `CREATE UNIQUE INDEX` (should be `UNIQUE`).
- Any `FOREIGN KEY` / `REFERENCES` / join-table patterns.
- Missing `create_time`/`update_time` on core tables.
- Missing `COMMENT ON TABLE` / `COMMENT ON COLUMN`.
- SQL dialect mismatch with PostgreSQL (e.g., MySQL-only syntax).

## Tooling (optional)

Run the bundled linter to quickly flag common violations:

- `python .project/ai/dev/DBA/skills/pg-doc-schema-review/scripts/lint_md_schema.py docs/path/or/file.md`

It scans Markdown ` ```sql ` blocks and reports violations and missing comment/index sections.

Files in this skill

  • SKILL.md2.6 KB
  • scripts/lint_md_schema.py5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.