Agent skill

Normalization Patterns

by revfactory in revfactory/harness-100

Database normalization/denormalization pattern library. An agent skill from revfactory/harness-100.

Apache-2.0Auto-check passedDatabases

Install Normalization Patterns

skills CLI
$ npx skills add revfactory/harness-100 --skill normalization-patterns -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install revfactory/harness-100 normalization-patterns --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/revfactory/harness-100.git skills-src && mkdir -p .claude/skills && cp -r skills-src/en/19-database-architect/.claude/skills/normalization-patterns .claude/skills/normalization-patterns && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
normalization-patterns
GitHub stars
1.3k
Token cost
~1.7k tokens
SKILL.md length
519 words
Files
1
Skills in repo
464
Repo updated
First seen
Licence
Apache-2.0

At a glance

Database normalization/denormalization pattern library. An agent skill from revfactory/harness-100.

  • Data modeling involves normalization
  • SKILL.md covers Target Agent, Normalization Stage…, Normalization Decision Flowchart and Strategic Denormalization…, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Denormalization

What it does

Normalization Patterns is an agent skill from revfactory/harness-100. Database normalization/denormalization pattern library. An extension skill for data-modeler that provides 1NF-BCNF criteria, functional dependency analysis, step-by-step normalization procedures, strategic denormalization patterns, and common domain ERD templates. Use when data modeling involves 'normalization', 'denormalization', 'ERD patterns', 'functional dependencies', 'table splitting', 'relationship design', etc. Note: DDL generation and query optimization are outside the scope of this skill.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Databases, covering Database schema design. The licence is Apache-2.0.

When your agent uses it

  • Data modeling involves normalization
  • Denormalization
  • Functional dependencies
  • Table splitting

Example prompts

  • “normalization”
  • “denormalization”
  • “ERD patterns”
  • “/normalization-patterns”

What it can do on your machine

Read from SKILL.md and the folder at commit 8e8d35c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Normalization Patterns loads about 1.7k tokens when it runs. Until then it costs about 132 tokens; SKILL.md has 519 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~132
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from revfactory/harness-100 at commit 8e8d35c, republished under its Apache-2.0 licence (© revfactory). 519 words, ~1,708 tokens.

