What a Second Brain Actually Is
No jargon. No SaaS. No vendor lock-in. A second brain is a folder of plain-text notes that an LLM can read.
I do the work. I never post about the work. That was my problem for two years. Every Tuesday I would finish a build session, look at the work, think I should post about this, and not post. The reasons were always the same: I did not know what to post, I did not know where to start, and by Wednesday I had moved on.
A second brain is a folder of linked markdown files. The tool is not the point. The folder is the point.
The 4-File Architecture
The content engine is 4 files. That is the whole system. If your system is 40 files, you have a system, not a tool.
~/.config/opencode/
├── opencode.jsonc (registers the skill + command)
├── .env (X / LinkedIn API keys, chmod 600)
├── skill/geogent-content/
│ └── SKILL.md (the system spec, auto-injected into every session)
└── command/
└── post.md (the /post slash command)The rest lives in the vault. At the end of a session, I run /post. The slash command reads the most recent session log, reads the 10 strategy pages, and drafts 2-3 posts. The drafts land in content/queue/. I open the folder, pick one, post it.
The system drafts. I decide. The LLM is the writer. I am the editor. The boundary is the queue.
The Decision Tree
The hardest part of should I post this is not the writing. It is the type. Is this a ship post? A lesson post? A decision post?
Did something ship?
YES → Ship Announcement
NO → Was there a decision?
YES → Decision Post
NO → Was there a lesson?
YES → Today I Learned
NO → Milestone?
YES → Vision / Big Picture
NO → Dev LogThe tree is a 7-node decision procedure. It takes the session log as input and outputs a single type. The type determines the structure. The structure determines the voice. The voice determines the post.
This is the pillar method in one sentence: one piece of work becomes many pieces of content, all sampled from one source.
The Standalone Quality Test
The first version produced 25 X drafts in one sitting. Half made no sense. The fix is 4 checks every draft must pass.
A draft that fails 1 check is fixable. A draft that fails 2+ checks is a fragment, scrap it. The system runs the test on every draft before it enters the queue. Posts that fail do not enter the queue. The queue stays clean.
The 3-Platform Model
X, LinkedIn, and the blog. Each has a role. The blog is the source of truth.
The blog is the source of truth. X and LinkedIn are samples of the blog. When I write a pillar blog post, the system samples 3 angles for LinkedIn and 5-10 atomic insights for X. The samples are not new content. The samples are extracts.
The Stack
The whole engine runs on infra I already had. No new SaaS. No new subscription. No new credit card.
The 24-Hour Build
The system is open-source. The 4 files are 4 markdown files. The whole thing is reproducible in an afternoon.
Hour 1: the vault Set up an Obsidian vault. 4 folders: entities/, concepts/, summaries/, raw/. Write 5 pages about your work. Link with wikilinks. The LLM needs the graph.
Hour 2: the strategy pages Write 4 pages: content strategy, tone of voice, content types, ground vision. These are the pages that define what the system posts. If you cannot write the spec, the LLM cannot draft.
Hour 3: the slash command Install opencode. Create a SKILL.md. Create a /post command. Wire it to read the vault, read the strategy pages, run the decision tree, output drafts to a queue folder. Test on a fake session.
Hour 4: the first real post Do a real work session. At the end, run /post. Read the drafts. Run the standalone quality test. Pick the best. Post it. The system has now produced its first post.
The first post will not be perfect. The second will be better. The tenth will be on-brand. The fiftieth will be a library. The system compounds.
The Landing
The whole content engine is 4 markdown files. The whole workflow is a slash command. The whole output is a queue of drafts you approve.
If you have been not posting, build the 4 files. The 4 files are the system. The system is the post. The post is the audience. The audience is the leverage.
The 4 files are the system. The system is the post. The post is the audience.
Open-source on GitHub. DFY install at $990. The first post will not be perfect. The fiftieth will be a library. Build the 4 files today.
Clone the SpielOS repo