skills/hyperdrive-drizzle/SKILL.md
## hyperdrive-drizzle ### Rules 1. Create the Postgres/Drizzle client inside each Worker invocation (`fetch`, `queue`, `scheduled`, or Durable Object method) using `env.HYPERDRIVE.connectionString`; never create global pools or long-lived shared clients. 2. Migrations must ALWAYS run through Drizzle (`drizzle-kit generate`, `drizzle-kit migrate`, or project `bun run db:*` scripts); never hand-roll migration SQL or apply schema changes manually. 3. Keep schema and migrations in lockstep: change
npx skillsauth add theprimeagen/skills skills/hyperdrive-drizzleInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
fetch, queue, scheduled, or Durable Object method) using env.HYPERDRIVE.connectionString; never create global pools or long-lived shared clients.drizzle-kit generate, drizzle-kit migrate, or project bun run db:* scripts); never hand-roll migration SQL or apply schema changes manually.schema.ts, generate a migration, and run the migration before deploying code that depends on it.import { Client } from "pg";
import { drizzle } from "drizzle-orm/node-postgres";
import { users } from "./db/schema";
export default {
async fetch(_request, env): Promise<Response> {
const client = new Client({
connectionString: env.HYPERDRIVE.connectionString,
});
await client.connect();
const db = drizzle(client);
const result = await db.select().from(users).limit(1);
return Response.json(result[0] ?? null);
},
} satisfies ExportedHandler<{ HYPERDRIVE: Hyperdrive }>;
{
"scripts": {
"db:generate": "drizzle-kit generate",
"db:migrate:local": "drizzle-kit migrate --config drizzle.local.config.ts",
"db:migrate:remote": "drizzle-kit migrate --config drizzle.remote.config.ts"
}
}
tools
# Neovim Lua API Reference This document contains type stubs and API references for Neovim's Lua API. Use this as a reference when writing Neovim plugins or configurations in Lua. --- ## api The following are type stubs for all the functions available on `vim.api.*`. Prefer these functions where possible. ```lua vim.api = {} vim.api.nvim__buf_debug_extmarks(buffer, keys, dot) vim.api.nvim__buf_stats(buffer) vim.api.nvim__complete_set(index, opts) vim.api.nvim__get_lib_dir() vim.api.nvim
development
# Neovim Treesitter API Reference This document contains type stubs and API references for Neovim's treesitter Lua API. Use this as a reference when working with treesitter in Neovim Lua. --- ## tsnode TSNode methods - represents a specific element in a parsed syntax tree. Use these methods to navigate and inspect nodes. ```lua function TSNode:parent() end function TSNode:next_sibling() end function TSNode:prev_sibling() end function TSNode:next_named_sibling() end function TSNode:prev_name
tools
# Neovim LSP API Reference This document contains function definitions from Neovim's LSP help docs. Use this as a reference when working with LSP in Neovim Lua. --- ## lsp Functions extracted from `lsp.txt`. ```lua vim.lsp.buf_attach_client({bufnr}, {client_id}) vim.lsp.buf_detach_client({bufnr}, {client_id}) vim.lsp.buf_is_attached({bufnr}, {client_id}) vim.lsp.buf_notify({bufnr}, {method}, {params}) vim.lsp.buf_request_all({bufnr}, {method}, {params}, {handler}) vim.lsp.buf_request_sync({
tools
# Neovim Diagnostics API Reference This document contains function definitions for Neovim's diagnostics Lua API. Use this as a reference when working with diagnostics in Neovim Lua. --- ## diagnostic vim.diagnostic APIs, types, and helpers. ```lua function get_qf_id_for_title(title) function __newindex(t, name, handler) function __index(t, bufnr) function callback() function to_severity(severity) function severity_predicate(severity) function filter_by_severity(severity, diagnostics) functi