M

Obsidian: A Vault That Never Forgets and Never Lets You Repeat Yourself

7 min readView source ↗

Cover image

The best argument against your last decision is already in your vault. You wrote it down eight months ago and forgot

Everyone building a second brain misses the same thing. The systems people build catch duplicates. They surface patterns. They flag dropped threads. What they do not do is argue with you

Your vault is not neutral. It contains multiple versions of you, each with different conclusions. The 2023 version thought X. The version six months ago thought the opposite. Both are in there. Neither is talking to the other, because you have been the only one holding the conversation

Why a loop, not another chat tab

You can already open Claude, paste in a note, and type "argue against this". That works once. Close the tab and the argument stops

The real value shows up when the argument runs on a schedule. Every idea in your vault gets steelmanned against your other notes automatically. You do not have to remember to ask. The friction the vault was designed to remove (finding notes) gets replaced by the friction the vault was silent about (finding contradictions)

The Contrarian Loop concept

Every second brain article you have read talks about DO passes:

extract ideas

find patterns

link related notes

surface old work

This one talks about CONTRA passes:

steelman the strongest counterargument

surface contradictions between your own notes

cross-pollinate concepts from unrelated domains

run the ghost self, you from six months ago debating you from today

The DO layer finds what fits together. The CONTRA layer finds what does not fit

Article image

Article image

The stack

Three pieces, nothing exotic

The vault. Obsidian. Local markdown files. Every note readable and writable by a script. No API wall between you and your own thinking

The engine. Claude, split by role. Sonnet for judgment work: steelmanning, contradiction detection, cross-domain analogies. Haiku for tagging, indexing, and cheap parsing. You do not run Sonnet to check a filename

The trigger. A cron job or a file watcher. No new app, no service, no dashboard. The tool you already use for other automation

Loop 1: ingestion with argument tags

Loop 1 does what the ingestion loops in other articles do, but with one extra field:

The assumption field is the unlock. Without it, contradictions look like disagreements. With it, contradictions look like arguments about premises

This is the whole reason CONTRA passes work. Two notes that seem to disagree usually rest on different assumptions. Once the assumption is explicit, the argument becomes tractable

Loop 2: the Contrarian Loop

This is the layer no article ships out of the box. Four passes, each with its own job:

Pass 4 is the one that changes how you use the vault. Reading a note where you six months ago is telling you six months from now that you are rationalizing hits different than reading a bullet list of similar ideas

Never auto-merge the contradictions

Two notes that contradict each other are not necessarily wrong. They might be about different contexts, different constraints, different phases. A steelman is a suggestion, not a verdict

Always keep a human in the loop for merges or corrections. The loop surfaces, you decide. The moment you let it auto-resolve, it will merge two notes about "quitting a bad client" that were actually about two different clients, and you will lose the reasoning that made both of them right at the time

Manual first

Before scheduling anything, run this prompt in a Claude chat pointed at your existing notes

Run this a few times against your real vault. If what comes back genuinely makes you rethink something, the loop earns a schedule. If it does not, do not automate it. Manual proof first, always

What it costs

Loop 1 runs once per note change, a handful of Haiku calls at a fraction of a cent each. Not recurring

Loop 2 runs four passes every six hours. Put Pass 1 and Pass 3 on Sonnet, since steelmanning and cross-domain analogies need actual judgment. Put Pass 2 and Pass 4 on Haiku, since comparison and quote extraction are cheap

Sixteen passes a day comes out to roughly the cost of a single premium coffee. If the loop catches one contradiction that stops a bad decision, it pays for a year of itself in one afternoon

The order that actually works

Build Loop 1 first. Let the vault fill with claim and assumption metadata for at least three weeks. The loop needs material to argue against

Add Pass 2 (contradictions) manually a few times. If the collisions surprise you, schedule it

Then Pass 4 (ghost self). This one needs three months of history minimum to feel real. Ghost self on a young vault is just guessing

Add Pass 1 (steelman) and Pass 3 (cross-domain) last. These are the entertaining ones but they only hit something interesting once you have critical mass

Do not schedule everything on day one. A loop that runs against three notes will hallucinate connections that are not there and train you to ignore the output. Prove each pass by hand, then automate

What this actually means

Every second brain system promises the same thing. It never forgets. It notices patterns. It becomes a living wiki

Fine. That is the DO layer of a second brain

This one adds the CONTRA layer. Not "here is what fits together" but "here is what does not fit, and both parts came from you".

The point is not that the vault remembers everything. The point is that the vault argues with itself in ways you never would, and every argument surfaces something you should have caught yourself

Your best advisor is not Claude. Your best advisor is you from eight months ago, still writing in your vault, waiting for something to translate what they wrote back into a language you will actually listen to

The loop is that translator

Article image

Article image

Prompts

Read every note in [folder].
 
For each note:
1. Extract the core claim
2. Find one other note where the assumption conflicts
   with this claim
3. Write the steelman of the opposite position, using
   direct quotes from both notes
 
Success criteria (strict, no soft passes):
- every steelman quotes both notes directly
- every contradiction pair identifies the assumption gap
- no vague "you might reconsider X" style output
 
LOOP PROTOCOL, repeat every turn:
1. PLAN   - state the single next step
2. DO     - produce or improve the output
3. VERIFY - score 1-10 on each criterion, be brutally honest
4. DECIDE - if every criterion is 8+, print "FINAL" and stop
 
Begin. Run the loop until FINAL.
TRIGGER:   new note added or existing note edited
STEPS:
  1. Read the note
  2. Extract the core claim being made
  3. Identify the assumption behind that claim
  4. Add three fields to frontmatter:
     ---
     claim: [what the note asserts]
     assumption: [what must be true for the claim to hold]
     ready_for_contra: false
     ---
  5. If assumption is unclear, flag the note for manual review
VERIFY: every processed note has claim and assumption filled
STOP:   verify passes, or flag after 2 retries
TRIGGER: every 6 hours
STEPS:
 
Pass 1, steelman:
  Pick 5 notes at random from the vault. For each, write
  the strongest counterargument using material from other
  notes in the vault. Save as: [note-title]-contra.md
 
Pass 2, contradictions:
  Compare assumption fields across all notes. Find pairs
  where one note's assumption conflicts with another
  note's claim. List the collision in memory/CONTRA.md
  with direct quotes from both notes.
 
Pass 3, cross-domain:
  Pick one note from a technical domain and one from a
  personal or philosophical domain. Force an analogy
  between them. Note the connection in memory/BRIDGES.md.
 
Pass 4, ghost self:
  Load all notes older than 6 months on the same topic
  as any note edited in the last 14 days. Write a short
  paragraph in the voice of past-you reacting to
  current-you on that topic. Save to memory/GHOST.md.
 
VERIFY: each pass writes at least one entry.
        Pass 2 collisions include real quotes.
        Pass 4 uses only quotes from old notes.
 
STOP:   all four passes complete, or a pass logs and
        moves to the next.

Related articles