brain-db
暂无简介
- License 许可
- MIT
- 最近更新
- 2026-09-02
- Stars
- ★ 0
- Forks
- 0
02 资源文件 4
- 参考文档references/extension-patterns.md3.7 KB
- 脚本scripts/brain-db-guards.ts1.7 KB
- 脚本scripts/brain-db.ts14.4 KB
- 参考文档skill-bundle-manifest.json1.4 KB
03 SKILL.md 正文
Brain DB
Query transcripts, inspect your schema, and extend brain.db with your own tables.
The Database
.brain/brain.db is a SQLite database local to each brain. It has two layers:
Foundation (managed by agentbootup — don't modify):
chunks— transcript content indexed from all sessions (FTS5 searchable)chunks_fts— full-text search index over chunkstranscript_index— tracks which transcript files have been indexedschema_meta— key/value metadata (schema_version, brain_id, updated_at)
Extensions (owned by you — use for anything):
Tables prefixed brain_ are fully yours. Use them for whatever serves your work:
- Memory — decisions, patterns, gotchas, domain knowledge
- Active work — task state, queues, progress tracking across sessions
- Domain data — any structured data your project needs (orders, metrics, records, analysis results)
- Operational state — build history, sync state, job queues, caches
The rule is simple: if it's useful to your work and local to this brain, put it here. No need to justify it as "memory" — brain.db is your working database, not just an archive.
CLI Script
bun .claude/skills/brain-db/scripts/brain-db.ts <command> [args]
Commands
| Command | What it does |
|---|---|
query <text> |
Full-text search transcripts |
sql <query> |
Run any SELECT query |
stats |
Row counts, db size, last indexed |
schema |
Show all tables and their columns |
extend <table> <sql> |
Create a custom brain_ table |
insert <table> <json> |
Insert a row into a brain_ table |
migrate <version> <sql> |
Run a migration and record it |
Querying Transcripts
Full-text search — finds sessions where you worked on a topic:
bun .claude/skills/brain-db/scripts/brain-db.ts query "inbox daemon routing"
Returns: session IDs, timestamps, matching content previews.
SQL query — for structured lookups:
bun .claude/skills/brain-db/scripts/brain-db.ts sql \
"SELECT session_id, datetime(timestamp/1000,'unixepoch') as when, substr(content,1,200) as preview
FROM chunks WHERE turn_type='assistant' ORDER BY timestamp DESC LIMIT 10"
Useful columns in chunks:
brain_id— which brain produced this chunkturn_type—user,assistant, ormixedsession_id— group chunks from the same sessiontimestamp— milliseconds since epochcontent— the actual texttoken_count— size of the chunk
Inspecting Your DB
# Overview: row counts, db size, last indexed session
bun .claude/skills/brain-db/scripts/brain-db.ts stats
# All tables and columns
bun .claude/skills/brain-db/scripts/brain-db.ts schema
Extending with Custom Tables
Each brain can add any tables it needs. Use the brain_ prefix to keep your tables clearly separated from foundation tables.
You decide what goes here. Some examples of how brains use it:
- Tracking work orders and their status across sessions
- Caching expensive computation results
- Storing domain data the brain is actively working with (e.g. a list of repos, a set of API endpoints, customer records)
- Queue tables for deferred work
- Anything you'd reach for SQLite for in a normal project
Create a table:
bun .claude/skills/brain-db/scripts/brain-db.ts extend brain_decisions \
"CREATE TABLE brain_decisions (
id TEXT PRIMARY KEY,
date TEXT NOT NULL,
topic TEXT NOT NULL,
decision TEXT NOT NULL,
rationale TEXT,
tags TEXT
)"
Insert a row:
bun .claude/skills/brain-db/scripts/brain-db.ts insert brain_decisions \
'{"id":"d-001","date":"2026-03-25","topic":"config consolidation","decision":"agentbootup.json is canonical","rationale":"single source eliminates drift","tags":"config,architecture"}'
Query your extension:
bun .claude/skills/brain-db/scripts/brain-db.ts sql \
"SELECT date, topic, decision FROM brain_decisions ORDER BY date DESC"
Schema Migrations
When you need to alter an existing extension table, use migrations to track versions:
bun .claude/skills/brain-db/scripts/brain-db.ts migrate ext-v2 \
"ALTER TABLE brain_decisions ADD COLUMN pr_number TEXT"
This runs the SQL and records {"key": "ext-v2", "value": "2026-03-25"} in schema_meta so you can check what migrations have run.
Check migration history:
bun .claude/skills/brain-db/scripts/brain-db.ts sql \
"SELECT key, value FROM schema_meta WHERE key LIKE 'ext-%'"
Common Extension Patterns
See references/extension-patterns.md for ready-to-use table definitions:
brain_decisions— architectural and design decisionsbrain_patterns— recurring patterns (good and bad)brain_todos— deferred work items with prioritybrain_entities— named things you want to track (people, systems, concepts)brain_metrics— time-series measurements
Direct Bun SQLite (for scripting)
When you need more control, use Bun's SQLite directly:
import { Database } from 'bun:sqlite';
const db = new Database('.brain/brain.db');
// FTS search
const results = db.query(`
SELECT c.session_id, c.timestamp, c.content
FROM chunks_fts f
JOIN chunks c ON c.rowid = f.rowid
WHERE chunks_fts MATCH ?
ORDER BY rank
LIMIT 20
`).all('inbox daemon');
db.close();
Troubleshooting
"no such table: chunks" — brain.db not initialized. Run: agentbootup brain upgrade
"no such table: brain_decisions" — extension not created yet. Run the extend command first.
Empty FTS results — transcripts may not be indexed. Run: agentbootup brain index-transcripts
Migration already applied — check schema_meta before running: sql "SELECT * FROM schema_meta WHERE key='ext-v2'"
04 同仓库更多 Skills
fixture-skill
Secret-free recovery fixture skill.
user-story-generator
Generate standalone user stories for features without creating a full PRD. Perfect for backlog grooming and story refinement.
user-journey-mapper
Map user flows and journeys through your application for UX design and workflow visualization, independent of testing.
transcript-query
暂无简介
test-plan-generator
Generate comprehensive E2E test plans from PRDs, task lists, or descriptions with environment-aware prerequisites and issue tracking.
tasklist-generator
Generate high-level tasks and gated sub-tasks from a PRD, with agent assignments, commit/PR strategy, and relevant files.