AI Second Brain
A guide, a starter vault, 18 skills and 72 slash commands for a markdown knowledge base that files, links and lints itself while you keep reading.

What it is
A repository that is three things at once: a guide to a knowledge base an agent maintains, a starter vault you copy into place, and the skills, commands and subagents that do the filing. The loop it describes is short — you clip or dump a source into raw/, an agent turns it into atomic pages under wiki/sources, wiki/concepts, wiki/entities and wiki/synthesis, links each new page into what is already there, lints what it wrote, and updates existing pages instead of piling new ones beside them. Beside the wiki sits a project layer: one folder per project with its own CLAUDE.md and an Inputs / Process / Outputs / Feedback pipeline, so the vault holds what you know and the folders hold what you are doing. It ships 18 skills, 72 slash commands, 6 subagents and a dependency-free scripts/ directory, and it runs on Claude Code over an Obsidian vault of plain markdown files. MIT licensed, 836 stars.
Who built itOne account and one repository: all 38 commits are attributed to the GitHub user undefined-ui, whose author name varies across them — undefinedKi on 19, undefined-ui on 18 and Yarchi on one — with 37 of the 38 sharing a single email address, and the contributor list holds nobody else. Nineteen commits carry a co-author trailer naming Claude Fable 5. In its first three weeks the repository reached 836 stars and 132 forks.
How it is put together
The parts · 6The organising idea is that the durable artifact is a folder of plain text and everything around it is replaceable, so the repository ships a contract rather than a program. A vault is copied into place; its rules live in a CLAUDE.md the agent reads; the work is described as eighteen skills, each with a narrower slash command in front of it, and six subagents of which four cannot write; and the upkeep an ordinary note system never gets is turned into something you can schedule. Three rules decide what the agent may leave behind — nothing lands unlinked, contradictions are recorded rather than resolved, and no vector store until the corpus asks for one — and one decision decides where the value sits: raw material is an archive nobody reads, and the wiki of atomic, densely linked pages is the thing being built. The same markdown is then compiled into a website, so the guide both documents the pattern and is an instance of publishing from a plain-text corpus.
- vault-template/
- The starter vault, 21 files:
CLAUDE.md(3,802 bytes) and a per-project one (654 bytes),wiki/withconcepts/,entities/,sources/,synthesis/,index.md(316) andlog.md(132), aprojects/layer whose example project runsInputs / Process / Outputs / Feedback,raw/assets/,output/, and four page templates (164 to 204 bytes) describing the page types the agent is meant to write. - skills/
- Eighteen skills, one per workflow, each a single
SKILL.mdand nothing else: ingest (3,491 bytes) is the largest, lint (2,710) and review (2,200) next, publish (1,689) the smallest. They are the unit of capability the guide is organised around, and a command is the scoped entry point into each. - commands/ and agents/
- Seventy-two command files of 143 to 448 bytes —
install.mdthe largest,health.mdthe smallest — and six subagent definitions of 339 to 635 bytes: curator, linker, graph-analyst, researcher, ingestor, reviewer, of which the README says four are read-only by design. - docs/
- Three bodies of writing in one directory. Ten guide sections holding 75 markdown files (ten of them section indexes) from concepts and setup through ingestion, structuring, graphs, agents, retrieval, outputs and maintenance to troubleshooting; seven course modules of four files each, with SVG figures; five handbook tracks, 49 markdown files between them.
docs/ROADMAP.mdis 13,412 bytes, the largest single document in the repository. - plugins/ and .claude-plugin/
- The course shipped as a Claude Code plugin:
marketplace.json(452 bytes) at the repository root,plugins/agents-course/.claude-plugin/plugin.json(502) and, beside it, five skills — harness-audit 3,474, gate-check 3,466, context-audit 3,251, evals-bootstrap 3,178, goal-test 3,057 — plus a loop-critic subagent (1,753 bytes). - scripts/, tools/ and the HTML at the root
- Six dependency-free Python files in
scripts/:build_tree.py16,772,build_tracks.py11,171,link_check.py3,861,chat_export_to_md.py3,286,graph_export.py3,118,vault_stats.py2,730 — between them they cover checking links, exporting a graph, converting chat exports and vault statistics, and the guide copies the directory into the vault so its commands can call them.tools/addsbuild_site.py(22,560) andextract_site.py(5,463), and the three HTML files whose names match them sit at the root:index.html936,022 bytes,tree.html55,475,resources.html35,254.
Choices, and what they beat
Finish an ingest only when the new page is linked over storing first and linking later, or never
Stated as the first of three rules: “Nothing is ingested until it is linked. A page that lands unconnected is invisible within a week. Linking is the entire value, so it happens in the same run or the ingest is not finished.”
Record a contradiction instead of resolving it over letting the newer source overwrite the page
“Contradictions are recorded, never overwritten. When a new source disagrees with a page, both positions stay, with dates and sources. The history of what you believed and why is the one thing your vault has that a search engine does not.”
Keep structured pages and links as the retrieval layer over standing up a vector database from the first source
“No vector database until you need one. A personal corpus is small and already structured. Structured pages plus links answer questions that chunk similarity cannot, at zero infrastructure cost.” The threshold at which that changes is given its own page rather than left to taste.
Markdown files, wikilinks and
SKILL.mdas the only formats over making Obsidian, or any one tool, a dependency“Obsidian is a viewer for the graph, not a dependency. If you walk away from every tool named in this repo, you keep the folder and everything in it.” The same section states the scope: it works with Claude Code, and with any agent that reads files.
Delete the folder READMEs from the vault copy over copying the repository into the vault as it stands
An install step with a reason attached: the repository’s READMEs are “for reading on GitHub, not for the agent”. Since the agent reads its context out of the vault, the files written for a human browsing GitHub are removed rather than left where the agent will pay for them.
Read fromREADME.md (19,042 characters, read in full — the how-it-works diagram, the quickstart, the design decisions, the contents tables and the credit section), plus the complete 322-file tree with per-file sizes from the recon report. The repository contains no architecture document — the recon searched for one and found none — and no page under docs/ was read, so everything above is what the README states in its own words plus what the file names and sizes show.
Build log
5 stages- 01
Twenty-three days, one account, half the commits naming a model
The repository was created on 2026-09-07, its first commit
initiallanded that day at 15:20:52Z, and its last was 2026-09-29T15:30:38Z: 38 commits in 23 days, all inside September 2026, all from a single GitHub account. Zero releases and zero tags — the version history is the commit log, and git is documented as the maintenance mechanism (docs/09-maintenance/versioning-with-git.md) rather than consumed as tagged versions. The author name varies across them — undefinedKi on 19, undefined-ui on 18, Yarchi on one — while 37 of the 38 share one email address. 19 of the 38 commits carry a co-author trailer naming Claude Fable 5, so half the history names a model as a co-author. Around it: 836 stars, 132 forks, 7 watchers, one open issue, 2,668 KB, MIT licence, default branchmain. Only three pieces of activity exist beyond the commits, and one of them comes from somebody else: issue #3,Added secondary brain, opened by cruelbites13 on 2026-09-24 and still open with no comments; issue #2,est quickdraw, opened and closed by the owner on 2026-09-23; and pull request #1,chore: normalise line endings via gitattributes, also his, with a 46-byte.gitattributesbeside it. The newest commit message states the course and handbook contract and splits duplicated ground between them — the last act in the 38 was editorial de-duplication, not code. - 02
The vault is the deliverable, and installing it is deleting things
vault-template/is 21 files, and it is the part you take away: aCLAUDE.mdof 3,802 bytes at its root and a second of 654 in the example project; awiki/split intoconcepts/,entities/,sources/andsynthesis/with anindex.md(316 bytes) and alog.md(132); aprojects/layer whose example carries the pipelineInputs / Process / Outputs / Feedback, each stage held open by an empty.gitkeep;raw/for material you never read again;output/; andtemplates/with four page types — concept, entity, source and synthesis pages, 164 to 204 bytes each. The quickstart shows how the vault is made: clone,cp -r vault-template ~/brain, copyskills/,commands/,agents/andscripts/into place, then delete the folder READMEs, which in the guide’s words are for reading on GitHub and not for the agent — context hygiene as an install step. Nine steps, one evening, each with a page behind it; step four has the agent interview you for theCLAUDE.md, step nine schedules maintenance. The structure is documented underdocs/04-structuring/— page types, linking rules, a frontmatter schema, naming, contradictions — but the material does not cover those pages’ contents, so the schema is unrecorded here. What the README does state is why two layers exist: the wiki holds what you know, the projects hold what you are doing, and they feed each other. - 03
How it maintains itself: skills, commands and read-only subagents
Maintaining itself is the claim in the description, and what it shows is files an agent reads rather than a service that runs.
skills/holds 18 skills, one per workflow in the guide, each a singleSKILL.mdof 1,689 to 3,491 bytes: ingest, chat-import, transcript, backfill, merge, lint, graph, metrics, query, report, write, publish, review, privacy, project, quiz, rename, changed-my-mind.commands/holds 72 slash commands, 143 to 448 bytes each, and their names are the clearest statement of what the vault is expected to do to itself:/lint,/health,/stale,/orphans,/dedupe,/merge,/prune,/review,/metrics,/weekly,/schedule,/contradictions.agents/holds 6 subagents — curator, graph-analyst, ingestor, linker, researcher, reviewer, 339 to 635 bytes each — of which the README says four are read-only by design, without naming them. The guide keeps the agent material indocs/06-agents/: roles, hooks, scheduled maintenance, safety and guardrails, subagents, skills and commands; maintenance covers linting, review cadence, git, privacy and scaling. Step nine of the quickstart is to schedule maintenance and wake up to a vault that filed itself. What the schedule runs is not in the material — neitherscheduled-maintenance.mdnorhooks.mdwas read — so the cadence, the trigger and the write scope are unrecorded. - 04
Three opinions the whole thing rests on, and the case against it
The README states three rules as the opinions everything else follows from. Nothing is ingested until it is linked, because a page that lands unconnected is invisible within a week, so linking happens in the same run or the ingest is not finished. Contradictions are recorded, never overwritten: both positions stay, with dates and sources, and the history of what you believed and why is, in its words, the one thing the vault has that a search engine does not. No vector database until you need one: a personal corpus is small and already structured, and a page covers the threshold at which RAG earns its place. A fourth rule is portability — markdown, wikilinks and
SKILL.mdonly, with Obsidian as a viewer for the graph rather than a dependency. The lineage is plain: the LLM wiki pattern is Karpathy’s, published as a gist on 2026-04-04, and this repository is one implementation of it plus the parts the gist leaves undefined. The reading around it is the research: GraphRAG (arXiv:2404.16130), HippoRAG (arXiv:2405.14831), Lost in the Middle (arXiv:2307.03172), Matuschak’s public notes, Ahrens and Forte. What is unusual is that the strongest argument against the premise sits in the same file: if the writing is the thinking, delegating it means not doing it. - 05
Three entrances, one plugin, and a 936 KB page at the repository root
Three entrances share one repository, and its last commit was about the contract between two of them. The guide is ten sections — 65 pages in one README line and 77 in another, over 75 markdown files. The agents course is seven modules of four files each, framed on Google’s agent whitepapers and five layers: what the agent sees, who decides, who sorts work, what it can reach, how you know it works; it ships as a Claude Code plugin with its own marketplace entry, five skills, a loop-critic subagent and a two-command install. The handbooks are five tracks — knowledge graphs, Jev engineering, agent harnesses, loop engineering, eval engineering — 49 markdown files, eight or nine pages each, each ending in a build you can finish in an evening. Publishing is literal: the guide is served at
undefined-ui.github.io/second-brain-os, and the built site is committed at the repository root,index.htmlat 936,022 bytes besidetree.htmlandresources.html, which is why GitHub reports the repository’s language as HTML. Two mismatches are visible from outside: the README says the repository ships four scripts whilescripts/holds six Python files, andexamples/, promised as real vaults and real output, holds a README and an empty.gitkeep.CONTRIBUTING.md(978 bytes) asks of contributors what the README models itself: every factual claim needs a primary source.
Adjacent records
All records →No. 129
Agents Universe
An open-source agent platform that keeps one project context shared by everyone working in it. Agents read the whole knowledge base when a project is opened and write what they learn back into the same files while they work; knowledge is Markdown on disk with a database index behind it, and there is no embedding model or vector search.
No. 124
AI Employees
Eight open source AI Employees, each a folder of scheduled routines that covers a whole business role, running on your own machine on the agent you already use: they drive the browser you are signed in to the way you do, draft and stage the work and leave the last click to you, get better at your business on every run, and every file they touch is yours.
No. 116
Lemmalog
A Rust Datalog engine that treats agent memory as a deductive database rather than a bigger vector store: facts asserted at the extraction boundary, stratified rules deriving closures and temporal views, provenance back to the source episode on every derived fact, and views maintained one epoch at a time — served to Claude Code and Kimi CLI as twelve MCP tools.