Knowledge Operations
Vault Lint Pass Vol.09 // 2026
Issue 05.02 Knowledge × Operations

Five Fixes. 9.5/10.

19 Banners · 132 Unindexed · 90 Minutes · One Pattern

SR // 05.02 9 min read
Field Notes from the knowledge layer
SR
Sachin Rai
· May 2026 · 9 min read

The audit you don't want to run.

Most people running an Obsidian vault — or Roam, or Logseq, or any linked note system — have a quiet suspicion that it has rotted. That a meaningful fraction of what they've built is broken, orphaned, or invisible to the tooling they rely on. They don't run the audit because the audit will tell them. So the suspicion stays a suspicion. The rot compounds. The vault that should be the most maintained is the one running closest to the LLM — and every gap in the vault is a gap in the answer the LLM can give you.

Here's the situation with mine. The vault: 88 concept articles, 301 source files, 13 production agents querying it, approximately six months old. The audit: a slash command — /vault-lint — that runs nine checks across frontmatter, backlinks, retrieval coverage, concept gaps, forgetting curves, and contradiction detection. The score before the lint: 7.5/10. After: 9.5/10. Total time: ninety minutes.

This post is the full receipt. Every check. Every fix. Every file touched. And the one pattern that fell out when it was done.

What the lint actually checks.

Before walking through the fixes, it's worth knowing exactly what the lint is measuring. Most "vault hygiene" posts cover banners and orphaned notes and call it done. The interesting checks — contradiction detection, forgetting curves, retrieval coverage — are where the actual rot lives. Here's the full nine, with the before/after numbers:

Metric Before After
Banners present 95.4% 97.0%
Index coverage 56% 100%
Concept gaps 2 open 0 open
Confidence missing 24 articles 4 (admin only)
Forgetting curves 0 flagged 0 flagged
Score 7.5 / 10 9.5 / 10

And here are the nine checks in full:

  1. Missing banners. Checks frontmatter for the banner: field on every concept article. Notes without one look half-written regardless of content quality. 19 flagged in this pass.
  2. Orphaned notes. Notes with zero backlinks — they exist in the vault but nothing points to them. 13 flagged, of which 12 were intentional (admin and index files). One genuine orphan found.
  3. Concept gaps. Topics with three or more source notes but no concept article synthesizing them. The lint flags these as unwritten syntheses. Two still open at audit time — both got written.
  4. Raw inbox age. Files sitting in the raw intake folder older than seven days without being compiled. Zero flagged — inbox was clean.
  5. VAULT-INDEX coverage. The navigation index lists every note the LLM can retrieve during a query. 132 notes were on disk but unlisted. Biggest gap: 56% coverage.
  6. Contradictions across concept articles. A semantic scan comparing claims across the trading-related articles. Two tensions found. Zero hard contradictions.
  7. Stale claims. Deferred in this pass — too expensive to run without a targeted scope. Marked for next quarterly audit.
  8. Forgetting curves. Notes with low confidence and no recent confirmation flag as candidates for re-confirmation. Zero flagged — all high-risk notes had been confirmed within the last two months.
  9. Confidence distribution. Checks for the v2 frontmatter fields (confidence, sources_count, last_confirmed, memory_tier) that the forgetting curve check reads. 24 articles missing at least one field.

Fix #1 — Banners (cosmetic, but invisible without).

The cheapest fix. Approximately three minutes of scripting. Banner frontmatter — a hero image at the top of every note — is what makes Obsidian's reading mode feel like a magazine rather than a text dump. Notes without banners feel half-finished even when the content is strong. The visual cue is a quality signal. The rule: every concept article gets a picsum.photos banner with a two-keyword seed, chosen to reflect the topic.

The fix was a Python script that walked the flagged files, protected paths that intentionally have no banner (Excalidraw drawings, admin indexes, template files), inserted the frontmatter block at the top of each note, and wrapped any edge cases where the frontmatter already existed but the banner key was missing. Eleven files updated. Eight skipped intentionally.

The lesson from this one: when a hygiene rule has clear inclusions and exclusions, a script is faster than a thread of "is this one a banner case?" decisions. The triage cost — reading each note, deciding, acting — exceeds the fix cost by a factor of ten. Don't manually triage what a regex can filter in milliseconds.

"The vault you don't audit is the vault you don't trust. The vault you do audit becomes the only one you do."

— Pattern that fell out at the end of this pass

Fix #2 — Confidence backfill (versioning your claims).

The audit found 24 concept articles missing the v2 confidence fields: confidence, sources_count, last_confirmed, and memory_tier. These four fields are what the forgetting curve check reads. Without them, the lint can't run decay analysis on those notes. They're invisible to the temporal health check — and therefore invisible to any LLM query that weights notes by recency and confidence.

Fix: another script. Default fields were backfilled across all flagged articles (confidence 0.7, sources_count 1, last_confirmed set to audit date, memory_tier semantic). Load-bearing notes — the ones that underpin the entire query architecture — got higher confidence overrides applied manually: Single Brain Pattern at 0.9, Persona Roster at 0.95, Cross-domain Synthesis at 0.85. Twenty files updated. Four admin files skipped.

The lesson: frontmatter is your file's metadata layer. If your tooling can't query it, your tooling can't audit it. Backfill the fields that any future pass will need to read. The cost of missing a field is invisible until you try to run the check — and then the entire category silently fails.

