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 agentmods add skills/actionhero/keryx/database-and-schemanpx skills add actionhero/keryx --skill database-and-schemagit clone --depth 1 https://github.com/actionhero/keryxWrote 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/actionhero/keryx/database-and-schema)<a href="https://agentmods.dev/skills/actionhero/keryx/database-and-schema"><img src="https://agentmods.dev/badge/skills/actionhero/keryx/database-and-schema.svg" alt="Measured on agentmods" height="20"></a>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 | $0.00020 | $0.00360 |
| Opus 5 | $0.00010 | $0.00180 |
| Sonnet 5 | $0.00004 | $0.00072 |
| Haiku 4.5 | $0.00002 | $0.00036 |
Grade A, and why
database-and-schema 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 today.
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.
What it actually says
Database & Schema
Database Names
- Development:
keryx - Test:
keryx-test
Both require PostgreSQL running locally. Defaults assume Homebrew Postgres with $USER as superuser (no password).
Schema Location
Drizzle ORM table definitions live in example/backend/schema/. Each model has its own file.
Migrations
cd example/backend
bun run migrations # Generate migration SQL from schema changes
Migration SQL files are stored in example/backend/drizzle/. Migrations auto-apply on server start when config.database.autoMigrate is true.
Ops Pattern
Business logic is separated from actions into Ops files in example/backend/ops/ (e.g., UserOps, MessageOps). Actions call Ops; Ops handle DB queries and business rules.
Zod Model Helpers
- Framework (
packages/keryx/util/zodMixins.ts):zIdOrModel()— generic factory for ID-or-model input validation - App (
example/backend/util/zodMixins.ts):zUserIdOrModel(),zMessageIdOrModel()— importszIdOrModelfrom"keryx"
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.
- today First seen · 42 lines · 20 tokens per session scan A 843b4fc01d91
database-and-schema is a skill published in the GitHub repository actionhero/keryx (33 stars, last pushed yesterday), licensed MIT. It adds 20 tokens to every session and 360 once invoked, about $0.0001 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-05.
Other skills, from other repositories
database-schema-designer
Design production-ready database schemas for SQL and NoSQL databases. Covers normalization, indexing strategy, migration management with rollback safety, query optimization, and multi-tenant patterns. Supports PostgreSQL, MySQL, SQLite, MongoDB, and Vitess.
drizzle-orm
Use when modeling data or querying with Drizzle ORM in TypeScript — pgTable schema in .ts, type-safe select/insert/relational queries, drizzle-kit migrations. NOT Prisma Client or schema.prisma (that is prisma-orm), NOT ORM-agnostic migration strategy (that is db-migrations), NOT Postgres engine tuning or EXPLAIN…
optimize-a-query
Diagnose and fix a slow Postgres query in the builders-stack — read its EXPLAIN plan, find the missing index or the ORM N+1, and confirm the fix. Use when a page or endpoint is slow, a query times out, or pgstatstatements shows a hot query. Pairs with design-a-schema for the index itself.
run-lean-on-neon
Keep Postgres fast under load and inside Neon's free tier. Use when choosing a connection string, worrying about "the DB crashes at load", deciding a session strategy, or trying to stay under Neon's free limits (storage / compute-hours). Corrects the common mistake of reaching for postgresql.conf / PgTune — most of…
database
Manage PostgreSQL, SQLite, and Redis databases: create, migrate, backup, restore, query, optimize.
database-testing
Database schema validation, data integrity testing, migration testing, transaction isolation, and query performance. Use when testing data persistence, ensuring referential integrity, or validating database migrations.