mcpbeat

Brain

coco-research/brain

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'.

36k tokens
context cost
the whole folder, loaded on every use
12
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
196
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/coco-research/coco --skill brain

The instruction itself

12 sections, as written by the author

/brain --- Project Knowledge Tracker

A structured SQLite database (project_brain.db) that lives in each project folder, replacing flat markdown memory files with queryable, relational knowledge.

Quick Reference

BRAIN="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

/brain:update --- End-of-Session Flush

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.

Procedure

  • Scan the full conversation from top to bottom. For each project in the brain DB, extract:

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)

  • Present a summary table to the user showing what will be written:
   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)
  • Wait for user confirmation ("looks good" / "y" / adjustments)
  • Execute all writes via Python operations and report counts.

When to prompt the user

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.

Behavior Rules

Auto-write (no confirmation needed)

  • Entity sync from your custom MCP (roles, teams, users)
  • Changelog entries when entities are updated
  • Task status updates
  • Event logging from emails and meetings

Confirm-write (propose to user first)

  • New decisions
  • New relationships between entities
  • Deleting or archiving entities

Semi-auto (extract and confirm)

  • After reading emails: propose entities, events, tasks to add
  • After meeting notes: propose decisions, action items, new stakeholders

DB Location

Each project folder gets its own project_brain.db:

MyProject/project_brain.db
E&C/project_brain.db
Optimize/project_brain.db

CoCo aggregates across all known DBs at session start.

Memory Architecture

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.

Schema (v1)

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

How to use it

Copy the folder

Take coco-research/brain from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.