Download SKILL.mdSave it as .claude/skills/normalization-patterns/SKILL.md (or your agent's skills folder).
name
normalization-patterns
description
Database normalization/denormalization pattern library. An extension skill for data-modeler that provides 1NF-BCNF criteria, functional dependency analysis, step-by-step normalization procedures, strategic denormalization patterns, and common domain ERD templates. Use when data modeling involves 'normalization', 'denormalization', 'ERD patterns', 'functional dependencies', 'table splitting', 'relationship design', etc. Note: DDL generation and query optimization are outside the scope of this skill.

Normalization Patterns — Normalization/Denormalization Pattern Library

Normalization rules, denormalization strategies, and domain-specific ERD patterns used by the data-modeler agent during data modeling.

Target Agent

data-modeler — Directly applies the normalization rules and ERD patterns from this skill to data model designs.

Normalization Stage Identification & Transformation

1NF (First Normal Form)

Rule: Every column must contain atomic (indivisible) values.

Violation PatternProblemSolution
Multi-value columntags = "java,python,go"Separate table (M:N)
Repeating groupsphone1, phone2, phone3Separate table (1:N)
Composite valuesaddress = "123 Main St, City, State"Split into street/city/state columns
2NF (Second Normal Form)

Prerequisite: Satisfies 1NF Rule: Remove partial functional dependencies — separate columns that depend on only part of a composite primary key.

Violation ExampleDependencySolution
order_details(order_id, product_id, product_name, quantity)product_name depends only on product_idSeparate into products table
3NF (Third Normal Form)

Prerequisite: Satisfies 2NF Rule: Remove transitive functional dependencies — a non-key column must not determine another non-key column.

Violation ExampleDependencySolution
employees(id, dept_id, dept_name, dept_head)dept_name, dept_head transitively depend on dept_idSeparate into departments table
BCNF (Boyce-Codd Normal Form)

Rule: Every determinant must be a candidate key.

Violation ExampleProblemSolution
enrollment(student, course, professor) where professor -> courseProfessor is a determinant but not a candidate keySeparate into professor-course table

Normalization Decision Flowchart

Data Analysis
  ├─ Atomic value violation? -> 1NF transformation
  ├─ Composite key & partial dependency? -> 2NF transformation
  ├─ Transitive dependency? -> 3NF transformation
  ├─ Non-candidate-key determinant? -> BCNF transformation
  └─ Performance requirements -> Review strategic denormalization

Strategic Denormalization Patterns

When to Denormalize?
  • When the read-to-write ratio is very high
  • Frequent queries requiring 5+ JOINs
  • When real-time aggregation/statistics are needed
  • Dashboard/report-specific data
Denormalization Pattern Catalog
PatternDescriptionSuitable ForTrade-offs
Derived columnStore computed values (total_price)Frequent sum lookupsRequires sync on update
Duplicated columnCopy frequently used FK target columnsAvoiding JOINsData inconsistency risk
Pre-joined tableMaterialize join results as physical tableReports/dashboardsStorage space, update complexity
History snapshotPreserve point-in-time data (order_address)Storing address at time of orderStorage space
Counter columnlikes_count, comments_countReal-time count displayConcurrency handling
JSON/JSONBUnstructured extension dataSettings, metadataIndexing limitations

Common Domain ERD Patterns

Show full SKILL.md (208 more words)Show less
E-Commerce
users ──1:N──> orders ──1:N──> order_items
  │                                 │
  └──1:N──> addresses          products
  └──1:N──> reviews ──N:1──────┘
                               │
products ──N:M──> categories (via product_categories)
products ──1:N──> product_images
products ──1:N──> product_variants

Core tables:

  • users (id, email, name, password_hash, created_at)
  • products (id, name, description, base_price, status)
  • orders (id, user_id, status, total, shipping_address_snapshot)
  • order_items (id, order_id, product_id, variant_id, quantity, unit_price)
SaaS Multi-Tenant
tenants ──1:N──> users ──N:M──> roles (via user_roles)
   │                              │
   └──1:N──> subscriptions    permissions ──N:M──> roles
   └──1:N──> [domain tables] (tenant_id FK)

Key point: Include tenant_id in all business tables; apply RLS (Row Level Security)

Social Network
users ──N:M──> users (via follows: follower_id, following_id)
  │
  └──1:N──> posts ──1:N──> comments
  │              └──N:M──> tags (via post_tags)
  │              └──1:N──> likes (user_id + post_id UNIQUE)
  └──1:N──> messages (sender_id, receiver_id)
CMS/Blog
users ──1:N──> posts ──N:M──> tags (via post_tags)
                 │
                 └──1:N──> comments (self-referencing: parent_id)
                 └──1:N──> media
                 └──1:1──> post_meta (SEO, OG tags, etc.)

Relationship Patterns

1:1 Relationship
  • Large table splitting (frequently used columns vs rarely used columns)
  • Optional extension (user + user_profile)
  • Implementation: FK + UNIQUE constraint
1:N Relationship
  • Most common relationship type
  • Self-referencing: category trees, comment threads (parent_id)
  • Implementation: FK on the child table
M:N Relationship
  • Junction table required
  • Junction table may include additional attributes (created_at, role, quantity)
  • Naming: {table1}_{table2} or a meaningful name (enrollments)

Common Column Patterns

Default Timestamps

Include in all tables:

  • id — UUID or BIGINT AUTO_INCREMENT
  • created_at — TIMESTAMPTZ DEFAULT NOW()
  • updated_at — TIMESTAMPTZ, auto-updated via trigger
Soft Delete
  • deleted_at — TIMESTAMPTZ NULL (NULL means not deleted)
  • All queries include WHERE deleted_at IS NULL condition
  • Enables restoration and serves as audit trail
Status Management
  • status — ENUM or VARCHAR
  • State transition rules must be documented (which states can transition to which)
  • If history is needed, use a separate status_history table
Internationalization
  • Strategy 1: Column extension (name_ko, name_en, name_ja)
  • Strategy 2: Translation table (product_translations: product_id, locale, name, description)
  • Strategy 2 recommended (no schema changes needed when adding languages)

© revfactory, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in en/19-database-architect/.claude/skills/normalization-patterns of revfactory/harness-100.

Open the folder on GitHubat commit 8e8d35c

Compare with similar skills

Normalization Patterns next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Normalization Patterns compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Normalization Patterns this skillrevfactory/harness-1001.3k—~1.7kAutomated safety check: PassApache-2.0
SQL Optimization Patternsynulihao/AgentSkillOS61711 repos~3.3kAutomated safety check: PassNone
Datamodellmnimbalyst/nimbalyst1.9k—~713Automated safety check: PassMIT
Add Mpk Taskmirage-project/mirage2.5k—~4.5kAutomated safety check: PassApache-2.0
B200 Flash Attention4 Plannermirage-project/mirage2.5k—~1.9kAutomated safety check: PassApache-2.0
Experiment Auditwanshuiyin/Auto-claude-code-research-in-sleep17k1 repos~2.7kAutomated safety check: NotesMIT

Similar skills

  • SQL Optimization Patterns

    ynulihao/AgentSkillOS

    Master SQL query optimization, indexing strategies, and EXPLAIN analysis to dramatically improve database performance and eliminate slow queries.

    617 GitHub starsUsed in 11 repos~3.3k tokens
    DatabasesAuto-check passed
  • Datamodellm

    nimbalyst/nimbalyst

    Create visual data models for database schemas using Nimbalyst's DataModelLM editor.

    1.9k GitHub stars~713 tokensUpdated today
    DatabasesAuto-check passed
  • Add Mpk Task

    mirage-project/mirage

    Step-by-step guide for adding a new task implementation to Mirage Persistent Kernel (MPK).

    2.5k GitHub stars~4.5k tokensUpdated yesterday
    DatabasesAuto-check passed
  • B200 Flash Attention4 Planner

    mirage-project/mirage

    A skill your agent uses when the user wants to design or extend a FlashAttention-style forward kernel on B200/Blackwell, involving the two MMAs QKᵀ and PV, online softmax, S/P/O in TMEM, warp roles…

    2.5k GitHub stars~1.9k tokensUpdated yesterday
    DatabasesAuto-check passed
  • Experiment Audit

    wanshuiyin/Auto-claude-code-research-in-sleep

    Audit experiment integrity before claiming results. An agent skill from wanshuiyin/Auto-claude-code-research-in-sleep.

    17k GitHub starsUsed in 1 repo~2.7k tokens
    DatabasesAuto-check: notes
  • Sqlite Schema Design

    fastrepl/anarlog

    Design or review schemas for crates/cloudsync using SQLite Sync constraints, not generic SQLite advice.

    9.5k GitHub stars~1.9k tokensUpdated today
    DatabasesAuto-check passed

More from revfactory/harness-100

All 464 skills in this repo
  • Anti Bot Analyzer

    revfactory/harness-100

    A skill for analyzing website anti-bot defense mechanisms and developing legitimate evasion strategies.

    1.3k GitHub stars~1.1k tokensUpdated 6 mo ago
    Auto-check passed
  • API Error Design Patterns

    revfactory/harness-100

    Reference for designing how an API reports failures: structured error codes, response shapes, client-friendly messages, an error catalog and retry or fallback advice.

    1.3k GitHub stars~1.6k tokensUpdated 6 mo ago
    Auto-check passed
  • API Security Checklist

    revfactory/harness-100

    Walks a backend-dev agent through OWASP API Top 10 checks, authentication and authorization patterns, and defense code during API design.

    1.3k GitHub stars~1.7k tokensUpdated 6 mo ago
    Auto-check passed
  • Arg Parser Generator

    revfactory/harness-100

    Methodology for systematically designing and generating CLI tool argument parser structures.

    1.3k GitHub stars~1.2k tokensUpdated 6 mo ago
    Auto-check passed
  • Audience Segmentation

    revfactory/harness-100

    Audience segmentation skill used by the analyst and curator agents.

    1.3k GitHub stars~1.3k tokensUpdated 6 mo ago
    Auto-check passed
  • Audio Storytelling

    revfactory/harness-100

    Audio storytelling skill used by the podcast scriptwriter and show note editor.

    1.3k GitHub stars~1.6k tokensUpdated 6 mo ago
    Auto-check passed

Categories

Questions about Normalization Patterns

What does Normalization Patterns do?

Database normalization/denormalization pattern library. An agent skill from revfactory/harness-100. Normalization Patterns is an agent skill from revfactory/harness-100. Database normalization/denormalization pattern library.

When should I use Normalization Patterns?

Normalization Patterns fits situations like: data modeling involves normalization; denormalization; functional dependencies; table splitting.

How do I install Normalization Patterns in Claude Code?

Run `npx skills add revfactory/harness-100 --skill normalization-patterns -a claude-code`. Or copy the skill folder (en/19-database-architect/.claude/skills/normalization-patterns in revfactory/harness-100) into .claude/skills/normalization-patterns in your project. Claude Code loads it when a task matches its description.

How do I install Normalization Patterns in Codex?

Run `npx skills add revfactory/harness-100 --skill normalization-patterns -a codex`. Or copy the skill folder (en/19-database-architect/.claude/skills/normalization-patterns in revfactory/harness-100) into .agents/skills/normalization-patterns in your project. Codex loads it when a task matches its description.

Can I use Normalization Patterns in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add revfactory/harness-100 --skill normalization-patterns -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/normalization-patterns, .gemini/skills/normalization-patterns, .github/skills/normalization-patterns and .opencode/skills/normalization-patterns in your project.

What does Normalization Patterns need to run?

SKILL.md names no scripts, command-line tools or credentials: Normalization Patterns is instructions for the agent only.

Does Normalization Patterns access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Normalization Patterns safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Normalization Patterns use?

Normalization Patterns is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Normalization Patterns use?

About 1.7k tokens (SKILL.md is roughly 6.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Normalization Patterns?

Skills that share tags, products or a category with Normalization Patterns: SQL Optimization Patterns (ynulihao/AgentSkillOS, 617 stars), Datamodellm (nimbalyst/nimbalyst, 1.9k stars), Add Mpk Task (mirage-project/mirage, 2.5k stars) and B200 Flash Attention4 Planner (mirage-project/mirage, 2.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Normalization Patterns?

revfactory (a GitHub user) maintains it in revfactory/harness-100, which has 1,295 GitHub stars. The repository holds 464 skills in this directory. The repository was last updated on March 22, 2026.

Source: revfactory/harness-100 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.