Db Seed
Generates re-runnable SQL/Drizzle seed scripts from your schema, in foreign-key order
Test report
- Verdict
- Tested · Works
- Score
- 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-seedGenerates 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.