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 commands/ccivlcid/vibeharness/databasegit clone --depth 1 https://github.com/ccivlcid/VibeHarnessWhat 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.00000 | $0.00901 |
| Opus 5 | $0.00000 | $0.00451 |
| Sonnet 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 2d 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.
- 2d ago First seen · 158 lines · 0 tokens per session scan A 60e077100b00
database is a command published in the GitHub repository ccivlcid/VibeHarness (5 stars, last pushed 4mo 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
git
Git operations with intelligent commit messages and workflow optimization.
checklist
Generate a custom checklist for the current feature based on user requirements.
clarify
Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.
specify
Create or update the feature specification from a natural language feature description.
analyze
Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.
constitution
Create or update the project constitution from interactive or provided principle inputs.