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.
npx skills add pproenca/dot-skills --skill drizzle-sqlitegit clone --depth 1 https://github.com/pproenca/dot-skillsWrote 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.
[](https://agentmods.dev/skills/pproenca/dot-skills/drizzle-sqlite)<a href="https://agentmods.dev/skills/pproenca/dot-skills/drizzle-sqlite"><img src="https://agentmods.dev/badge/skills/pproenca/dot-skills/drizzle-sqlite/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.
<a href="https://agentmods.dev/skills/pproenca/dot-skills/drizzle-sqlite"><img src="https://agentmods.dev/badge/skills/pproenca/dot-skills/drizzle-sqlite.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00229 | $0.02912 |
| Opus 5 | $0.00114 | $0.01456 |
| Sonnet 5 | $0.00046 | $0.00582 |
| Haiku 4.5 | $0.00023 | $0.00291 |
Grade A, and why
drizzle-sqlite 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 6d 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.
How it starts
The opening of the file, as written. The whole thing — 140 lines — stays where its author put it; the contents beside it link to each section on GitHub.
dot-skills Drizzle SQLite Best Practices
Library-reference skill for Drizzle ORM with SQLite-family backends. 45 rules across 8 categories, ordered by execution-lifecycle impact: schema → migrations → query → relations → transactions → performance → connection → types.
When to Apply
Reference these guidelines when:
- Defining
sqliteTableschemas — choosing column types, primary keys, indexes, foreign keys - Running
drizzle-kit generate/migrate/push, or hand-editing a migration SQL file - Writing queries with
db.select(),db.insert(),db.update(),db.delete() - Reaching for nested data with
db.query.*and the relational query builder - Wrapping multi-statement writes in
db.transaction()ordb.batch()(libsql/Turso/D1) - Optimizing a hot-path query with
.prepare()+sql.placeholder()or covering indexes - Setting up the Drizzle client (pragmas, driver choice, singleton lifecycle)
- Wiring database types into application code (
$inferSelect, drizzle-zod, JSON shapes)
The skill is not specific to one driver — it covers behavior shared across better-sqlite3, libsql, bun:sqlite, expo-sqlite, op-sqlite, and Cloudflare D1, calling out driver-specific deviations where they exist.
Architectural Context
SQLite is unusual among production databases:
- No client/server. The "connection" is a file open. There is no connection pool, no auth, no network in the local-file case.
- Single writer. One writer at a time, no matter how many connections. Reads can be parallel under WAL.
- No native booleans or dates. Everything is
INTEGER,REAL,TEXT,BLOB, orNULL— Drizzle column modes encode the rest. - Limited
ALTER TABLE. OnlyRENAME COLUMN,ADD COLUMN,DROP COLUMN. Type changes and constraint additions need a table rebuild. - Foreign keys off by default.
PRAGMA foreign_keys = ONis per-connection and not persistent.
Many rules in this skill exist because Drizzle's API abstracts over PostgreSQL/MySQL/SQLite uniformly — but the underlying SQLite engine has constraints that show up at runtime if you treat it like Postgres.
What ships with it
49 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- AGENTS.md 12 KB
- assets/templates/_template.md 2.5 KB
- metadata.json 1.8 KB
- references/_sections.md 3.6 KB
- references/conn-enable-wal.md 2.8 KB
- references/conn-foreign-keys-pragma.md 2.7 KB
- references/conn-pick-driver-deliberately.md 4.2 KB
- references/conn-set-busy-timeout.md 2.3 KB
- references/conn-singleton-client.md 3.2 KB
- references/migrate-apply-with-migrator.md 2.5 KB
- references/migrate-commit-migrations-to-git.md 2.3 KB
- references/migrate-config-dialect-and-out.md 2.0 KB
- references/migrate-data-backfill-as-custom-sql.md 2.9 KB
- references/migrate-explicit-renames.md 2.5 KB
- references/migrate-generate-not-push-in-prod.md 2.2 KB
- references/perf-avoid-count-star-on-large-tables.md 3.1 KB
- references/perf-bulk-insert-multi-row-values.md 2.1 KB
- references/perf-covering-index-for-hot-queries.md 3.0 KB
- references/perf-keyset-not-offset-for-deep-pages.md 2.7 KB
- references/perf-prepare-hot-paths.md 2.7 KB
- references/query-always-limit-listings.md 2.5 KB
- references/query-avoid-n-plus-one-with-inarray.md 2.2 KB
- references/query-bind-parameters-not-concat.md 2.5 KB
- references/query-returning-instead-of-reselect.md 2.2 KB
- references/query-select-columns-not-star.md 1.9 KB
- references/query-toSQL-and-explain.md 3.5 KB
- references/query-upsert-with-onconflict.md 2.8 KB
- references/rel-declare-relations-for-rqb.md 3.6 KB
- references/rel-filter-with-where-inside-with.md 2.6 KB
- references/rel-leftjoin-for-flat-aggregates.md 2.8 KB
- references/rel-partial-columns-in-with.md 2.1 KB
- references/rel-prefer-with-over-manual-joins.md 2.5 KB
- references/schema-always-primary-key.md 1.9 KB
- references/schema-foreign-keys-with-actions.md 2.4 KB
- references/schema-index-foreign-keys-and-lookups.md 2.5 KB
- references/schema-integer-for-booleans.md 2.0 KB
- references/schema-text-json-not-blob-json.md 2.4 KB
- references/schema-timestamp-mode-for-dates.md 2.1 KB
- references/schema-unique-constraints-for-natural-keys.md 2.4 KB
- references/tx-batch-for-libsql-roundtrips.md 3.2 KB
- references/tx-handle-busy-with-retry.md 3.1 KB
- references/tx-no-network-io-inside-transaction.md 2.9 KB
- references/tx-single-writer-no-parallel-writes.md 2.8 KB
- references/tx-wrap-multi-statement-writes.md 3.0 KB
- references/types-bigint-mode-for-large-integers.md 3.1 KB
- references/types-drizzle-zod-for-runtime-validation.md 3.2 KB
- references/types-getTableColumns-for-reuse.md 2.8 KB
- references/types-infer-select-insert.md 3.0 KB
- references/types-narrow-json-with-dollartype.md 3.4 KB
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.
- 6d ago First seen · 140 lines · 229 tokens per session scan A c5595e0dafdf
drizzle-sqlite is a skill published in the GitHub repository pproenca/dot-skills (205 stars, last pushed 24d ago), licensed MIT. It adds 229 tokens to every session and 2,912 once invoked, about $0.0011 per session on Opus 5. 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-09-03.
Other skills, from other repositories
psl-ast-layers
How to use the PSL syntax tree layers (green tree, red tree, strongly-typed AST classes) correctly. Use for any PSL-related work: PSL interpreters (contract-psl), helpers inside the psl-parser package, the language server, formatters, or anything else that consumes parse() output from @internal/psl-parser.
ast-visitor-pattern
Use the frozen-class/visitor pattern for discriminated unions that have multiple dispatch sites. Use when creating a new set of variants (commands, IR nodes, factory calls) that will be switched over in 2+ places, or when refactoring an existing union type that has grown multiple switch sites.
no-bare-casts
Writing as in TypeScript or TSX production code, modifying a file that contains a bare as cast, silencing a type error with a cast, encountering as unknown as, or reviewing a cast site.
bumping-biome
Bumps biome package versions (e.g. @biomejs/biome) using pnpm, aligns biome.jsonc files with the new version/s across the repository and runs biome-related checks. Use when required to update biome to a newer version - explicitly or implicitly (e.g. after running pnpm up, pnpm update, pnpm upgrade without specific…
azure-cosmos-ts
Data plane SDK for Azure Cosmos DB NoSQL API operations — CRUD on documents, queries, bulk operations.
kysely
Guidelines for developing with Kysely, a type-safe TypeScript SQL query builder with autocompletion support.