A closed-loop, AI-native knowledge base for running a startup: research, decisions, brainstorms, experiments, competitor analyses, customer and advisor conversations, strategy, GTM, fundraising, cash flow. Git-backed and shared by the whole team across machines, so everything an agent needs is in the repo, not in machine-local memory.
- This file, and the two files it imports below:
STATE.md(what is true about the project right now) andALIASES.md(shorthand → canonical name → file to open). .claude/rules/kb-retrieval.md(which file wins, inference discipline) and.claude/rules/drafting.md(anything the team will send or publish)..claude/rules/kb-writes.mdand.claude/rules/research-framing.mdload when you read content files.- Hook output (
.claude/settings.json): at session start, a staleness report and, if present, the gitignoredSOUL.md(chat tone only; it never changes how documents are written). On each prompt, the KB files that match it. Treat that list as "open these first", not as the answer.
@STATE.md
@ALIASES.md
- Questions about us, a person, a company, a program, or "what did we do": the answer is in the KB. Start from
STATE.mdandALIASES.md, open the files they and the prompt hook point to, and only then answer. First-person phrases ("our pilot", "what we built", "the meeting last week") are KB queries even though nothing is named. - If the KB has it, the KB wins; the web extends it, never replaces it. If the KB is silent, say so and ask.
- Comparing anything to your product: ground our side first. See
AGENT-GUIDE.md§ "Comparison protocol". - Drafting anything outbound:
.claude/rules/drafting.md;/write-asif the optional voice plugin (plugins/voice/) is installed.
Read CONVENTIONS.md (rulebook) and AGENT-GUIDE.md (where things go) before the first write of a session; do not guess a convention. Skills do the filing: /add-entry, /meeting, /add-todo, /complete-todo, /finance; /kb lists them all. One writer at a time (runs/.lock; browser-tool sessions count as writes). Git hooks lint every commit and push it.
Two things every write must leave true:
STATE.mdmatches reality. If what you filed changes an outcome, a status, a number or a price, update the line and itsas-of:date in the same session.- Old files say they are old. A new version back-stamps the one it replaces; a closed thread gets an outcome banner on the files that still read as open.
Optional active-user preferences: if SOUL.md declares an active user (e.g. Active user: founder-template), read team/<slug>/preferences.md and apply it to the main agent's writes. Subagents don't load it.
| Need | Where |
|---|---|
| Folder purposes and one-line listings | INDEX.md, then <folder>/INDEX.md (auto-generated; superseded entries are tagged) |
| Vocabulary | GLOSSARY.md |
| Hubs (current truth per entity) | discovery/<firm>/README.md, competitions/<program>/README.md, advisors/<person>/README.md |
| Scope boundaries, human quickstart, reading paths | LIMITS.md, USER-MANUAL.md, READING-GUIDES.md |
| Gitignored, on disk only | team/<slug>/private/ (grep -r finds it; the lookup script skips it unless KB_LOOKUP_INCLUDE_PRIVATE=1) |
History of "when did we X": git log --follow <file>.