Borrowing it
Nothing to install: this file belongs to ccivlcid/VibeHarness. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/ccivlcid/VibeHarness/main/.claude/commands/database.mdgit clone --depth 1 https://github.com/ccivlcid/VibeHarnessWrote 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/commands/ccivlcid/vibeharness/database)<a href="https://agentmods.dev/commands/ccivlcid/vibeharness/database"><img src="https://agentmods.dev/badge/commands/ccivlcid/vibeharness/database/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/commands/ccivlcid/vibeharness/database"><img src="https://agentmods.dev/badge/commands/ccivlcid/vibeharness/database.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00000 | $0.00901 |
| Opus 5.5 | $0.00000 | $0.00360 |
| Sonnet 5.5 | $0.00000 | $0.00180 |
| Haiku 4.5 | $0.00000 | $0.00090 |
Grade A, and why
database 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 2mo 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 — 158 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Database — SQLite + Prisma
This command is part of the VibeHarness framework. Node.js/TypeScript projects only. For Python projects, use SQLite + SQLAlchemy. Record schema design decisions in
docs/ai-dev/. Verify stack matchesPROJECT_RULES.md.
File-based DB that works without any installation, signup, or server setup.
Why SQLite + Prisma
- SQLite: A single file (
dev.db) is the entire database. Nothing to install - Prisma: Write schemas like markdown, auto-generate type-safe queries
- No external service signup or server needed
npm installonce and done
Initial Setup
npm install prisma @prisma/client
npx prisma init --datasource-provider sqlite
This creates prisma/schema.prisma.
Schema Example
prisma/schema.prisma:
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = "file:./dev.db"
}
model User {
id String @id @default(cuid())
email String @unique
name String?
password String
posts Post[]
createdAt DateTime @default(now())
}
model Post {
id String @id @default(cuid())
title String
content String?
author User @relation(fields: [authorId], references: [id])
authorId String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
After schema changes:
npx prisma db push
Prisma Client
// src/lib/db.ts
import { PrismaClient } from '@prisma/client'
const globalForPrisma = globalThis as unknown as { prisma: PrismaClient }
export const db = globalForPrisma.prisma || new PrismaClient()
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = db
CRUD Patterns
import { db } from '@/lib/db'
// Create
const user = await db.user.create({
data: { email: '[email protected]', name: 'John', password: hashedPassword }
})
// Read (all)
const posts = await db.post.findMany({
include: { author: true },
orderBy: { createdAt: 'desc' }
})
// Read (single)
const post = await db.post.findUnique({
where: { id: postId },
include: { author: true }
})
// Update
const updated = await db.post.update({
where: { id: postId },
data: { title: 'Updated title' }
})
// Delete
await db.post.delete({ where: { id: postId } })
// Search
const results = await db.post.findMany({
where: { title: { contains: 'keyword' } }
})
// Pagination
const posts = await db.post.findMany({
skip: 0,
take: 10,
orderBy: { createdAt: 'desc' }
})
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.
- 2mo ago First seen · 158 lines · 0 tokens per session scan A 60e077100b00
database is a command published in the GitHub repository ccivlcid/VibeHarness (4 stars, last pushed 6mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 901 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.
Other commands, from other repositories
init
Initialize configurations for Supabase local development.
security
Scan a SQL string, .sql file, or SQL-building source file for injection risks with GoSQLX.
database-setup
Use when a project needs to store data and has no database yet. Setting up Supabase, creating tables, writing queries, and connecting them to the frontend. Written for designers.
new-migration
Scaffold a new database migration file pair (up + down) with auto-detection of migration tool and numbering.
json.batch_get
Read multiple JSON values by document and path.
json.index.drop
Drop a JSON secondary index by name.