coreyhaines31/company-brain
Your team's shared, AI-ready knowledge base — people, companies, meetings, SOPs, and decisions structured so Claude can answer questions on your team's behalf. Team-scope sibling to second-brain (which is personal-scope). Seven modes — capture (drop something into the right structured dir), compile (process into wiki pages, update INDEX.md), query (answer from the corpus with trust weighting, save to outputs/), review (triage queue — verify / deprecate / supersede unreviewed and stale captures so wrong info never becomes context), lint (orphans / stale / contradictions / gaps), connect (suggest new wikilinks), search (quick lookup). Structured raw dirs (people/, companies/, meetings/, sops/, decisions/, customer-language/, recurring-questions/, sales-objections/) instead of second-brain's flat type-prefixed raw/. Multi-author aware — every capture stamps author + timestamp + trust status. Optional auto-sync from Fathom/Gong/Granola call transcripts, Slack/email exports, CRM. Defaults to a vault at ${COMPANY_BRAIN_VAULT:-$HOME/Documents/CompanyBrain}/. Triggers on "/company-brain," "/cb," "capture this into the team brain," "log this meeting," "add this person to the team brain," "save this SOP," "compile the company wiki," "query the team brain," "what does the team know about X," "review the company brain," "cull the team brain," "lint the company brain," "who's the internal expert on X.
npx skills add https://github.com/coreyhaines31/makerskills --skill company-brain
Company Brain *(n.)*: Your team's shared, AI-ready knowledge base — people, companies, meetings, SOPs, and decisions structured so Claude can answer questions on your team's behalf.
Team-scope sibling to second-brain (personal-scope). Same core compile → wiki → outputs pattern; different raw schema optimized for multi-author, sales-heavy, ops-heavy team use.
Also the operational backbone for the Company Brain Setup productized service (was previously called "Second Brain as a Service"; renamed to match the skill).
Three layers, same as second-brain — but the raw/ layer is *structured*, not flat:
raw/ → wiki/ → outputs/
(structured (compiled (generated
by category) interlinked) artifacts)
Structured raw/ dirs (each is its own top-level folder in the vault):
| Dir | What lives here |
|---|---|
| people/ | Contacts with context — CRM-lite. One markdown file per person. |
| companies/ | Org profiles — last touchpoint, opportunity size, status. One file per company. |
| meetings/ | Call/meeting transcripts + notes. Naming: YYYY-MM-DD-<company-or-topic>-<slug>.md. Auto-sync source. |
| sops/ | Standard operating procedures. Named: <team>-<process>.md (e.g., sales-outbound-cadence.md). |
| decisions/ | Decision records (narrative form; decide skill's structured form is different). |
| customer-language/ | Verbatim phrases from prospects/customers/users. Fuels copy, headlines, objections. |
| recurring-questions/ | Questions asked 3+ times across calls. Each becomes a pre-answered SOP/FAQ/script. |
| sales-objections/ | Library of objections + best responses. Assembled into sales scripts. |
| raw/ | Legacy / uncategorized captures (fallback bucket, minimize use). |
wiki/, outputs/, and INDEX.md work the same as second-brain.
Reserved dirs (never modified by company-brain): Projects/, Team/, Templates/, Drafts/.
Every capture stamps:
source: <URL / call / email / manual entry>
author: <who added this — email or handle>
captured: YYYY-MM-DD
trust: unreviewed
Wiki pages track cumulative contributions in the ## Sources section (per source file, per author). No overwriting — always append + attribute.
Sensitivity tagging (optional but recommended):
sensitivity: internal # any team member can read
sensitivity: leadership # exec team only
sensitivity: confidential # named list only (list access in the file)
Default: internal. Query mode respects sensitivity — refuses to include confidential content unless the invoker is on the access list.
The other half of multi-author discipline: not everything captured deserves equal weight as context. Every structured-raw file carries a trust: field.
(The field is named trust, not status, because companies/ and decisions/ already use status: for lifecycle — prospect/customer, decided/reversed — and the two must not collide.)
| Trust | Meaning | Query treatment |
|---|---|---|
| unreviewed | Captured but no human has confirmed it (default for every new capture) | Usable, but flagged — answers leaning on it note lower confidence |
| verified | A human reviewed it and confirmed it's right | Full weight |
| deprecated | Wrong or obsolete — kept for history only | Never used as context |
| superseded | Replaced by something newer — add superseded_by: [[target]] | Never used as context; queries point to the replacement |
Deliberately an enum, not a numeric weight — teams keep a four-value field current; nobody maintains a 0–1 float.
Deprecation replaces deletion. The "never delete raw files" rule stays intact: when info turns out wrong or stale, mark it deprecated (or superseded with a pointer) instead of removing it. History is preserved; context is protected.
Trust is orthogonal to sensitivity — a file can be verified + confidential, or unreviewed + internal.
Existing vaults: files predating trust levels simply lack the trust: field — treat them as unreviewed. If the vault's CLAUDE.md schema predates trust levels, offer to add the trust spec to it on the first /cb review run (the vault's CLAUDE.md stays authoritative — extend it, don't override it).
references/vault-config.md for the vault path (default: ${COMPANY_BRAIN_VAULT:-$HOME/Documents/CompanyBrain}/)<vault>/CLAUDE.md for the authoritative team schema. If present, trust it over references/schema.md — the team's vault is the source of truth.<vault>/CLAUDE.md, fall back to references/schema.md — the team schema starter kit.| Invocation | Mode |
|---|---|
| /cb capture / /company-brain capture / "capture this into the team brain" | capture |
| /cb compile / "compile the company wiki" | compile |
| /cb query <q> / "what does the team know about X" | query |
| /cb review / "review the company brain" / "cull the team brain" | review |
| /cb lint / "lint the company brain" | lint |
| /cb connect / "find cross-team connections" | connect |
| /cb search <term> / "search the company brain" | search |
Same intake mechanics as second-brain, but the routing is different — pick the structured dir based on content type.
meetings/YYYY-MM-DD-<company-or-topic>-<slug>.mdpeople/<name-slug>.mdcompanies/<company-slug>.mdsops/<team>-<process>.mddecisions/YYYY-MM-DD-<decision-slug>.mdcustomer-language/<theme-slug>.md (append to existing themed file if one exists)recurring-questions/<question-slug>.md (append counter if repeat)sales-objections/<objection-slug>.md (append variant if repeat) source: <URL / call with X on YYYY-MM-DD / email from Y / etc.>
author: <who captured this>
captured: YYYY-MM-DD
trust: unreviewed # every capture starts unreviewed — review mode promotes it
sensitivity: internal # or leadership / confidential
Don't compile into the wiki here — capture is fast intake.
Same core pattern as second-brain's compile mode — process unprocessed structured-raw files into wiki pages, update INDEX.md, add Sources sections.
Differences from second-brain:
## Sources
- `people/jane-doe.md` (added by @alex, 2026-06-30) — CTO of Acme, evaluated us Q2
companies/acme.md, meetings/2026-06-15-acme-discovery.md, sales-objections/acme-pricing.md, and people/jane-doe.md — all into one wiki page.confidential, the wiki page is confidential.deprecated and superseded sources are excluded from wiki pages. If a source that already fed a wiki page later gets deprecated, recompile flags the affected pages for re-review and drops the source, noting it in Sources using the file's reviewed + reviewed_by stamps: - meetings/2026-06-15-x.md (deprecated 2026-07-01 by @alex). Pages built mostly from unreviewed sources get a > ⚠ Mostly unreviewed sources callout at the top.Sales, Customers, Ops, Product, Team & People, Decisions, Playbooks. Extend as needed.Everything else (one-page-per-concept, [[wikilinks]], Connections mandatory, quality > quantity) is identical.
Same as second-brain query, plus:
verified over unreviewed, and recent over old. Never use deprecated or superseded content as context — at most cite it as a pointer: *"(deprecated — see [[replacement]])"*. When two sources conflict, prefer the newer + higher-status one AND surface the disagreement in the answer.unreviewed sources, say so up front: *"Low confidence — 3 of 4 sources are unreviewed. Run /cb review to firm these up."*meetings/2026-06-15-acme-discovery.md by @alex)..."*deep-research, same as second-brain.Save to outputs/<YYYY-MM-DD>-<question-slug>.md with the answer + wiki pages consulted + sensitivity level of the output.
The human culling pass. This is how a team keeps garbage-in from becoming garbage-context: everything gets captured freely (nothing is lost), but only reviewed info earns full weight.
trust: unreviewed files across the structured-raw dirs (including files with no trust: field at all), newest firstdecisions/ files past review_by, sops/ files past last_reviewed + review_cadencereviewed: YYYY-MM-DD + reviewed_by: <handle>:trust: verifiedtrust: deprecated (wrong or obsolete; kept for history)trust: superseded + superseded_by: [[target]] (ask for the replacement)outputs/<YYYY-MM-DD>-review.md so the cull itself has an audit trail.Cadence: weekly for active vaults; pair with loopify to schedule it so the cull actually happens instead of depending on someone remembering. A vault where reviews lapse >1 month shows up in lint (check 13).
Same seven checks as second-brain PLUS:
people/ or companies/ file with no update in >6 months for active accounts10. Objections without responses — sales-objections/ files with no linked response in sops/ or wiki/
11. SOP freshness — SOPs not touched in >12 months (may be stale as the business evolves)
12. Author load imbalance — one contributor doing >80% of captures (usually signals the vault is one-person-dependent — bad for team continuity)
13. Review backlog — >20 files sitting at trust: unreviewed, or no review pass (no outputs/*-review.md) in >1 month. Points at /cb review.
Same as second-brain plus cross-category link suggestions — e.g., sales-objections/pricing-too-high.md should link to customer-language/willingness-to-pay.md and sops/discovery-call-cadence.md if they exist.
Same. Grep across all structured-raw dirs + wiki/.
Team vaults benefit from automated capture. See references/auto-sync-sources.md for the setup patterns:
| Source | What it captures | Setup |
|---|---|---|
| Fathom / Gong / Granola | Call/meeting transcripts | Webhook → append to meetings/ |
| Slack export | Team discussions worth preserving | Manual or scheduled export → raw/slack-<channel>-<date>.md |
| Email (Front / Missive / Superhuman) | Customer-facing threads worth preserving | Forward-to-address → append to people/ or companies/ |
| CRM (HubSpot / Attio / Pipedrive) | Deal state, contact info | Periodic sync → companies/ + people/ |
Auto-sync is optional — most teams start with manual capture and add automation as the vault matures. Pair with loopify to schedule periodic sync jobs.
second-brain — sibling. Use second-brain for your personal wiki; company-brain for the team's. A person can maintain both simultaneously with separate vault paths.skillify — use to author new skills that read from the company brain (e.g., a weekly-team-brief skill that queries company-brain every Monday).loopify — schedule auto-sync jobs (Fathom pull daily, Slack export weekly, review pass weekly, INDEX lint monthly).toolify — wire up integrations that feed the company brain (Fathom webhook receiver, Attio API, etc.).deep-research — when query finds gaps, route external. Save deep-research results into raw/ for future compilation.decide — decisions/ folder complements decide's structured archive. decide records the *evaluation*; decisions/ records the *narrative + outcome + review notes*.pm — team task management sits in Projects/ (reserved from company-brain). pm owns Projects/; company-brain reads it for context but doesn't modify.jab-hook — customer-language/ fuels social copy that resonates with actual prospect language.customer-language/, recurring-questions/, and sops/ for authoritative blog drafts.Same lineage as second-brain:
llm-wiki — reference for the 3-folder pattern.author: and captured:. Wiki pages cite by source + author.trust: deprecated removes it from context while preserving history./cb review is the regular cull that promotes or retires it.Projects/, Team/, Templates/, Drafts/ during company-brain operations.Take coreyhaines31/company-brain from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
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.