Fix #3 — Retrieval coverage (the biggest gap).

This was the headline finding of the audit. The vault had 301 resource notes on disk. Only 169 were referenced in the navigation index — the file the LLM reads first when answering a query. That's 56% coverage. 44% of the vault was invisible to any agent querying through the navigation layer.

The reason this matters so much: the LLM querying pattern used in this vault — the one Karpathy describes as an LLM-queryable wiki — reads the index file first, then pulls only the notes that the index indicates are relevant. If a note isn't in the index, the LLM doesn't know to pull it. It might as well not exist for query-time purposes. 132 notes were effectively off the map.

The fix: a Python pass grouped the 132 unlisted files by subfolder and appended a "RECENTLY ADDED" section to the navigation index, organized by subfolder with one-line descriptions for each note. Coverage moved from 56% to 100% in a single script run. The unlisted files broke down roughly as: 33 in news clips, 20 in version-archives, 12 in autoquant-v6 signal notes, 7 in interview series transcripts, and the remainder scattered across concept subtopics that had grown faster than the index was updated.

The lesson: retrieval is the ceiling on compounding. A vault with 1,000 articles and broken indexing is worth less than 100 articles in a perfect index — because the LLM can only compound what it can reach. Every unlisted note is latent value that never surfaces. This fix alone accounts for the largest jump in score of any single change made in this pass.

Clean paperwork and documents in an organized workspace.
// 132 notes off the map — the index is the retrieval ceiling

Fix #4 — Closing concept gaps (the slow one).

Six concept gaps had been listed in the navigation index since April. Four had quietly closed themselves — other compile passes had filled them, and the index entry had never been updated to reflect that. Two remained genuinely open: Compounding Systems and ESM. Both had abundant source material — three-plus source notes each, collected over months — but nobody had sat down and written the synthesis.

The fix: write both. Approximately thirty minutes per concept article. The pattern for each was the same: synthesize across the source notes, structure by H2 sections (What it is / Three Laws / Anti-patterns / Ghost notes / Venture opportunities), add banner and section images, cross-link to adjacent concept articles. Both got written. All six prior concept gaps now resolved. Navigation index updated to mark them done.

The lesson: gaps don't close themselves. They close when you decide to write them. A note unwritten is the most expensive note in the vault — every query that should hit it either goes elsewhere or returns nothing. The source notes that should feed it are already paying storage costs, reading costs, and maintenance costs. They compound nothing until the synthesis exists.

There's no script for this one. The work is the work.

Fix #5 — Contradiction scan (the one that rewards re-reading).

The most ambitious of the five. A semantic scan across the trading-related concept articles — five of them — looking for claims that conflict with each other. The goal wasn't to find errors. It was to find the spots where two articles disagreed because the author learned something between writing them, and hadn't gone back to mark the first one as updated.

Two tensions surfaced. Zero hard contradictions. Both were resolvable with a one-line clarifier:

Tension 1: One article said "the bear-high signal moved from MARGINAL to REAL_EDGE." Another said "the bear-high signal is losing money." Both claims were true — but they were describing different timeframes. One was forward-looking (the signal had improved recently). The other was describing lifetime payoff across the full history. Fix: a single inline clarifier on the first article noting the timeframe distinction, with a backlink to the lifetime-stats article.

Tension 2: One article cited a 90% historical win rate as the basis for boosting a new signal. The same vault had documented — in the Win Rate Lies article — that high win rates can mask losing expectancy. Fix: a > [!warning] callout on the new-signal article noting the Trojan Horse risk explicitly, with a backlink to the lifetime-payoff article so any reader (human or LLM) could follow the chain.

The lesson: the contradiction scan is not just for finding errors. It's for finding the spots where two articles disagree because the author learned something between them. Those tensions are the most valuable annotations a vault can have — they show the learning arc, not just the current position. A vault with annotated tensions is more honest and more useful than a vault where every article pretends to be timeless.

The pattern that fell out.

Five fixes. Ninety minutes. Score from 7.5 to 9.5. The pattern is clean enough to be a rule:

Cheap fixes are scriptable. Banners, confidence backfill, index coverage — none of these require judgment. They require a decision about the rule, and then a script that applies it. Don't think about them. Decide once. Script once. Run forever.

Coverage fixes need decisions. The index gap required categorizing 132 files and writing one-line descriptions for each. That's not a script problem — it's a judgment problem. But the judgment is fast once you commit to doing it. The work took twenty minutes. The indecision had been costing compounding value for months.

Contradiction scans need patience. You have to read carefully, hold two articles in your head at once, and decide whether the disagreement is an error or a learning artifact. It can't be rushed. The reward isn't a bug fix — it's a richer, more honest document that will serve future queries better.

And the meta-rule, the one that applies before any of this: the audit you don't want to run is the audit you most need to run. The vault that's closest to your LLM agents — the one doing the most work, the one you rely on most — is the one most worth fixing.

I ran the audit because I had a quiet suspicion that something was wrong. The suspicion turned out to be correct. Forty-four percent of my vault was invisible. Two syntheses I needed had never been written. Twenty-four articles were blind spots in the decay model. None of that was obvious until I ran the check.

Run the check. The vault you audit becomes the only one you trust.

Next post

MOST BRAINS JUST ROTATE.

Three Laws decide whether a knowledge stack compounds or rotates. The 88-article vault, the retrieval ceiling, and the patience problem most knowledge workers ignore.

← Back to all posts