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.
npx skills add cookieMonsterDev/agents-skills --skill database-normalizationgit clone --depth 1 https://github.com/cookieMonsterDev/agents-skillsWrote 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/skills/cookiemonsterdev/agents-skills/database-normalization)<a href="https://agentmods.dev/skills/cookiemonsterdev/agents-skills/database-normalization"><img src="https://agentmods.dev/badge/skills/cookiemonsterdev/agents-skills/database-normalization/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/skills/cookiemonsterdev/agents-skills/database-normalization"><img src="https://agentmods.dev/badge/skills/cookiemonsterdev/agents-skills/database-normalization.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.00153 | $0.01652 |
| Opus 5.5 | $0.00061 | $0.00661 |
| Sonnet 5.5 | $0.00031 | $0.00330 |
| Haiku 4.5 | $0.00015 | $0.00165 |
Grade A, and why
database-normalization 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 — 80 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Database Normalization
Ground normalization answers in the reference files bundled with this skill instead of improvising definitions. Each normal form has a reference file explaining it and a folder of worked examples across popular databases.
When to Use
- The user names a normal form directly ("what is BCNF", "show me 3NF in PostgreSQL")
- The user describes an anomaly that maps to a missing normal form ("if I delete the last order for a customer I lose their address")
- The user asks whether a schema is normalized, or asks to normalize/denormalize a schema
- The user asks how a normalization concept applies (or doesn't) in a non-relational database ("does 1NF matter in MongoDB?", "how do I avoid joins in DynamoDB?")
- The user wants existing tables or documents refactored toward or away from a normal form
Workflow
- Identify the normal form(s) from the user's question using the catalog below. If the user describes symptoms (repeating groups, partial/transitive dependency, update anomalies) rather than naming a form, diagnose which form addresses it.
- Read the reference file at
references/<form>.mdfor the definition, the dependency it eliminates, the anomalies it prevents, and when going further stops paying off. - Read the database example at
examples/<form>/<database>.<ext>when the user works in (or asks for) a specific database. Adapt it to their schema rather than pasting the generic example verbatim. - Answer with: what the form requires, what anomaly it prevents, and a schema/model adapted to the user's context — including whether that database's idioms call for staying normalized or deliberately denormalizing.
If the user's schema is already anomaly-free at a given form, say so — do not push further normalization for its own sake. Every step past 3NF/BCNF is a judgment call against real anomalies, not a checklist to exhaust.
Normal Form Catalog
Core Forms
The forms nearly every relational schema should reach; each eliminates a specific class of anomaly caused by a specific kind of dependency.
What ships with it
57 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- examples/boyce-codd-normal-form/cassandra.cql 1.4 KB
- examples/boyce-codd-normal-form/dynamodb.md 2.9 KB
- examples/boyce-codd-normal-form/mongodb.js 2.5 KB runs code
- examples/boyce-codd-normal-form/mysql.sql 2.5 KB
- examples/boyce-codd-normal-form/postgres.sql 2.3 KB
- examples/boyce-codd-normal-form/scylladb.cql 1.6 KB
- examples/boyce-codd-normal-form/sqlite.sql 2.3 KB
- examples/denormalization/cassandra.cql 1.7 KB
- examples/denormalization/dynamodb.md 2.8 KB
- examples/denormalization/mongodb.js 2.9 KB runs code
- examples/denormalization/mysql.sql 3.4 KB
- examples/denormalization/postgres.sql 3.2 KB
- examples/denormalization/scylladb.cql 1.8 KB
- examples/denormalization/sqlite.sql 3.2 KB
- examples/fifth-normal-form/cassandra.cql 1.6 KB
- examples/fifth-normal-form/dynamodb.md 2.9 KB
- examples/fifth-normal-form/mongodb.js 3.0 KB runs code
- examples/fifth-normal-form/mysql.sql 2.7 KB
- examples/fifth-normal-form/postgres.sql 2.5 KB
- examples/fifth-normal-form/scylladb.cql 1.7 KB
- examples/fifth-normal-form/sqlite.sql 2.5 KB
- examples/first-normal-form/cassandra.cql 1.5 KB
- examples/first-normal-form/dynamodb.md 2.7 KB
- examples/first-normal-form/mongodb.js 2.5 KB runs code
- examples/first-normal-form/mysql.sql 2.4 KB
- examples/first-normal-form/postgres.sql 2.1 KB
- examples/first-normal-form/scylladb.cql 1.6 KB
- examples/first-normal-form/sqlite.sql 2.0 KB
- examples/fourth-normal-form/cassandra.cql 1.1 KB
- examples/fourth-normal-form/dynamodb.md 2.7 KB
- examples/fourth-normal-form/mongodb.js 2.4 KB runs code
- examples/fourth-normal-form/mysql.sql 2.5 KB
- examples/fourth-normal-form/postgres.sql 2.2 KB
- examples/fourth-normal-form/scylladb.cql 1.2 KB
- examples/fourth-normal-form/sqlite.sql 2.3 KB
- examples/second-normal-form/cassandra.cql 1.7 KB
- examples/second-normal-form/dynamodb.md 2.7 KB
- examples/second-normal-form/mongodb.js 3.0 KB runs code
- examples/second-normal-form/mysql.sql 2.8 KB
- examples/second-normal-form/postgres.sql 2.6 KB
- examples/second-normal-form/scylladb.cql 1.8 KB
- examples/second-normal-form/sqlite.sql 2.6 KB
- examples/third-normal-form/cassandra.cql 1.5 KB
- examples/third-normal-form/dynamodb.md 2.3 KB
- examples/third-normal-form/mongodb.js 2.3 KB runs code
- examples/third-normal-form/mysql.sql 2.4 KB
- examples/third-normal-form/postgres.sql 2.2 KB
- examples/third-normal-form/scylladb.cql 1.6 KB
- examples/third-normal-form/sqlite.sql 2.2 KB
- LICENSE 1.0 KB
- references/boyce-codd-normal-form.md 6.2 KB
- references/denormalization.md 8.1 KB
- references/fifth-normal-form.md 7.2 KB
- references/first-normal-form.md 6.6 KB
- references/fourth-normal-form.md 6.4 KB
- references/second-normal-form.md 5.8 KB
- references/third-normal-form.md 6.3 KB
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 · 80 lines · 153 tokens per session scan A 3372cb89d7d8
database-normalization is a skill published in the GitHub repository cookieMonsterDev/agents-skills (6 stars, last pushed today), licensed MIT. It adds 153 tokens to every session and 1,652 once invoked, about $0.0006 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-31.
Other skills, from other repositories
alloydb-basics
Manages clusters, instances, and backups for AlloyDB for PostgreSQL, and integrates with AlloyDB Model Context Protocol (MCP) tools for automated database operations. Use when creating, configuring, or administering AlloyDB databases. Do NOT use for general PostgreSQL instances (e.g. Cloud SQL) or other GCP databases.
cloud-databases-onboarding
Guides users through discovering their database requirements, recommends a Google Cloud database based on a recommendation matrix, and assists in database creation. Use when a user asks 'What database service should I use?', 'Help me pick a database', or when a user wants to create a new database on Google Cloud.…
spanner-basics
Assists in provisioning instances and databases, designing performant schemas, and querying data in Cloud Spanner on Google Cloud. Use when designing primary keys, writing SQL queries or client library code, or diagnosing performance issues.
obsidian-bases
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.
similarity-search-patterns
Implement efficient similarity search with vector databases. Use when building semantic search, implementing nearest neighbor queries, or optimizing retrieval performance.
supabase
Use when doing ANY task involving Supabase. Triggers: Supabase products (Database, Auth, Edge Functions, Realtime, Storage, Vectors, Cron, Queues); client libraries and SSR integrations (supabase-js, @supabase/ssr) in Next.js, React, SvelteKit, Astro, Remix; auth issues (login, logout, sessions, JWT, cookies…