Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/d-padmanabhan/agent-engineering-handbookWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/d-padmanabhan/agent-engineering-handbook/470-postgresql)<a href="https://agentmods.dev/rules/d-padmanabhan/agent-engineering-handbook/470-postgresql"><img src="https://agentmods.dev/badge/rules/d-padmanabhan/agent-engineering-handbook/470-postgresql/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/d-padmanabhan/agent-engineering-handbook/470-postgresql"><img src="https://agentmods.dev/badge/rules/d-padmanabhan/agent-engineering-handbook/470-postgresql.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00013 | $0.05889 |
| Opus 5.5 | $0.00005 | $0.02356 |
| Sonnet 5.5 | $0.00003 | $0.01178 |
| Haiku 4.5 | $0.00001 | $0.00589 |
Grade A, and why
470-postgresql scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 983 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PostgreSQL Engineering Ruleset
Audience: engineers designing and reviewing PostgreSQL database schemas and migrations Goal: Consistent database schema design with clear naming conventions and maintainable patterns
PostgreSQL Philosophy (Core Principles)
Core Principles:
- "Consistency is king" - Follow naming conventions consistently across all tables and columns
- "Explicit over implicit" - Use explicit constraints, types, and defaults
- "Performance by design" - Index foreign keys and frequently queried columns
- "Security by default" - Use parameterized queries, RLS, least privilege
- "Migrations are code" - Version control migrations, make them reversible
- "Documentation matters" - Comments explain why, not just what
- "Test your migrations" - Test migrations in staging before production
- "Backup before changes" - Always backup before destructive operations
Applying PostgreSQL Principles:
-- BAD: Inconsistent naming, no constraints, no indexes
CREATE TABLE User (
userId SERIAL PRIMARY KEY,
Email VARCHAR(255),
firstName VARCHAR(100),
lastName VARCHAR(100)
);
-- GOOD: Consistent naming, constraints, indexes
CREATE TABLE users (
id BIGSERIAL PRIMARY KEY,
email VARCHAR(255) NOT NULL,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() NOT NULL,
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() NOT NULL,
CONSTRAINT users_email_unique UNIQUE (email),
CONSTRAINT users_email_format CHECK (email ~* '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}$')
);
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_users_created_at ON users(created_at);
Naming Conventions
Tables
Tables use plural snake_case:
-- GOOD: Plural snake_case
CREATE TABLE users (
id BIGSERIAL PRIMARY KEY,
email VARCHAR(255) NOT NULL UNIQUE,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
CREATE TABLE user_books (
id BIGSERIAL PRIMARY KEY,
user_id BIGINT NOT NULL REFERENCES users(id),
book_id BIGINT NOT NULL REFERENCES books(id),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
UNIQUE(user_id, book_id)
);
-- BAD: Singular or camelCase
CREATE TABLE User ( ... );
CREATE TABLE userBooks ( ... );
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 983 lines · 13 tokens per session scan A ccb656bf4fbf
470-postgresql is a cursor rule published in the GitHub repository d-padmanabhan/agent-engineering-handbook (19 stars, last pushed 2d ago), licensed MIT. It adds 13 tokens to every session and 5,889 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other cursor rules, from other repositories
adapter-features
Database-specific features must be implemented in the specialized adapter only. Base adapters (postgres, mysql, etc.) must remain database-agnostic.
unit-tests-tdd
TDD required for behavior changes; ≥80% package coverage on touched packages; unit-test conventions.
planning-and-delegation
Plan every task first, parallelise independent work, and staff each task with the cheapest model that can do it well.
integration-tests
Human-readable integration test requests; helpers vs httptest; suites/ vs per-DB placement.
postgresql
PostgreSQL production rules. Safe migrations, parameterized queries, TIMESTAMPTZ, proper indexing strategy.
netlify-database-migration-from-extension
Switching to Netlify Database. Reference for the netlify-database skill.