From Harness Web
Drizzle ORM conventions — schema as source of truth, the generate/migrate workflow, expand-contract migrations for safe production changes, no destructive DDL without a reviewed PR, and the fluent vs relational query API. Use when defining schema, writing migrations, or querying the database with Drizzle.
How this skill is triggered — by the user, by Claude, or both
Slash command
/harness-web:addon-drizzleThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Drizzle is the database layer. Schema is the source of truth — the database
Drizzle is the database layer. Schema is the source of truth — the database
schema must match db/schema.ts at all times, and changes must go through
the migration workflow.
Schema is the source of truth.
db/schema.ts using Drizzle's TypeScript DSL.Migration workflow:
npx drizzle-kit generate to produce a SQL migration file, then
npx drizzle-kit migrate to apply it.npx drizzle-kit push syncs the schema to a local DB
without generating a migration file. Do not use push against a production
or shared database.Expand-contract for safe production migrations:
No destructive DDL without a migration PR:
DROP TABLE, DROP COLUMN, and ALTER COLUMN … NOT NULL on an existing
nullable column are destructive. Require a reviewed migration PR before applying.data-layer-implementer agent must not run destructive SQL directly.Query API:
db.select().from(users).where(...)) for
simple queries.db.query.users.findMany({ with: { posts: true } }))
for joined reads — it avoids N+1 without an ORM-level lazy-load footgun.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub camilool8/harness-engineering-templates --plugin harness-web