drizzle

drizzle is a skill for Claude Code, Codex from andresquirogadev/skillsense. It costs 0 tokens per session (504 once invoked), scanned A, original, MIT.

A set of coding conventions for Drizzle ORM, a TypeScript library for defining database tables and querying databases. It covers schemas, database connections, types, and migration setup.

In plain words
What is it for?
Use it when building a TypeScript application with Drizzle ORM and PostgreSQL or a compatible serverless database. It guides schema files, a shared database client, inferred types, and migration configuration.
Why use it?
It keeps database code in a consistent structure and reduces guesswork when adding tables, types, connections, or database changes.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it when building a TypeScript application with Drizzle ORM and PostgreSQL or a compatible serverless database. It guides schema files, a shared database client, inferred types, and migration configuration.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/andresquirogadev/skillsense/drizzle
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add andresquirogadev/skillsense --skill drizzle
Clone the repo
git clone --depth 1 https://github.com/andresquirogadev/skillsense

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for drizzle

README.md
[![agentmods](https://agentmods.dev/badge/skills/andresquirogadev/skillsense/drizzle/github.svg)](https://agentmods.dev/skills/andresquirogadev/skillsense/drizzle)
Your own site
<a href="https://agentmods.dev/skills/andresquirogadev/skillsense/drizzle"><img src="https://agentmods.dev/badge/skills/andresquirogadev/skillsense/drizzle/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for drizzle

Your own site · 80×15
<a href="https://agentmods.dev/skills/andresquirogadev/skillsense/drizzle"><img src="https://agentmods.dev/badge/skills/andresquirogadev/skillsense/drizzle.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 0 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 504 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.00504
Opus 5 $0.00000 $0.00252
Sonnet 5 $0.00000 $0.00101
Haiku 4.5 $0.00000 $0.00050

Measured 9d ago against content hash e541d183aff6, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

drizzle scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

packages/catalog/skills/drizzle/SKILL.md · 57 lines

How it starts

The opening of the file, as written. The whole thing — 57 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Drizzle ORM Skill

You are working with Drizzle ORM. Apply these conventions.

Schema Definition

  • Define schemas in src/db/schema.ts using Drizzle's table helpers:
    import { pgTable, serial, text, timestamp } from 'drizzle-orm/pg-core';
    export const users = pgTable('users', {
      id: serial('id').primaryKey(),
      email: text('email').notNull().unique(),
      createdAt: timestamp('created_at').defaultNow().notNull(),
    });
    
  • Export all table definitions; Drizzle infers TypeScript types automatically.
  • Use $inferSelect and $inferInsert for type inference:
    export type User = typeof users.$inferSelect;
    export type NewUser = typeof users.$inferInsert;
    

Database Client

  • Create src/db/index.ts as the singleton connection:
    import { drizzle } from 'drizzle-orm/postgres-js';
    import postgres from 'postgres';
    import * as schema from './schema.js';
    const queryClient = postgres(process.env.DATABASE_URL!);
    export const db = drizzle(queryClient, { schema });
    
  • For serverless environments, use drizzle-orm/neon-http or drizzle-orm/vercel-postgres.

Migrations

  • Configure drizzle.config.ts at the project root.
  • Generate migrations: npx drizzle-kit generate.
  • Apply migrations: npx drizzle-kit migrate.
  • Inspect schema drift: npx drizzle-kit check.

Queries

  • Use the query builder with full type safety:
    const user = await db.select().from(users).where(eq(users.id, id)).limit(1);
    const result = await db.query.users.findFirst({ where: eq(users.id, id), with: { posts: true } });
    
  • Prefer the db.query relational API for queries that include relations.
  • Use db.insert(table).values({ … }).returning() to get inserted rows back.
  • Use db.transaction(async (tx) => { … }) for atomic operations.

Indexes & Relations

  • Define relations with relations() helper — used by the relational query API, not the DB schema itself.
  • Add DB indexes in the table definition: index('email_idx').on(table.email).

Read the full file on GitHub · 57 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 57 lines · 0 tokens per session scan A e541d183aff6

Subscribe to this mod's changes

drizzle is a skill published in the GitHub repository andresquirogadev/skillsense (2 stars, last pushed 5mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 504 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.