Install any skill in seconds. Free to start, no credit card required.
Get Started Free →SQLite-based project knowledge tracker. Manages entities, relationships, tasks, threads, decisions, and events per project folder. Use /brain to query or update project_brain.db. Triggers on: 'brain', 'project knowledge', 'what do we know about', 'open tasks', 'recent decisions'.
.claude/skills/coco-research-brain/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-14 | ✗→✓ | ▲ Improved | -24% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 47% | 0% |
| case-20 | ✗→✓ | ▲ Improved | -59% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 283% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -48% | 0% |
A structured SQLite database (project_brain.db) that lives in each project folder, replacing flat markdown memory files with queryable, relational knowledge.
bashBRAIN="python3 ~/.claude/skills/brain/scripts/brain/brain_cli.py" # Initialize in current project folder $BRAIN init # Create a project $BRAIN add-project "My Project" --slug my-project --desc "Example project description" # Add entities (upsert --- safe to run repeatedly) $BRAIN add-entity my-project person "Alice Example" --external-id 2882 $BRAIN add-entity my-project team "Engineering" --external-id 33 $BRAIN add-entity my-project module "PlatformHub" # Add relationships $BRAIN add-rel 1 2 member_of $BRAIN add-rel 1 3 administers # Tasks $BRAIN add-task my-project "Configure external reviewer access" --priority 1 $BRAIN update-task 1 --status in_progress $BRAIN tasks my-project --status open # Threads (group related work) $BRAIN add-thread my-project "External User Access" --category request $BRAIN link-thread 1 task 1 $BRAIN link-thread 1 decision 1 # Decisions $BRAIN add-decision my-project 2026-04-08 "Use Stakeholder role for external users" \ --context "No license consumed, view-only" --decided-by You # Events $BRAIN add-event my-project 2026-04-08 call "Charlie Customer Call" \ --summary "Priorities deck shared" --participants "Alice,Bob,Charlie,You" # CoCo context (session start) $BRAIN context my-project # Search across everything $BRAIN context my-project --search "Morgan" # Entity graph (show all connections) $BRAIN graph 1 # Thread detail (show all linked items) $BRAIN thread-detail 1
This is the most important command. When the user runs /brain:update, Claude MUST do a thorough review of the entire conversation and write everything learned to the brain DB. This is a forcing function --- do not skip anything.
New entities --- any person, team, role, system, or module mentioned for the first time New relationships --- any connection between entities discovered (X owns Y, A reports to B, etc.) New decisions --- anything that was decided, agreed, confirmed, or resolved New events --- meetings, calls, emails read, milestones hit New tasks --- action items, to-dos, next steps, follow-ups Task updates --- tasks that changed status (done, blocked, in_progress) Entity updates --- new info about existing entities (role change, new metadata)
BRAIN UPDATE SUMMARY ==================== New entities: 3 (Alice Chen, Bob Kumar, ...) New decisions: 2 (Use Stakeholder role, Sandbox all-or-nothing) New events: 1 (Charlie CSM call Apr 8) New tasks: 4 (Get reviewer details, Get sandbox access, ...) Task updates: 2 (task #3 -> blocked, task #5 -> blocked) New relationships: 1 (Alice administers Platform) Entity updates: 1 (Charlie Sohn: added CSM role metadata)
If the conversation has been long (>10 exchanges) and the user hasn't run /brain:update, gently suggest it: > "We've covered a lot this session. Want me to run /brain:update to capture everything before we wrap?"
Do NOT auto-run it. Always wait for the user to invoke or confirm.
Each project folder gets its own project_brain.db:
MyProject/project_brain.db
E&C/project_brain.db
Optimize/project_brain.dbCoCo aggregates across all known DBs at session start.
The brain DB is the source of truth for all project knowledge. It syncs to two other stores:
| Store | Backend | What syncs | Why | |-------|---------|-----------|-----| | MemPalace | ChromaDB (~/.mempalace/palace) | Entities, decisions, events → drawers | Semantic search across projects | | brain.json | JSON (~/.coco/brain.json) | Person entities → people section | CoCo people graph, attention rules |
Sync happens automatically at end of /brain-update, /brain-init, and /brain-rescan via brain.memory_bridge.full_sync().
Write path: Always write to brain DB first → sync propagates to other stores. Read path: Use Memory Bus (memory_search) for cross-store federated queries, or brain CLI for structured queries.
11 tables: projects, entities, relationships, tasks, threads, thread_items, decisions, events, changelog, tags, taggables
Entity types: person, team, role, system, module, org_unit, document Relationship types: member_of, owns, administers, reports_to, depends_on, blocks, scoped_to, created_by Task statuses: open, in_progress, blocked, waiting, done, cancelled Thread categories: feature, incident, request, decision, research Event types: meeting, email, call, milestone, deploy
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-14 | fail→pass | 19,709 | 6,592 | -67% | 1 | 1 | 0% | 2,280 | 1,742 | -24% | 0 | 0 | — |
case-19 | fail→pass | 10,167 | 7,660 | -25% | 1 | 1 | 0% | 1,323 | 1,946 | +47% | 0 | 0 | — |
case-20 | fail→pass | 34,960 | 7,648 | -78% | 1 | 1 | 0% | 4,446 | 1,814 | -59% | 0 | 0 | — |
case-07 | pass→pass | 9,688 | 7,000 | -28% | 1 | 1 | 0% | 1,558 | 1,792 | +15% | 0 | 0 | — |
case-01 | fail→pass | 11,935 | 17,755 | +49% | 1 | 1 | 0% | 1,073 | 4,105 | +283% | 0 | 0 | — |
case-02 | fail→fail | 9,672 | 7,797 | -19% | 1 | 1 | 0% | 736 | 1,838 | +150% | 0 | 0 | — |
case-08 | pass→pass | 10,793 | 6,783 | -37% | 1 | 1 | 0% | 1,840 | 1,781 | -3% | 0 | 0 | — |
case-03 | pass→pass | 10,910 | 8,132 | -25% | 1 | 1 | 0% | 937 | 2,844 | +204% | 0 | 0 | — |
case-04 | pass→pass | 11,455 | 13,271 | +16% | 1 | 1 | 0% | 1,148 | 2,841 | +147% | 0 | 0 | — |
case-05 | pass→pass | 14,789 | 15,512 | +5% | 1 | 1 | 0% | 1,690 | 3,207 | +90% | 0 | 0 | — |
case-06 | fail→pass | 22,374 | 8,134 | -64% | 1 | 1 | 0% | 3,891 | 2,016 | -48% | 0 | 0 | — |
case-09 | fail→pass | 6,924 | 1,737 | -75% | 1 | 1 | 0% | 1,038 | 1,746 | +68% | 0 | 0 | — |
case-10 | pass→pass | 15,448 | 2,273 | -85% | 1 | 1 | 0% | 1,677 | 1,776 | +6% | 0 | 0 | — |
case-11 | fail→pass | 11,424 | 7,002 | -39% | 1 | 1 | 0% | 1,797 | 1,807 | +1% | 0 | 0 | — |
case-12 | fail→pass | 11,298 | 2,087 | -82% | 1 | 1 | 0% | 1,964 | 1,813 | -8% | 0 | 0 | — |
case-13 | fail→pass | 18,305 | 2,435 | -87% | 1 | 1 | 0% | 1,945 | 1,876 | -4% | 0 | 0 | — |
case-15 | pass→pass | 14,847 | 2,080 | -86% | 1 | 1 | 0% | 1,309 | 1,826 | +39% | 0 | 0 | — |
case-16 | pass→pass | 13,101 | 7,536 | -42% | 1 | 1 | 0% | 1,273 | 1,893 | +49% | 0 | 0 | — |
case-17 | pass→pass | 12,710 | 2,972 | -77% | 1 | 1 | 0% | 1,784 | 1,850 | +4% | 0 | 0 | — |
case-18 | fail→pass | 8,936 | 7,235 | -19% | 1 | 1 | 0% | 1,365 | 1,825 | +34% | 0 | 0 | — |
case-21 | fail→pass | 19,472 | 6,668 | -66% | 1 | 1 | 0% | 1,929 | 1,762 | -9% | 0 | 0 | — |
case-22 | fail→pass | 20,561 | 3,253 | -84% | 1 | 1 | 0% | 2,622 | 1,821 | -31% | 0 | 0 | — |
case-23 | fail→pass | 12,686 | 7,403 | -42% | 1 | 1 | 0% | 1,272 | 1,774 | +39% | 0 | 0 | — |
case-24 | fail→pass | 19,714 | 9,304 | -53% | 1 | 1 | 0% | 2,017 | 2,220 | +10% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 23 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +58 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.