Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Brain Init

ASecurity

Use when setting up project memory in a new folder or on the first brain:init in a project. Creates project_brain.db, registers the project, and bootstraps it from CLAUDE.local.md, memory files, docs, and emails; safe to re-run.

477 stars
0 votes
0 copies
0 views
Added 9/23/2026
ai-agentspythonbashdatabase

Works with

cli

Security Analysis

A100/100

Scanned 9/23/2026

$npx -y skills add coco-research/coco --skill brain-init --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Brain Init?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Brain Init
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/coco-research-brain-init/badge)](https://www.skillsdirectory.com/skills/coco-research-brain-init)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: brain:init
description: "Use when setting up project memory in a new folder or on the first brain:init in a project. Creates project_brain.db, registers the project, and bootstraps it from CLAUDE.local.md, memory files, docs, and emails; safe to re-run."
---

# /brain:init --- Initialize Project Brain

Sets up a new `project_brain.db` in the current working directory and bootstraps it from existing project knowledge.

## Procedure

### Step 1: Check existing state

Run:
```bash
python3 ~/.claude/skills/brain/scripts/brain/brain_cli.py info
```

- If **no DB exists** → proceed to Step 2 (full init)
- If **DB exists with project(s)** → skip to Step 3 (scan only). Tell user: "Brain already initialized. Running scan for new/changed files..."

### Step 2: Create the database and project record

Run:
```bash
python3 ~/.claude/skills/brain/scripts/brain/brain_cli.py init
```

Ask the user:
- **Project name** (e.g., "My Project A", "My Project B")
- **Slug** (short URL-safe identifier, e.g., "my-project-a", "my-project-b")
- **Description** (one-liner)

Then run:
```bash
python3 ~/.claude/skills/brain/scripts/brain/brain_cli.py add-project "{name}" --slug {slug} --desc "{description}"
```

If the project has sub-scopes (like ProjectA-Phase1 and ProjectA-Phase2 under one umbrella), ask if the user wants multiple project records.

### Step 3: Scan the project folder

Run the scanner to discover what's available:
```bash
python3 ~/.claude/skills/brain/scripts/brain/brain_cli.py scan
```

This returns a JSON report with:
- **manifest_diff**: new/changed/unchanged file counts, whether this is the first scan
- **files_to_process**: paths of new or changed files
- **knowledge_sources**: which CLAUDE.local.md, memory files, docs, and emails were found

Show the user a summary:
```
FOLDER SCAN
===========
First scan:     yes/no
Files found:    NN total (NN new, NN changed, NN unchanged)

Knowledge sources detected:
  CLAUDE.local.md:  found / not found
  CLAUDE.md:        found / not found
  Memory files:     N files (list names)
  Documents:        N files in docs/
  Emails:           N files in emails/
  Reference docs:   N files
```

If nothing to process (all unchanged): "Everything up to date. No new knowledge to extract." → done.

### Step 4: Extract knowledge from sources (Claude-driven)

Process sources in **priority order**. For each source, read the file, extract structured knowledge, and collect proposed writes. Do NOT write to the brain yet — collect everything first.

#### Priority 1: CLAUDE.local.md
If found, read the full file. Extract:
- **Sections like "Key Decisions"** → `decisions` (with date, decision text, decided_by if mentioned)
- **People mentioned by name** → `person` entities (with metadata like role, email, team if mentioned)
- **Systems/tools mentioned** → `system` entities (e.g., Snowflake, Postgres, Datadog)
- **Teams mentioned** → `team` entities
- **Folder structure sections** → `document` entities for key docs
- **Recent Changes entries** → `events` (with date, type, title)

#### Priority 2: Memory files (~/.claude/projects/.../memory/*.md)
Each memory file has frontmatter (name, description, type) and content. Read each file:
- **project type memories** → `decisions` or context to enrich existing entities
- **feedback type memories** → skip (these are Claude behavior guidance, not project knowledge)
- **reference type memories** → `system` or `document` entities with metadata

#### Priority 3: Document inventory
For each file in docs/, emails/, and Reference Doc/:
- Create a `document` entity with metadata: `{"path": "relative/path", "type": "doc|email|reference", "size": N}`
- Use the filename (cleaned) as the entity name
- Do NOT read the full content of every file — just register them in the inventory

#### Priority 4: CLAUDE.md (project-level, if exists)
Same extraction as CLAUDE.local.md but lower priority (may overlap).

### Step 5: Present extraction summary

Show proposed writes:
```
BRAIN BOOTSTRAP SUMMARY
========================
Project: {name} ({slug})

From CLAUDE.local.md:
  Entities:    N (list: name [type])
  Decisions:   N (list: short text)
  Events:      N (list: title)

From memory files:
  Decisions:   N (list: short text)
  Entities:    N (list: name [type])

Document inventory:
  Documents:   N (list: filename [doc|email|reference])

Total proposed writes: NN
```

Ask: **"Write all to brain? [Y/n/adjust]"**

### Step 6: Execute writes

On confirmation, write in this order using Python:
```python
import sys
sys.path.insert(0, '$HOME/.claude/skills/brain/scripts')
from brain.schema import get_db
from brain.operations import *
```

1. **Entities** — use `upsert_entity` (idempotent, safe to re-run)
2. **Relationships** — use `create_relationship` (also idempotent)
3. **Decisions** — use `create_decision` (check for duplicates by matching decision text before inserting)
4. **Events** — use `create_event` (check for duplicates by matching title + date)
5. **Document entities** — use `upsert_entity` with type="document"

After all writes, sync to MemPalace and brain.json:
```python
from brain.memory_bridge import full_sync
full_sync("project_brain.db", project_slug)
```

After writes complete, update the manifest:
```bash
python3 ~/.claude/skills/brain/scripts/brain/brain_cli.py scan-update
```

### Step 7: Report

```
BRAIN INITIALIZED
=================
DB:            {path}/project_brain.db
Project:       {name} ({slug})
Schema:        v1 (11 tables)

Bootstrapped from existing knowledge:
  Entities:      +N (total: N)
  Decisions:     +N (total: N)
  Events:        +N (total: N)
  Documents:     +N (total: N)
  Relationships: +N (total: N)

Manifest updated: N files tracked

Next: Run /brain-update at end of session, or /brain-rescan when files change.
```

### Step 8: Generate knowledge articles

After completing brain writes (Step 6) and confirming the manifest is updated (Step 6
scan-update), initialize the knowledge engine for this project.

**First, register the project with the knowledge engine:**

```python
import sys, os
sys.path.insert(0, os.path.expanduser("~/.coco/knowledge"))
from engine import KnowledgeEngine

engine = KnowledgeEngine()
engine.register_project("{slug}", os.path.abspath("project_brain.db"))
```

This is required before the cron can harvest the project. (FIX M1: register_project
must be called before running any cron phases.)

**Then, bootstrap article generation:**

```python
engine.full_refresh("{slug}")
```

Or equivalently via CLI:

```bash
python3 ~/.coco/knowledge/cron.py --run --project {slug} --phases 2,3,5
```

This runs:
- Phase 2 (harvest evidence from the brain DB you just populated + infer relationships)
- Phase 3 (generate articles for all entities — first run will generate all)
- Phase 5 (FTS5 index the new articles)

Show the user:
```
KNOWLEDGE ENGINE
================
Articles generated:  N
FTS5 indexed:        N
Estimated cost:      $0.XXX

Articles written to: ~/.coco/knowledge/articles/
Search with: /brain-wiki search "{project_name}"
```

**Skip this step silently if:**
- `~/.coco/knowledge/` does not exist (knowledge engine not installed)
- The `cron.py` call fails for any reason (non-blocking — brain init still succeeds)

---

## Important Rules

- **Dedup before writing.** Always check what exists in the DB before proposing new writes. Use `upsert_entity` which handles this automatically for entities.
- **Don't read every file.** For doc inventory, just register the file — don't parse 130KB HTML files to extract content. That's what `/brain-update` is for (conversation-driven).
- **Date everything.** Decisions and events need dates. Parse from the source if available, fall back to file modification date, then today.
- **Memory files are structured.** They have frontmatter — use the `type` field to decide what to extract.
- **Manifest tracks scan state.** Always run `scan-update` after writes so the next scan is incremental.

Attribution

coco-researchcoco-research
View sourceSee grades on GitHubMore from coco-research →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698461 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →