skills/seed/SKILL.md
Database seeding, test fixtures, factory patterns, fake data generation. Idempotent seed scripts.
npx skillsauth add arbazkhan971/godmode seedInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/godmode:seed, "seed the database", "generate test data"# Detect ORM and factory libraries
grep -r "prisma\|typeorm\|sequelize\|django\|sqlalchemy" \
package.json pyproject.toml Gemfile 2>/dev/null
ls prisma/seed.ts db/seeds.rb scripts/seed* 2>/dev/null
grep -r "@faker-js\|faker\|factory_bot\|Bogus" \
package.json pyproject.toml 2>/dev/null
SEEDING ENVIRONMENT:
Language: <TS | Python | Go | Ruby | Java>
ORM: <Prisma | Drizzle | SQLAlchemy | ActiveRecord>
Database: <PostgreSQL | MySQL | SQLite | MongoDB>
Existing seeds: <path or "none detected">
Factory lib: <fishery | factory_boy | none>
Faker lib: <@faker-js/faker | Faker Python | none>
Library selection:
TypeScript: fishery
Python: factory_boy
Ruby: FactoryBot
Go: table-driven builders + gofakeit
C#: Bogus
Java: Instancio
Key patterns:
Base factory with faker defaults + sequence IDs
Traits for variants (admin, inactive, published)
build() for in-memory, create() for persisted
buildList(N) for batches
Override any field at call site
IDEMPOTENT SEED RULES:
1. ALWAYS upsert (insert or update), never plain insert
2. Stable identifiers (slug, email) not auto-increment
3. Dependency order (users before posts)
4. Wrap each group in transaction
5. Log: created vs skipped vs updated
6. Re-runnable: running twice = same result
SEED STRUCTURE:
faker.seed(42) for determinism
Phase 1: reference data (roles, categories via upsert)
Phase 2: core entities (fixed + random users)
Phase 3: dependent entities (posts, comments)
Check count vs target, only create delta
Seed in topological order: reference -> independent -> first-level deps -> second-level deps -> M:N joins -> derived data.
Use Pareto distribution: 20% of parents get 80% of children for realistic associations.
NEVER insert one row at a time.
Batch size: 500-5000 rows per INSERT.
IF 100K+ rows: streaming or raw COPY (PostgreSQL)
IF bulk loading:
SET session_replication_role = 'replica'
(disable FK checks during load)
After: REINDEX, ANALYZE
Performance thresholds:
50 rows: <1s (dev seed)
5K rows: <10s (staging seed)
100K rows: <60s (demo seed via COPY)
faker.seed(42) = same data every runIF production snapshot needed:
Replace emails: [email protected]
Replace names, phones, addresses: faker
Remove: credit cards, API keys, tokens, passwords
Add noise to financial amounts (+-10%)
Shift dates by random offset
NEVER copy production without anonymization
Truncate cascade: full reset
Delete by marker: DELETE WHERE source = 'seed'
Transaction rollback: BEGIN->seed->test->ROLLBACK
Database drop/create: CI pipelines
Snapshot restore: pg_restore from dump
ENVIRONMENT-AWARE:
Dev: 50 users, deterministic, minimal
Staging: 5K users, randomized, weekly reset
Demo: 200 curated, deterministic
Production: NEVER seed fake data
Commit: "seed: add <desc> seeding infrastructure"
grep -r "prisma\|typeorm\|sequelize\|django" \
package.json pyproject.toml Gemfile 2>/dev/null
ls prisma/seed.ts db/seeds.rb scripts/seed* 2>/dev/null
Log to .godmode/seed-results.tsv:
step\tentity\torm\tmethod\tstatus\tdetails
Print: Seed: {N} entities, {rows} rows. Idempotent: {yes|no}. Env guard: {active}. Status: {DONE|PARTIAL}.
KEEP if: idempotent (re-run safe) AND batch-inserted
AND dependency order correct
DISCARD if: unique constraint on re-run
OR FK errors OR single-row loops
STOP when:
- All entities seeded idempotently
- Env guard active, --reset works
- User requests stop
development
Web performance optimization. Lighthouse, bundle analysis, code splitting, image optimization, critical CSS, fonts, service workers, CDN.
development
Webhook design, delivery, retry, HMAC verification, event subscriptions, dead letter queues.
development
Vue.js mastery. Composition API, Pinia, Vue Router, Nuxt SSR/SSG, Vite optimization, testing.
development
Evidence gate. Run command, read full output, confirm or deny claim. No trust, only proof.