Skip to content

database-pimp

Active router for ALL database and ORM requests — classifies by database type, use case, or ORM preference and routes to the correct skill. Use when choosing a database, setting up an ORM, or working with any data layer.

ModelSource
sonnetpack: database
Full Reference If the request involves databases, data layer, ORM, caching, vector search, or storage in ANY way — choosing a database, schema design, queries, migrations, connections, seeding, RLS, realtime, embeddings, edge data, or anything data-related — you MUST route through this skill FIRST.

This is not optional. This is not negotiable. You cannot skip this.

The orchestration layer for all database expertise. Not documentation — an active router. Every database request flows through this routing table before any response.

Mandatory Announcement — FIRST OUTPUT before anything else:

┏━ 🗄 database-pimp ━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ [one-line description of request/routing] ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

No exceptions. Box frame first, then route.

The database pack covers 6 databases + 2 ORMs — serverless Postgres, BaaS, document, cache, vector, and edge storage. Pair with orm pack (Drizzle/Prisma) for type-safe access.

Classify the request. Invoke the matching skill. No response before invocation.

Request PatternSkill
Serverless Postgres, Neon, branching, connection poolingneon
Supabase, RLS, realtime subscriptions, storage bucketssupabase
MongoDB, document modeling, aggregation pipelinesmongodb
Redis, Upstash, caching, rate limiting, pub/subredis-upstash
Vector search, embeddings, pgvector, similarity queriespostgresql-pgvector
Edge database, SQLite, libSQL, Turso, local-first, vector search in SQLite, AI agent databases, embedded replicas, branching preview DBs, Turso CLI, Turso pricingturso
Drizzle ORM, type-safe queries, push migrationsdrizzle
Prisma ORM, schema modeling, prisma migrateprisma
”Which database should I use?”Decision matrix below

When the user asks which database to use, route through this before any skill invocation:

Use CaseRecommendation
Serverless Postgres, new project, Vercel/CloudflareNeon — branch-per-PR, autoscale to zero
Postgres + auth + storage + realtime in oneSupabase — BaaS, RLS, storage, realtime
Document data, flexible schema, nested objectsMongoDB — document modeling, aggregation
Caching, sessions, rate limiting, queuesRedis/Upstash — serverless Redis, global edge
Semantic search, AI embeddings, similaritypgvector — postgres extension, vector indexing
Edge runtime, SQLite, offline-first, AI agent DBs, vector search in SQLiteTurso — libSQL, distributed edge, embedded replicas, native vector search, per-agent DBs
New project, type-safe schema, push workflowDrizzle — lightweight, SQL-like, no shadow DB
Existing Prisma schema, complex relationsPrisma — mature, rich ecosystem, generate types

Neon vs Supabase: Both are serverless Postgres. Choose Neon for pure database needs (branching, pooling). Choose Supabase when you also need auth, storage, or realtime out of the box.

Drizzle vs Prisma: New projects → Drizzle (faster, lighter, push-based). Existing Prisma schema → stay on Prisma.

Before routing, check project state:

  • stack.json → read database and orm keys, route directly
  • package.json deps → detect installed DB clients, ORM packages
  • drizzle.config.* → Drizzle is in use
  • schema.prisma → Prisma is in use
  • .env / .env.example → check for DATABASE_URL, SUPABASE_URL, TURSO_*, UPSTASH_*
StateRecommendation
No database detectedAsk use case → run decision matrix
DATABASE_URL with neondb.netRoute to neon
SUPABASE_URL presentRoute to supabase
TURSO_DATABASE_URL presentRoute to turso
UPSTASH_REDIS_REST_URL presentRoute to redis-upstash
drizzle.config.* presentRoute to drizzle
schema.prisma presentRoute to prisma
User SaysChain
”Set up my database”Decision matrix → DB skill → ORM skill
”Add caching to my app”redis-upstash
”Add search to my app”postgresql-pgvector (semantic) or mongodb (text)
“Set up auth + database”supabase (handles both)
“I need a type-safe ORM”drizzle (new) or prisma (existing schema)
“Set up database for edge”tursodrizzle (libSQL adapter)
“Add vector search to SQLite”turso (native — no pgvector needed)
“Build a RAG app with SQLite”turso (vector search + AI embeddings)
“Per-agent or per-tenant database”turso (Platform API, one DB per agent)
  • Never respond about databases before invoking the target skill
  • No summarizing, planning to invoke, or explaining what you’re about to do
  • If unclear which database, run the decision matrix — ask ONE question if needed
  • The skill’s content has the verified facts — always defer to it
  • ORM questions that are DB-agnostic → route to drizzle or prisma directly
  • Never recommend a database that conflicts with stack.json without flagging it