I want you to set up a personal second-brain vault on my machine, following the pattern described in the "You are the wizard" chapter of CTRL ALT AI. Do not write a plan first. Build it. Ask me two questions and nothing else: 1. Where should the vault live? (default: ~/cerebro) 2. What is my first name? (used only inside the vault, on my local machine, to label my own tasks on person pages. Nothing leaves this computer.) Then do all of the following, in order. Confirm each step as you finish it. ===== 1. Folder layout ===== Create this structure at the vault root: raw/ files I hand you directly (you read, never edit) wiki/people/ one page per human wiki/companies/ one page per organization wiki/projects/ one page per effort with a finish condition wiki/meetings/ one page per conversation on one date wiki/notes/ concepts, decisions, anything that is not the above templates/ blank forms for each page type scripts/ the vault's one helper script log/ one file per month, YYYY-MM.md .claude/skills/cerebro/ the skill that makes the vault auto-respond Add a .gitkeep file to every empty folder so git tracks them. ===== 2. CLAUDE.md at the vault root ===== Write a file called CLAUDE.md with exactly this content: --- # CLAUDE.md ## What this vault is A personal second brain. `raw/` holds sources I collect. `wiki/` holds pages you write and maintain. I read the wiki. You write it. ## Ownership - `raw/`: I add files. You READ them. Never edit, move, rename, or delete them. - `wiki/`: yours. Create, update, and merge pages freely. - `log/`: yours. One file per month at `log/YYYY-MM.md`. - `templates/`: yours. Shape of each page type. - `scripts/`: yours. The vault check. ## Note types Every wiki page carries a `type:` and lives in the matching folder. | type | folder | holds | |---------|------------------|-----------------------------------| | person | wiki/people/ | one human | | company | wiki/companies/ | one organization | | project | wiki/projects/ | one effort with a finish condition| | meeting | wiki/meetings/ | one conversation on one date | | note | wiki/notes/ | anything else | Use the blank forms in `templates/`. Nothing nests deeper than one folder. ## Ingest A source is a file in `raw/`, a URL, pasted text, or a transcript. 1. Read it. 2. Tell me what you found. Ask what to emphasize. Wait for my answer. 3. Write one summary page in `wiki/notes/`. 4. Create or update a page for every person, company, and project it mentions. Read the existing page first and merge. Never overwrite. 5. Cross-link everything with `[[wikilinks]]`. 6. Record coverage in `sources:` on every page you touched, as ` YYYY-MM-DD`. 7. Run `python3 scripts/check_vault.py` and fix what it reports. 8. Append one entry to the current month's log, `log/YYYY-MM.md`: `## [YYYY-MM-DD] ingest | `. For a meeting transcript, also bump `last-contact` on every attendee's person page. ## Rules - One topic per page. - Merge, never overwrite. Read before writing. - When uncertain, write the uncertainty into the page instead of guessing. Mark it `**Unverified:**` and say what would settle it. - Never delete anything from `raw/`. - Never delete a wiki page without asking me. - Filenames are lowercase-with-hyphens. Dates are always YYYY-MM-DD. - Every wiki page needs `keywords:` and `sources:` frontmatter as multi-line YAML lists. - Commit to git after any meaningful change. Local only, never push. ## About me My name is {{FIRST_NAME}}. When you record a task that is mine on a person page, mark it "Mine". When you record a task that belongs to them, mark it "Theirs". --- Replace {{FIRST_NAME}} with the answer to question 2. ===== 3. Templates ===== In `templates/`, write one blank form per type. Each one is a markdown file with just the frontmatter and a couple of empty section headings. Use these shapes: templates/person.md frontmatter: name, type: person, keywords (list), role, company, email, phone, last-contact, next-followup, status, sources (list) body: ## Threads (with "Mine" and "Theirs" subheadings) ## Notes templates/company.md frontmatter: name, type: company, keywords, category, tier, website, status, relationship-start, sources body: ## Situation ## People ## Notes templates/project.md frontmatter: name, type: project, keywords, status, owner, started, due, sources body: ## Goal ## Status ## Action items templates/meeting.md frontmatter: name, type: meeting, keywords, date, attendees (list of wikilinks), sources body: ## Summary ## Action items ## Transcript notes templates/note.md frontmatter: name, type: note, keywords, sources body: a single empty section ===== 4. The vault check ===== Write `scripts/check_vault.py`, a short Python 3 script with no dependencies that walks `wiki/`, `log/`, and the vault root and reports any of the following, then exits non-zero if it found anything: - a wiki file missing a `type:` key - a wiki file whose `type:` does not match its folder - a wiki file missing `keywords:` or `sources:` - a broken `[[wikilink]]` (points at a page that does not exist) - a date in any frontmatter that is not YYYY-MM-DD Keep it under 150 lines. Print findings one per line, prefixed by the file path. ===== 5. The skill ===== Write `.claude/skills/cerebro/SKILL.md` so the vault auto-responds in future Claude Code sessions without me having to invoke anything. Frontmatter: name: cerebro description: Fire whenever the user says anything the vault should know: not just explicit requests. The default behavior is capture, not wait-to-be-asked. Trigger on any sentence that names a person, company, project, or meeting and adds a fact about them: "had a call with Priya today, she's leading the AI effort at Acme", "Tom from Globex wants to reschedule", "the Henderson renewal is now due in March", "lunch with Sarah on Thursday went well". In each case, create or update the matching pages in ~/cerebro (or wherever the vault lives) without asking permission first. Also fire on explicit requests ("make a page for X", "what's open with X", "summarize my last few calls with X") and when a transcript, email thread, or document is pasted. Only ask before writing when the sentence is genuinely ambiguous about who or what it refers to. The vault's own CLAUDE.md defines the authoritative Ingest workflow; this skill fires it automatically. Body: short. Say the vault is at the chosen path. Point at that vault's CLAUDE.md as the source of truth. List the five note types and the one-sentence shape of each. Say that any mutation must follow the Ingest workflow in CLAUDE.md step for step. That is enough. After writing the skill at the vault path, copy it to `~/.claude/skills/cerebro/SKILL.md` so it loads in every Claude Code session on this machine, not just inside the vault folder. ===== 6. Seed files ===== - `index.md` at the root: one line that says "This vault is empty. Start by telling Claude about a person, a company, or a meeting." - `log/YYYY-MM.md` for the current month (use today's date): a top heading with the month name. - `.gitignore`: ignore `.DS_Store`, `__pycache__/`, `*.pyc`. ===== 7. Commit ===== Run `git init` at the vault root, then `git add .` and make the first commit with the message: vault: initial scaffold Do not push. This vault is local only. ===== 8. Finish ===== Print, in plain text, four things: 1. The path to the vault. 2. The one command I should run if I ever move it to a new machine: `tar czf cerebro.tgz -C ~ cerebro`. 3. A suggested first thing to try: "Open a new Claude Code session anywhere on this machine and say something ordinary about a person you work with. Watch what happens." 4. One sentence: "The vault is yours. Claude will keep writing it from here."