September 30, 20269 min read

I Built a Skill That Argues With My Notes: How It Finds My Blind Spots

pkmsecond-brainobsidiancritical-thinkingartificial-intelligence

Originally published on Medium. Read here free — no account needed.

My Obsidian vault had become very good at proving me right. I could search almost any opinion and find years of notes ready to support it. That felt useful until I realized what the system was doing. It was making my existing beliefs easier to defend without making them more accurate.

So I built /challenge, a Claude Code skill that reads my notes and looks for the parts I would rather miss. It hunts for contradictions, hidden assumptions, weak reasoning, and strong perspectives I never considered.

Image generated by AI

A second brain should occasionally tell you that your first brain is wrong.

Your Echo Chamber Starts Before the Vault

Most personal knowledge management systems follow the same loop of capturing, organizing, retrieving, and reinforcing.

You read something interesting, save it, connect it to related notes, then retrieve it when the topic comes up again. Each pass makes the idea feel more established because the supporting material is easier to find. The bias often starts before anything reaches your notes.

Social feeds, video platforms, newsletters, and recommendation engines learn from what you click, watch, save, and share. Engage with one position often enough and the algorithm serves you more of it. That filtered stream becomes the raw material for your PKM system.

Now the loop has two layers. The platform narrows what reaches you, then your vault preserves and resurfaces the narrowed view. Search makes this worse in a subtle way. Ask, “What have I written about AI coding?” and it faithfully returns what you already captured. Ask an AI to summarize those notes and you get a more fluent version of the same information diet. That’s useful retrieval, but weak pressure-testing.

I wanted a command that asked a different question. “Where does my own evidence weaken this belief?”

I Built a Mirror and a Critic

I already had a skill called /ghost that answers questions in my voice. It reads my notes, extracts my stated beliefs and reasoning patterns, then drafts the response I would probably give. It’s a mirror. When I want a properly written paragraph or article that explains how I think in my own voice, /ghost makes my current position explicit enough to react to.

/challenge plays the critic. It takes that position and searches the same vault for reasons to doubt it.

The workflow is simple:

  1. Run /ghost [question] when the current belief is fuzzy.
  2. Turn the answer into one clear claim.
  3. Run /challenge [claim] against the vault.
  4. Resolve the strongest contradiction or gather the missing evidence.
  5. Record the decision and why the rejected alternative lost.

The pairing matters because vague beliefs are hard to test. “I think consistency is important” can survive almost any criticism. “Publishing consistently matters more than topic selection” gives the critic something concrete to attack. That’s where the useful discomfort starts.

How /challenge Reads My Vault 🛠️

The skill begins by searching across Projects, Areas, Resources, Inbox notes, and Weekly Notes. It gathers every relevant position instead of trusting the first matching file.

Then it performs six passes.

  1. Map the current position. What do I appear to believe, and which notes support it?
  2. Find contradictions. Where do two notes make claims that can’t both be true?
  3. Separate tensions from conflicts. Competing values, such as speed and quality, may represent a real trade-off rather than faulty reasoning.
  4. Expose hidden assumptions. Is the belief relying on universality, causation, recency, survivorship bias, or an untested prediction?
  5. Steelman the opposition. What would a smart person who disagrees say?
  6. Recommend the next check. What question, experiment, or outside evidence would make the decision stronger?

The report follows a predictable structure.

# Belief Stress Test: [topic]
## Your Current Position
## Contradictions Found
## Hidden Assumptions
## Weak Points in Reasoning
## Missing Perspectives
## Questions Worth Sitting With
## Overall Assessment

Every important finding points back to a source note. I can open the file, read the original context, and decide whether the criticism holds. The command is also read-only. It doesn’t rewrite my notes or make the decision for me. Its job is to make weak reasoning visible before I commit to it.

Why I Don’t Just Ask AI to Debate Me

I could open a blank chat and type, “Argue against this idea.” I’ve tried that. The result is usually a competent list of generic objections that could apply to almost anyone.

A vault-grounded challenge is harder to dismiss because it uses my own receipts. It can show that a principle in one project conflicts with a shortcut I accepted in another. It can compare a confident prediction from a weekly note with the result recorded three months later. It can find the trade-off I acknowledged when discussing somebody else’s system and quietly ignored when evaluating my own.

That context changes the quality of the disagreement. A generic debate partner invents possible weaknesses. /challenge starts with weaknesses already present in my history. It also keeps the criticism proportional. The goal is useful pressure, because constant contrarianism becomes another kind of noise. The report distinguishes a direct contradiction from a tension, a missing fact, or a reasonable assumption that simply needs monitoring.

