Building a sovereign context layer
February 7, 2026
I've been building AI tools since late-2022. But in the last 2 months or so, everything has changed.
The way I work has changed. What I can accomplish has changed (and is changing daily). My efficiency has changed.
And my prediction for AI has changed.
And I'm hardly alone:
Loading...
In my 2025 year end reflections, I argued we were entering the golden age of AI, including enterprise adoption. Now? I think I actually under-sold the changes to come.
When it all began
Starting just before Christmas 2025, when we were taking our daughter to Tokyo Disneyland, my X feed (usually startups, builders, and investors) really started focusing on context. I mean, folks were definitely already talking about context, but this was different.
It was kicked off by this article on the context graph by Jaya Gupta who is GP at Foundation Capital, and followed by a series of equally thoughtful responses like this, or this, and more…
The basic idea is simple:
  1. If AI has access to all your context, it performs better
  1. If AI "sits in the execution path" (meaning it's doing stuff for you), then it can capture everything from what was done to why, to add to and improve your context
  1. The next time it does things for you, it does even better
Now, AI already helps me with everything, but my "context" is scattered across ChatGPT, Perplexity, Claude, Gamma, Lutra, Lovable, Granola, and tons of other tools I use.
So the idea naturally arose: A "context layer" that belongs to nobody but me — a "sovereign" repository of knowledge about who I am, what I do, how I work, and what I know. Designed so that any model I switch to could read it and immediately operate in a manner precise and personal to me.
The vision was grand, but I didn't know how to execute it.
But at that moment I began seeing a flood of posts on X telling me exactly what to do - by combining Claude Code and Obsidian in tandem:
  • Claude Code is a coding agent that sits in your terminal and can interact with your system and file structure
  • Obsidian is a minimalist, local-first, markdown-first knowledge base software that remains independent by not taking money from ppl like me.
You can easily find such articles, like this one. Or this one.
These aligned extremely well with my "sovereign" idea. So even though I never used either of them, I was game to try. Of course, vibe-coding taught me the importance of planning, so I planned with multiple LLMs over a few days (I was about to discover that this meticulous initial planning was useful, but maybe not necessary.
What I've actually built
The journey I went on is a bit long, so if you just want the result, here they are:
My context layer sits locally on my machine
  • Every file is minimalist - markdown, json, yaml, etc. - because they're for AI to read, not humans
  • A few "canonical" files (CLAUDE.md, about.md, MAP.md, and a bunch of skill.md) that tell any agent how to work with me and what to do
  • Key folders like startups (containing all companies I've looked at), reflection (my daily reflections), writing, learning, etc. each with their own index.md files, so that any agent can gain immediate overview
  • It's all synced over Obsidian (most basic plan, $4 a month) and github
99% of it was created and written by Claude Code. I refuse to do data-entry
  • This includes optimizing folder structure.
  • I read what smarter folks are doing, send it to Claude Code, brainstorm, then Claude Code implements it by moving and renaming folders and files.
  • This includes file creation.
  • When I meet a new startup, I give Claude Code my research, Granola transcripts, post-meeting thoughts, etc. and it writes all the investment memos for me
  • For important startups, I read every word. For writing (like this one), I type.
  • When I receive an update, or I have a new thought regarding a startup, I tell it to Claude Code, and it finds and updates the right files
  • Knowledge workers always have to update stuff in multiple places - crm, doc, ppt, website, etc. One command and Claude Code updates them all for me.
Now Claude Code (or other AI I use in the future) is always personalized
  • It can answer pretty much any question about me and my work
  • It knows my tendencies, and points out when I'm leaning into my worst, challenges my biases, and reminds me of my overarching goals
  • It writes articles and memos in my voice
Now I can leverage my context to build custom automations and apps
  • One command to turn investment memos into Gamma presentations (I had Claude Code read Gamma's API docs, talk me through each parameter, then write the integration)
  • One command to create docx investment memos in the exact format of our VC firm (MS Word formatting always gave me hell, not anymore)
  • I've also built MacOS apps, for instance quick-capturing key slides during calls and auto-routing them into the right folders, so that when I create presentations or memos on a startup, they automatically include the right visuals alongside text.
This isn't finished. Parts of it are duct-taped together. Other parts are clearly not optimized. And yes, I'm still monitoring my actual productivity (the worst would be wasting time fiddling rather than doing actual work).
But early evidence is undeniable. I finish tasks much faster, and I enjoy it.
I've teased out a few principles in all this:
Intelligence in the middle
We always had a direct relationship with our "systems of record" - design, config, input, maintenance, everything is manual work. I think that's all going to change soon.
The system I built effectively put a layer of intelligence between me and the system. I stopped doing repetitive data entry, filing, and lookup. I simply read, think, talk to human experts, feed that to Claude Code, plan, and then it implements it all for me.
Agents come first
Admission: 2 months ago I had no idea what markdown was, or YAML frontmatter, or json, or whatever... Now? They're my default file types. My file structure is just folders and these primitive files. No vector databases. No embeddings layer. No custom UI. Just files.
This is for a simple reason: slide decks and pdfs and spreadsheets can be hard for AI to read because they were formatted for humans. But in a world where agents will answer our questions, pull data and build reports, data has to be agent-first.
I own everything
My context doesn't live inside ChatGPT, or Claude's memory, or any proprietary system I can't inspect, edit, or migrate. It lives in markdown files and YAML frontmatter on my local machine, backed up over the cloud. Because I own it completely, I can browse it in Obsidian, I can port it anywhere, my AI agents can search across it, and any tool I build tomorrow can plug into the same files.
Everything is about to change
This is something I've felt incredibly strongly over this entire journey: we've hit some sort of a threshold in agent capabilities. And btw, I felt this before the whole lobster craze. Now that we have OpenClaw or whatever the name is, and Opus 4.6 (!), it's even more true.
Using Claude Code as my primary work partner, its planning, reasoning, and execution capabilities are now unquestionably good, and more importantly, consistently reliable.
Even six months ago, I was rolling my eyes (on the inside) at most companies touting their multi-agent orchestration, because I was running into agent fails on a daily basis myself. Now? Not anymore. And as I write this, OpenAI announced their Frontier platform for enterprises, and I think it's going to work.
I believe enterprise AI is about to take off.

The journey itself
Read on if you're interested in my actual journey.
But first an important point: You can just start, and then iterate.
Because you have an "intelligence in the middle", and it can reshape your file structure, you can just… get started. When you have an insight — "omg I need a change log in every important file!" — you just… tell Claude Code to put one into every file. Literally.
Below is my screen: on the right, my Obsidian view into the files. I rarely type into it. Rather, I use the left hand side — Claude Code (but viewed through Warp) — to tell Claude Code what to do.
Here's my file structure:

ai-sandbox/ ├── about.md # who I am — loaded into every session ├── investing-frameworks.md # how I evaluate deals ├── investing-track-record.md # historical performance ├── context-layer-design.md # design notes + journey log ├── MAP.md # system schema and search patterns ├── startups/ │ ├── deals-index.yaml # central registry, filterable by any field │ ├── taxonomy.md # sectors, stages, statuses, entities │ ├── templates/ │ ├── startup/ │ │ ├── startup.md # living memo — canonical info │ │ └── assets/ │ │ ├── 2026-02-05-call-transcript.md │ │ ├── 2026-02-05-151824.png # screenshot from call │ │ └── 2026-02-05-151824.md # metadata sidecar │ └── ... ├── learning/ │ ├── index.md # distilled insights, not file listings │ ├── ai-learning/ │ ├── gtm-learning/ │ ├── enterprise-ai/ │ └── vertical-learning/ ├── workflows/ # SOPs — single source of truth │ ├── deal-processing.md │ ├── reflections.md │ ├── inbox.md │ ├── image-triage.md │ ├── conversation-analysis.md │ ├── learning.md │ └── broad-context.md ├── writing/ │ └── (essays and drafts — flat folder) ├── tools/ │ ├── callmemo/ # generates .docx investment memos │ ├── gamma/ # presentations from markdown │ ├── gtask/ # Google Tasks CLI │ ├── img/ # screenshot capture │ └── triage/ # inbox processing ├── inbox/ # raw captures from phone — zero structure required │ └── assets/images/inbox/ # screenshots before triage └── bin/ # symlinks to tools (in PATH)

ai-sandbox/ ├── about.md # who I am — loaded into every session ├── investing-frameworks.md # how I evaluate deals ├── investing-track-record.md # historical performance ├── context-layer-design.md # design notes + journey log ├── MAP.md # system schema and search patterns ├── startups/ │ ├── deals-index.yaml # central registry, filterable by any field │ ├── taxonomy.md # sectors, stages, statuses, entities │ ├── templates/ │ ├── startup/ │ │ ├── startup.md # living memo — canonical info │ │ └── assets/ │ │ ├── 2026-02-05-call-transcript.md │ │ ├── 2026-02-05-151824.png # screenshot from call │ │ └── 2026-02-05-151824.md # metadata sidecar │ └── ... ├── learning/ │ ├── index.md # distilled insights, not file listings │ ├── ai-learning/ │ ├── gtm-learning/ │ ├── enterprise-ai/ │ └── vertical-learning/ ├── workflows/ # SOPs — single source of truth │ ├── deal-processing.md │ ├── reflections.md │ ├── inbox.md │ ├── image-triage.md │ ├── conversation-analysis.md │ ├── learning.md │ └── broad-context.md ├── writing/ │ └── (essays and drafts — flat folder) ├── tools/ │ ├── callmemo/ # generates .docx investment memos │ ├── gamma/ # presentations from markdown │ ├── gtask/ # Google Tasks CLI │ ├── img/ # screenshot capture │ └── triage/ # inbox processing ├── inbox/ # raw captures from phone — zero structure required │ └── assets/images/inbox/ # screenshots before triage └── bin/ # symlinks to tools (in PATH)

Here are my key file types and the logic between them:

Key file types and what they do

Canonical files CLAUDE.md is the master instruction set that tell the AI agent how the system works, where to find things, what workflows to trigger, and how to maintain consistency. Every time I open a Claude Code session, the agent already knows the system. It knows that if I paste call notes, it should check the deal template, create the folder, populate YAML, and update the index. It knows that reflections need frontmatter with themes and a headline. It knows the naming conventions, the status values, the wikilink policy. About.md has essential knowledge about me MAP.md gives the complete view of my context layer The long-term challenge is to evolve these, yet keep them clean and on-point. If agents have to read through 50k words in every session, it's going to struggle. Startup tracking Every startup I evaluate gets its own folder. Inside: a living memo that's always up-to-date (as far as I know), so I can query or produce content from current info. Every single file has YAML metadata to make them easily retrievable. E.g. memo front matter covers stage, sector, status, ARR, valuation, deal terms. A central YAML index file makes all deals searchable by any field. As for raw call transcripts, investor updates, assets, etc. they live in another folder. Thinking Frameworks Evolving documents that represent my "cognitive patterns": How I evaluate investments. My decisions update these My mental models. Used to challenge the way I think Reflections. I run daily reflection sessions. Claude Code uses my context to probe deeper, push back, and then summarize into compact takeaways, and these get "passed" into higher-level index.md file that has my latest cognitive patterns Learning notes Research organized by opinionated title — not "article about context" but "context is the moat." Each gets source attribution, topic tags, confidence level, and flags for actionability and writing fuel. Inbox A flat folder where raw thoughts land from my phone (via an iPhone Shortcut through Obsidian), or results of quick screen captures on my Mac, with zero structure required. A triage process reads each dump, infers where it belongs, adds the right frontmatter, and files it into the correct destination.

Here's when I stopped doing data-entry, and my life changed:

The "no more data entry" moment

On January 22nd, something fundamental shifted, and I wrote it down (or rather, I told Claude Code to remember it) because I knew it was important. Once the deal template, data schema, and agent instructions were all in place, I stopped doing data entry. Completely. Raw input goes in — call transcripts, pasted research, stream-of-thought notes — and structured output comes out. The deal memo gets written. YAML metadata populates. The index updates. Wikilinks connect entities across the system. I focus on thinking. Asking questions. Having conversations. Doing research. The agent handles all the structured data maintenance. This is the context layer working as designed: intelligence in the middle between the human and structured knowledge. The system of record updates itself. I want to sit with that for a second because it's genuinely a paradigm shift. Traditional systems of record — CRMs, deal databases, project management tools — require enormous human effort to keep current. People hate maintaining them. The data degrades. Half the fields are stale. Everyone knows this. What changes when you have an intelligent layer in the middle is that the human inputs thinking and the machine outputs structure. The human never fills in a form. The human never manually updates a status field. The human just... does human stuff. And the system stays current. It sounds magical, but is actually complex, because everything rests on the AI having the right core instructions and tool access and templates and naming conventions and... yet all written in an elegantly simple .md file. We shall see whether over time that becomes so cluttered and messy that agent performance crashes.

Here's the moment the whole system began "producing", not just "capturing":

The moment the system began producing

This happened literally in the past week or so. My firm has a specific format for investment memos — a Word document called the "Call Memo" with checkmark bullets, a header table with checkboxes for deal category and stage, 10pt Arial, single-spaced, very precise formatting. Writing these memos used to take hours: the analysis itself, plus wrestling with Microsoft Word's formatting quirks. Now I run a single command: /callmemo. The agent reads the structured deal data from my context layer, writes the memo in my voice (guided by a style guide Claude Code created from my past memos), generates a structured JSON file, and a Python script produces a formatted .docx. I upload it to Google Docs, make minor tweaks, and it's done. 3-5 minutes at most. It took about 10 iterations to get right. And here's the funny part: the hard part wasn't the intelligence. The analysis and judgment were already captured in the deal folders — that's literally what the context layer is for. The hard part was getting Microsoft Word's bullet types to produce consistent line heights. A custom font (Noto Sans Symbols) caused inflated spacing in Google Docs. The fix? Switch to Arial for bullet characters — same font as body text, no metric mismatch. The last mile of AI automation isn't intelligence. It's formatting compliance with tools nobody would design today. But the pattern is what matters: context in → agentic command → production output. The context layer isn't a note-taking system. It's a production input.

Here's the moment I built a MacOS app in 30 min, and said "holy shit…"

The "holy crap I can build anything" moment

Outputting docx call memos was awesome. But I still had to manually insert images (we like for humans to see visuals, of course). So the idea came: what if I could capture images, instantly label them in seconds, then AI can handle the rest — triage into the right startup folder and then insert them into the right places in memos and presentations? I put that to Claude Code, and it said: "oh simple, we just build a MacOS app for it." Ummm okay? We can do that? Yes, yes we could. And 30 min later, I had a working app on my MacBook Air, with its own shortcut (cmd + shfit + 0). Here's how it works: I was on a call with a startup and they showed system architecture. I pressed the shortcut, selected the area I wanted (with their permission) And up popped a dialogue box, I typed "deal "startup name" architecture. That's it. The image would show up automatically in memos and presentations, because another workflow went in and read each screenshot, generated metadata sidecars (section, order, caption — is this a product shot? a financials slide? a technology diagram?), and filed everything into the correct startup folder. Then I ran /callmemo — and the images inserted themselves into the right sections of the Word document. Product diagrams into Products & Competition, partner slides into Financials. Seven embedded visuals, centered with captions. Zero manual image placement. The pipeline: screenshot → label → triage (metadata + filing) → callmemo (reads metadata, embeds images). Three workflows chained together through nothing but markdown metadata files. Each step is independent, but the metadata format is the contract between them. The principle: metadata sidecars are the glue. The .md file sitting next to each .png carries enough information (section, order, caption) for any downstream consumer to know what the image is and where it belongs. The memo-generation script doesn't need to "understand" images. It just reads placement instructions from metadata. The same pattern could power presentations, deal decks, or any visual deliverable.

This moment too:

Inbox capture from my phone

I built an iPhone Shortcut that dumps raw voice-to-text or typed notes into an inbox/ folder via Obsidian. No structure required. No frontmatter. Just raw thoughts. A triage process — either manual or running as a cron job — picks up each dump, reads the content, infers the destination (is this a deal impression? a learning note? a reflection? a writing idea?), creates the properly-structured file with full frontmatter, updates relevant indexes, and marks the inbox item as filed. The capture side is ruthlessly minimal: open phone, dictate thought, done. All the structure gets added downstream by the agent, guided by routing rules I defined in a workflow SOP. The principle: separate capture from structure. The human dumps raw thoughts; the system handles all categorization and formatting. This is the opposite of most productivity tools, which demand that you categorize at the moment of capture — exactly when you have the least mental bandwidth to do it. Presentations from deal memos Because my deal memos are structured markdown with YAML metadata, I can generate investor presentations directly from them. One command, and a startup pitch deck materializes from the same source data that feeds the investment memo. Same context, different output format. This is what I mean by the context layer being a production input. It's not a place where information goes to die. It's an upstream source that feeds multiple downstream deliverables — memos, presentations, portfolio summaries, deal analyses — all from the same structured files.

The rule-definition work is the moat
This is maybe the most underappreciated insight, and honestly something I'm still struggling with.
Building the routing logic for any of this — my inbox triage, startup memo-writing, passing daily reflections into higher-level insights — required struggling with the actual problems of my workflow.
These rules can't be generic. They encode personal judgment, professional priorities, domain knowledge, and a lot of brain-wrecking, and sometimes confusion. It's hard.
But once defined, they let the agent operate with real autonomy — because I've condensed everything into a set of rules to operate by.
The moat isn't the technology. It's the rules you define to govern it. Anyone can set up markdown files and YAML. The hard part is specifying what goes where, what each field means, and how different contexts connect.
That's a thinking problem, not a technical one.