Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Design normalized database schemas with ERDs, migration plans, and indexing strategies for relational and document databases
.claude/skills/williamzujkowski-database-schema-designer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-19 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 66% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 89% | 0% |
Use this skill when you need to:
Skip this skill if you only need query optimization (use database-optimization-analyzer) or simple CRUD operations.
NOW_ET = 2025-10-26T12:00:00-04:00 (accessed via NIST/time.gov semantics)For straightforward domains with 3-8 entities and clear relationships:
For complex domains requiring optimization and migration planning:
For large-scale systems requiring partitioning, sharding, or cross-database design:
When to escalate complexity tier:
When to recommend denormalization:
When to abort:
Required fields:
yamlerd_diagram: string # Mermaid ER diagram syntax ddl_scripts: string # Complete DDL (CREATE TABLE, indexes, constraints) migration_plan: array # Ordered steps with up/down scripts optimization_notes: string # Index strategy and query patterns
Optional fields:
yamlnormalization_analysis: string # 1NF-3NF evaluation partitioning_strategy: string # If T3 used test_data_generator: string # Sample INSERT statements
Format: JSON or YAML document, optionally with embedded SQL code blocks
sql-- E-commerce schema: User, Product, Order, OrderItem (T1 example) CREATE TABLE users ( user_id SERIAL PRIMARY KEY, email VARCHAR(255) UNIQUE NOT NULL, created_at TIMESTAMPTZ DEFAULT NOW() ); CREATE TABLE products ( product_id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL, price DECIMAL(10,2) NOT NULL CHECK (price >= 0), stock INTEGER DEFAULT 0 CHECK (stock >= 0) ); CREATE TABLE orders ( order_id SERIAL PRIMARY KEY, user_id INTEGER NOT NULL REFERENCES users(user_id) ON DELETE RESTRICT, total DECIMAL(10,2) NOT NULL, created_at TIMESTAMPTZ DEFAULT NOW() ); CREATE TABLE order_items ( order_id INTEGER REFERENCES orders(order_id) ON DELETE CASCADE, product_id INTEGER REFERENCES products(product_id) ON DELETE RESTRICT, quantity INTEGER NOT NULL CHECK (quantity > 0), price_snapshot DECIMAL(10,2) NOT NULL, PRIMARY KEY (order_id, product_id) ); CREATE INDEX idx_orders_user ON orders(user_id, created_at DESC); CREATE INDEX idx_products_price ON products(price) WHERE stock > 0;
Token budgets:
Safety checks:
Validation:
Determinism:
Official Documentation (accessed 2025-10-26):
Best Practices (accessed 2025-10-26):
Tools:
Related Skills:
database-migration-generator - Generate migration scripts from schema changesdatabase-optimization-analyzer - Analyze and optimize existing schemasdata-pipeline-designer - Design ETL pipelines for data movement| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | pass→pass | 6,163 | 5,358 | -13% | 1 | 1 | 0% | 1,342 | 3,321 | +147% | 0 | 0 | — |
case-19 | fail→pass | 28,201 | 29,836 | +6% | 1 | 1 | 0% | 6,173 | 8,392 | +36% | 0 | 0 | — |
case-01 | fail→fail | 23,603 | 20,164 | -15% | 1 | 1 | 0% | 6,226 | 8,042 | +29% | 0 | 0 | — |
case-02 | fail→pass | 21,958 | 20,596 | -6% | 1 | 1 | 0% | 6,217 | 7,884 | +27% | 0 | 0 | — |
case-03 | fail→pass | 24,466 | 20,774 | -15% | 1 | 1 | 0% | 6,228 | 7,612 | +22% | 0 | 0 | — |
case-04 | pass→pass | 9,920 | 7,804 | -21% | 1 | 1 | 0% | 1,834 | 3,640 | +98% | 0 | 0 | — |
case-05 | pass→fail | 2,561 | 3,315 | +29% | 1 | 1 | 0% | 500 | 2,791 | +458% | 0 | 0 | — |
case-07 | fail→fail | 16,893 | 12,672 | -25% | 1 | 1 | 0% | 4,977 | 5,675 | +14% | 0 | 0 | — |
case-08 | fail→pass | 17,257 | 17,394 | +1% | 1 | 1 | 0% | 3,848 | 6,391 | +66% | 0 | 0 | — |
case-09 | fail→fail | 16,135 | 17,806 | +10% | 1 | 1 | 0% | 3,438 | 6,793 | +98% | 0 | 0 | — |
case-10 | fail→fail | 12,208 | 9,478 | -22% | 1 | 1 | 0% | 3,034 | 4,446 | +47% | 0 | 0 | — |
case-11 | pass→pass | 14,316 | 13,216 | -8% | 1 | 1 | 0% | 3,752 | 5,432 | +45% | 0 | 0 | — |
case-12 | pass→pass | 19,252 | 20,772 | +8% | 1 | 1 | 0% | 4,791 | 7,284 | +52% | 0 | 0 | — |
case-13 | fail→fail | 10,043 | 13,537 | +35% | 1 | 1 | 0% | 2,352 | 5,561 | +136% | 0 | 0 | — |
case-14 | fail→pass | 10,146 | 11,255 | +11% | 1 | 1 | 0% | 2,606 | 4,923 | +89% | 0 | 0 | — |
case-15 | fail→pass | 21,951 | 24,104 | +10% | 1 | 1 | 0% | 6,197 | 8,049 | +30% | 0 | 0 | — |
case-16 | fail→fail | 18,036 | 24,747 | +37% | 1 | 1 | 0% | 5,178 | 8,316 | +61% | 0 | 0 | — |
case-17 | fail→pass | 15,200 | 14,343 | -6% | 1 | 1 | 0% | 3,515 | 5,378 | +53% | 0 | 0 | — |
case-18 | fail→fail | 11,626 | 9,947 | -14% | 1 | 1 | 0% | 2,423 | 4,449 | +84% | 0 | 0 | — |
case-20 | fail→pass | 16,761 | 19,924 | +19% | 1 | 1 | 0% | 3,599 | 6,942 | +93% | 0 | 0 | — |
case-21 | pass→pass | 18,735 | 22,821 | +22% | 1 | 1 | 0% | 4,332 | 7,399 | +71% | 0 | 0 | — |
case-22 | pass→pass | 15,834 | 12,840 | -19% | 1 | 1 | 0% | 3,003 | 4,827 | +61% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +32 percentage points is the difference between those two pass rates over the 22 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.