Db Seed

Generates re-runnable SQL/Drizzle seed scripts from your schema, in foreign-key order

Tested · Works

Test report

Verdict
Tested · Works
Score
8.8/10
Tested
Jul 21, 2026
Environment
Claude Code 2.x (agent harness)
Upstream re-checked
Aug 10, 2026 · eca790f

Installed into a throwaway HOME (export HOME=$(mktemp -d)) from a shallow clone; the skill dir contains only SKILL.md (7522 bytes), frontmatter has name+description, body references no external files, and I found no curl|sh, base64, or injection text. Output test: I wrote a 5-table SQLite/D1 schema (customers, categories, products with a JSON-as-TEXT column, orders with a CHECK constraint, order_items) and produced two seed scripts — seed-baseline.sql written my default way, seed-skill.sql following the skill body strictly — then executed both twice against real sqlite3 3.43. Baseline loaded once but the second run threw five errors ("UNIQUE constraint failed: customers.email", categories.slug, products.id, orders.id, order_items.id); the skill version re-ran cleanly both times and printed its row counts (customers 8, categories 4, products 10, orders 8, order_items 12). Measured data quality: json_valid(attributes) AND non-empty object = 10/10 rows for the skill file vs 0/4 for baseline ('{}'), ISO-8601 timestamps with time+Z 8/8 vs 0/3, 10 distinct prices vs 4, real product names ("Baratza Encore Grinder") vs "Product 1", plus apostrophe and CJK rows that survived insert; the skill file also split 12 order_items into 10+2 per INSERT per its D1 batch rule. Trigger phrasings judged: LOAD — "Populate my local D1 database with realistic products and orders so the dashboard isn't empty", "Write a seed script for the Drizzle schema in src/db/schema.ts, about 20 rows per table", "I need demo data for the customers and invoices tables before tomorrow's client demo"; DON'T LOAD — "Add a migration that adds a phone column to the users table", "Export the production orders table to CSV so finance can review last month's revenue" — 5/5 correct, though the broad trigger keywords "sample data"/"test data" could pull it into non-database data-generation requests. Docs lose a point because the D1-specific claims ("max ~10 rows per INSERT", "100 bound parameter limit") are asserted without a source and I could only verify the generated SQL against local SQLite, not real D1.

Scored on four weighted criteria — install, triggering, output vs. baseline, docs. How scoring works

  • Installs cleanly 5/5
  • Triggers reliably 5/5
  • Output vs. baseline 8/10
  • Docs & honesty 4/5

What Db Seed does

Reads a project's Drizzle schema, SQL migrations, or raw DDL and writes a seed script that inserts domain-appropriate sample data in foreign-key dependency order. Produces idempotent files (reverse-order deletes or upserts), batches inserts for Cloudflare D1 limits, and stores booleans as INTEGER, timestamps as ISO-8601 TEXT, and JSON as serialized TEXT. Triggers on requests to seed a database, add sample/demo/test data, or populate dev tables.

How to install Db Seed

git clone --depth 1 https://github.com/jezweb/claude-skills.git /tmp/db-seed-src
mkdir -p ~/.claude/skills
cp -R /tmp/db-seed-src/plugins/cloudflare/skills/db-seed ~/.claude/skills/db-seed
# Self-contained: the skill is a single SKILL.md, no assets/ or references/ files.
# No external dependencies. Running the generated seed needs whatever your project already uses:
#   npx tsx scripts/seed.ts            (Drizzle/TypeScript output)
#   npx wrangler d1 execute DB --local --file=./scripts/seed.sql   (raw SQL output for D1)
# Alternative: the repo ships this as part of the "cloudflare" plugin
#   (plugins/cloudflare/.claude-plugin/plugin.json) if you prefer a plugin-marketplace install.
# The skill offers an optional POST /api/seed Worker endpoint pattern — it tells you to remove it
# before production; do that, or skip that section entirely.

Skills live in ~/.claude/skills/ (global) or .claude/skills/ (per-project). Restart Claude Code after installing.

Commands — how to trigger Db Seed

  • /db-seed Generates re-runnable SQL/Drizzle seed scripts from your schema, in foreign-key order

It also activates on plain-language prompts like these:

  • Seed the dev database with sample orders
  • Generate fixtures for the users and posts tables
  • Create demo data respecting foreign key order

Frequently asked questions

Is the Db Seed skill free?
Yes. The skill itself is free from jezweb/claude-skills. SkillProof publishes the install command and an independent test verdict at no cost.
Does Db Seed work with Claude Code?
We tested it with Claude Code 2.x (agent harness) on Jul 21, 2026. Verdict: Tested · Works. Installed into a throwaway HOME (export HOME=$(mktemp -d)) from a shallow clone; the skill dir contains only SKILL.md (7522 bytes), frontmatter has name+description, body references no external files, and I found no curl|sh, base64, or injection text. Output test: I wrote a 5-table SQLite/D1 schema (customers, categories, products with a JSON-as-TEXT column, orders with a CHECK constraint, order_items) and produced two seed scripts — seed-baseline.sql written my default way, seed-skill.sql following the skill body strictly — then executed both twice against real sqlite3 3.43. Baseline loaded once but the second run threw five errors ("UNIQUE constraint failed: customers.email", categories.slug, products.id, orders.id, order_items.id); the skill version re-ran cleanly both times and printed its row counts (customers 8, categories 4, products 10, orders 8, order_items 12). Measured data quality: json_valid(attributes) AND non-empty object = 10/10 rows for the skill file vs 0/4 for baseline ('{}'), ISO-8601 timestamps with time+Z 8/8 vs 0/3, 10 distinct prices vs 4, real product names ("Baratza Encore Grinder") vs "Product 1", plus apostrophe and CJK rows that survived insert; the skill file also split 12 order_items into 10+2 per INSERT per its D1 batch rule. Trigger phrasings judged: LOAD — "Populate my local D1 database with realistic products and orders so the dashboard isn't empty", "Write a seed script for the Drizzle schema in src/db/schema.ts, about 20 rows per table", "I need demo data for the customers and invoices tables before tomorrow's client demo"; DON'T LOAD — "Add a migration that adds a phone column to the users table", "Export the production orders table to CSV so finance can review last month's revenue" — 5/5 correct, though the broad trigger keywords "sample data"/"test data" could pull it into non-database data-generation requests. Docs lose a point because the D1-specific claims ("max ~10 rows per INSERT", "100 bound parameter limit") are asserted without a source and I could only verify the generated SQL against local SQLite, not real D1.
What is the Db Seed SkillProof Score?
8.8/10 — installs cleanly 5/5, triggers reliably 5/5, output vs. baseline 8/10, docs & honesty 4/5.
How do I install Db Seed?
Copy the install command from this page, run it in your terminal, and restart Claude Code. Skills live in ~/.claude/skills/ (global) or .claude/skills/ inside a project.
Can I use Db Seed with Cursor, Copilot, Gemini CLI, Codex or other AI tools?
The SKILL.md format is native to Claude (Claude Code, Desktop, claude.ai). The instructions inside adapt to other assistants: Cursor rules, GitHub Copilot instructions, Windsurf rules, Custom GPTs, AGENTS.md for OpenAI Codex, and GEMINI.md for Google Gemini CLI — our conversion guides cover each, and the free converter on the tools page does the wrapping for you.