chunking-strategy
Provides chunking strategies for RAG systems. Generates chunk size recommendations (256-1024 tokens), overlap percentages (10-20%), and semantic boundary…
Provides comprehensive Drizzle ORM patterns for schema definition, CRUD operations, relations, queries, transactions, and migrations. Proactively use for any Drizzle ORM development including defining database schemas, writing type-safe queries, implementing relations, managing
$ npx -y skills add giuseppe-trisciuoglio/developer-kit --skill drizzle-orm-patterns --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/drizzle-orm-patternsContext preview
The summary Claude sees to decide when to auto-load this skill.
Provides comprehensive Drizzle ORM patterns for schema definition, CRUD operations, relations, queries, transactions, and migrations. Proactively use for any Drizzle ORM development including defining database schemas, writing type-safe queries, implementing relations, managing
name: drizzle-orm-patterns description: Provides comprehensive Drizzle ORM patterns for schema definition, CRUD operations, relations, queries, transactions, and migrations. Proactively use for any Drizzle ORM development including defining database schemas, writing type-safe queries, implementing relations, managing transactions, and setting up migrations with Drizzle Kit. Supports PostgreSQL, MySQL, SQLite, MSSQL, and CockroachDB. allowed-tools: Read, Write, Edit, Bash, Grep, Glob
Expert guide for building type-safe database applications with Drizzle ORM. Covers schema definition, relations, queries, transactions, and migrations for all supported databases.
| Database | Table Function | Import | |----------|---------------|--------| | PostgreSQL | `pgTable()` | `drizzle-orm/pg-core` | | MySQL | `mysqlTable()` | `drizzle-orm/mysql-core` | | SQLite | `sqliteTable()` | `drizzle-orm/sqlite-core` | | MSSQL | `mssqlTable()` | `drizzle-orm/mssql-core` |
| Operation | Method | Example | |-----------|--------|---------| | Insert | `db.insert()` | `db.insert(users).values({...})` | | Select | `db.select()` | `db.select().from(users).where(eq(...))` | | Update | `db.update()` | `db.update(users).set({...}).where(...)` | | Delete | `db.delete()` | `db.delete(users).where(...)` | | Transaction | `db.transaction()` | `db.transaction(async (tx) => {...})` |
1. **Identify your database dialect** - Choose PostgreSQL, MySQL, SQLite, MSSQL, or CockroachDB 2. **Define your schema** - Use the appropriate table function (pgTable, mysqlTable, etc.) 3. **Set up relations** - Define relations using `relations()` or `defineRelations()` 4. **Initialize the database client** - Create your Drizzle client with proper credentials 5. **Write queries** - Use the query builder for type-safe CRUD operations 6. **Handle transactions** - Wrap multi-step operations in transactions when needed 7. **Set up migrations** - Configure Drizzle Kit for schema management
import { pgTable, serial, text } from 'drizzle-orm/pg-core';
import { drizzle } from 'drizzle-orm/node-postgres';
import { eq } from 'drizzle-orm';
export const users = pgTable('users', {
id: serial('id').primaryKey(),
name: text('name').notNull(),
email: text('email').notNull().unique(),
});
const db = drizzle(process.env.DATABASE_URL);
const [user] = await db.select().from(users).where(eq(users.id, 1));import { eq } from 'drizzle-orm';
// Insert
const [newUser] = await db.insert(users).values({
name: 'John',
email: 'john@example.com',
}).returning();
// Update
await db.update(users)
.set({ name: 'John Updated' })
.where(eq(users.id, 1));
// Delete
await db.delete(users).where(eq(users.id, 1));await db.transaction(async (tx) => {
const [from] = await tx.select().from(accounts)
.where(eq(accounts.userId, fromId));
if (from.balance < amount) {
tx.rollback();
}
await tx.update(accounts)
.set({ balance: sql`${accounts.balance} - ${amount}` })
.where(eq(accounts.userId, fromId));
});See [references/transactions.md](references/transactions.md) for advanced transaction patterns.
1. **Type Safety**: Always use TypeScript and leverage `$inferInsert` / `$inferSelect` 2. **Relations**: Define relations using the relations() API for nested queries 3. **Transactions**: Use transactions for multi-step operations that must succeed together 4. **Migrations**: Use `generate` + `migrate` in production, `push` for development 5. **Indexes**: Add indexes on frequently queried columns and foreign keys 6. **Soft Deletes**: Use `deletedAt` timestamp instead of hard deletes when possible 7. **Pagination**: Use cursor-based pagination for large datasets 8. **Query Optimization**: Use `.limit()` and `.where()` to fetch only needed data
Modular plugin marketplace for Claude Code and agentic CLIs, with validated, spec-driven skills, agents, commands, and workflows for Java, TypeScript, Python, PHP, AWS, and AI.
Repo: giuseppe-trisciuoglio/developer-kit
Provides chunking strategies for RAG systems. Generates chunk size recommendations (256-1024 tokens), overlap percentages (10-20%), and semantic boundary…
Provides workflows to write, debug, and optimize prompts for LLMs, including few-shot example selection, chain-of-thought structuring, system prompt design,…
Implements document chunking, embedding generation, vector storage, and retrieval pipelines for Retrieval-Augmented Generation systems. Use when building RAG…
Provides AWS CloudFormation patterns for Auto Scaling including EC2, ECS, and Lambda. Use when creating Auto Scaling groups, launch configurations, launch…
Provides AWS CloudFormation patterns for Amazon Bedrock resources including agents, knowledge bases, data sources, guardrails, prompts, flows, and inference…
Provides AWS CloudFormation patterns for CloudFront distributions, origins (ALB, S3, Lambda@Edge, VPC Origins), CacheBehaviors, Functions, SecurityHeaders,…