That makes the output easier to act on. I can revise a claim, gather one missing data point, or document why I’m accepting a known trade-off. The disagreement ends in a better decision instead of an endless debate.

The Belief That Failed the Test

I gave /challenge a belief that had already appeared in my vault.

Publishing consistently matters more than topic selection.

The belief had a reasonable origin. A weekly cadence builds a body of work, creates momentum, and removes the recurring debate about whether to publish. I had even described “consistency beats topic selection” as an idea worth developing. Then /challenge compared that position with the performance data in my blog strategy.

The first contradiction was immediate. I had published on a consistent cadence, but individual posts ranged from 6 views to 2.7K views. If consistency was the dominant variable, results from the same schedule shouldn’t have varied by roughly 40 times. The command also surfaced a hidden assumption. I was assuming Medium rewarded frequency strongly enough to smooth over differences in topic and framing. My notes contained no evidence for that. The distribution numbers pointed the other way.

Then came the missing perspective. Medium’s presentation data was direct market feedback. The concrete, first-person pieces built around named tools and real systems received the strongest distribution. 10 CLI Tools That Replace Your GUI in 2026 reached 2.7K views. Claude Code + Obsidian: How I Built an AI-Powered Second Brain reached 798. My weekly-notes article reached 462.

Abstract AI and career commentary published on the same cadence landed between 1 and 15 views. The sharpest question in the report was also the simplest.

If consistency is the main lever, why did equally consistent posts produce radically different outcomes?

I couldn’t defend the old claim after that. The corrected position in my strategy is more useful. Consistency keeps the blog eligible, while topic and framing dominate distribution. I now prioritize concrete, personal, tool-specific posts and use a pillar rotation to preserve variety.

The original idea was directionally useful but too broad. /challenge forced the nuance that retrieval alone had missed.

Build the Smallest Useful Version

You don’t need my entire vault setup to try this. You need a folder of markdown files and an AI agent that can read local files. You can also do this with a cloud notes application setup as long as the provider you are using provides an API layer that you can connect your agent harness to.

Start with this prompt.

Read every note relevant to [belief].
State my current position with citations.
Find direct contradictions, hidden assumptions, weak reasoning,
and missing perspectives. Steelman the strongest opposing view.
Separate factual conflicts from legitimate trade-offs.
End with questions and the evidence I should gather next.
Do not edit any files.

Give the agent a short instruction file that explains your folder structure and tells it where to search. Require citations to the original notes, and keep the first version read-only. That last part is important. A challenge system should show its work. If it claims two notes conflict, you should be able to inspect both passages and decide whether your thinking changed over time or whether a real contradiction remains.

Once the basic prompt works, save it as a reusable skill or command. Mine lives in the open-source Staksmith repository, so you can copy the full /challenge definition and adapt the search paths to your own system.

Your Vault Can Still Fool You

Adversarial retrieval improves the system, but it can’t manufacture perspectives you never captured. If every source in your vault came through the same recommendation loop, /challenge is still working with one-sided material. It may notice repeated assumptions or missing evidence, but it can’t reliably reconstruct an entire position that never entered the system.

That’s why “missing perspectives” is one of the most valuable sections in the report. It tells me when the next step belongs outside the vault. Sometimes I need primary documentation. Sometimes I need customer interviews, performance data, or a small experiment. Sometimes I need to read the strongest person who disagrees with me instead of another article that confirms the position.

The model can also misread evolution as contradiction. A note from two years ago and a note from last week may disagree because I learned something. Dates and context matter.

Citations help, but they don’t remove the need for judgment. I open the source notes before accepting any important finding.

The Decision Ritual I Use Now 💡

Before a consequential decision, I write the belief in one sentence. If I can’t state it clearly, I run /ghost first. Then I give the explicit claim to /challenge and focus on the strongest contradiction, not the longest list of minor objections.

From there, I choose one of three actions.

  • Revise the belief because my own evidence already disproves it.
  • Gather external evidence because the vault is incomplete.
  • Keep the belief and record why the counterargument didn’t survive scrutiny.

This creates a deliberate pause before commitment. I remain the authority, but the process makes me earn confidence instead of borrowing it from a large pile of familiar notes. My vault can still act as a filing cabinet or a mirror when I need one. Now it can also become a sparring partner.

Stored knowledge gets more valuable when it can resist you.

What belief would you ask your own notes to challenge first?