4 Files. 1 Slash Command. 0 Burn.
Build an AI content pipeline for developers that turns build sessions into publishable drafts. Open-source, 4 files, runs from your terminal.
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 didn’t know what to post, I didn’t know where to start, and by Wednesday I had moved on.
Every idea gets a page
Every page has frontmatter. Every page links to other pages with wikilinks. The links form a graph. The graph is the brain. The LLM gets context — not just the page, but the whole web of ideas around it.
Posts that sound like you
When the LLM has context it writes a post that knows the rest of your brain. The post is not a generic tweet. The post is a sample of your thinking — with your terminology in your voice.
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 Log
The 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.
The 5-second test
A stranger can extract 1 idea in 5 seconds. If they cannot, the post fails. The reader does not know who you are.
No-prior-episode test
The post does not require reading earlier posts. No ‘as I mentioned last time’. The post is the only context the reader has.
Value-without-me test
Replace ‘I’ with a stranger’s name. The post still works. The insight is universal, not personal.
Explain-to-a-friend test
The post can be retold in a bar without ‘you had to be there.’ The retelling is the test of clarity.
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.
X
280 characters. 1-3 posts per session. Tests ideas fast. The speed layer.
1300-3000 characters. 1-2 posts per week. Story mode. Reaches builders and founders. The reach layer.
The blog
1000-2500 words. 1 post per 1-2 weeks. The pillar. The source of truth. The depth layer.
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 base stack
Obsidian. opencode. The file system. Cloudflare Pages. All free. All on infra you already have. The only thing that costs is the LLM.
The manual path
No X API, no LinkedIn API. The drafts sit in the queue. You copy-paste manually. The system works without the API. The cost is zero.
The API path
X API basic tier + optional LinkedIn API. Drafts auto-publish. The same cost as a single agency LinkedIn post per month. The asymmetry is the strategy.
The 24-Hour Build
The system is open-source. The 4 files are 4 markdown files. The whole thing is reproducible in an afternoon.
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.
The writer
Good at writing. Bad at deciding what to write. The deciding is yours. The system takes the deciding off your plate. The writing is on autopilot.
The editor
Decide what gets published. The system queues the drafts. You approve. The boundary is the queue. The decision is yours.
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.