obsidian-reconcile

obsidian-reconcile is a command for Claude Code from eugeniughelbur/obsidian-second-brain. It costs 14 tokens per session (1,451 once invoked), scanned A, original, MIT.

A command for finding conflicting or outdated facts in an Obsidian vault, which is a folder of linked notes. It compares claims, entities, decisions, and source dates to identify information that does not agree.

In plain words
What is it for?
Reconciling notes about concepts, projects, people, companies, decisions, and source freshness. It can focus on a topic or scan the whole vault.
Why use it?
A knowledge vault can contain newer notes that contradict older ones without clearly replacing them. This helps locate those conflicts so the vault's information can be corrected.

Command for Claude Code

Written for Claude Code: $ARGUMENTS substitution. Also seen: mentions subagents.

Part of the obsidian-second-brain plugin — 1 skill, 49 commands, 3 hooks shipped together

Good fit Reconciling notes about concepts, projects, people, companies, decisions, and source freshness. It can focus on a topic or scan the whole vault.

Compare 6 commands from other repositories ↓
Install with agentmods
npx agentmods add commands/eugeniughelbur/obsidian-second-brain/obsidian-reconcile
About the project

obsidian-second-brain turns an Obsidian vault into persistent, searchable memory for Claude Code and other command-line coding agents, storing knowledge as linked Markdown notes. It is for developers, founders, writers, and researchers who want agents to retain project context across sessions. Its catalogue entries provide commands, hooks, a plugin, a skill, and instructions for capturing, finding, and maintaining that memory.

eugeniughelbur/obsidian-second-brain · 4,996 stars · on GitHub · theaioperator.io

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/eugeniughelbur/obsidian-second-brain

Made for: Claude Code.

Or install obsidian-second-brain, the plugin that ships this one along with the rest of its 1 skill, 49 commands, 3 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for obsidian-reconcile

README.md
[![agentmods](https://agentmods.dev/badge/commands/eugeniughelbur/obsidian-second-brain/obsidian-reconcile/github.svg)](https://agentmods.dev/commands/eugeniughelbur/obsidian-second-brain/obsidian-reconcile)
Your own site
<a href="https://agentmods.dev/commands/eugeniughelbur/obsidian-second-brain/obsidian-reconcile"><img src="https://agentmods.dev/badge/commands/eugeniughelbur/obsidian-second-brain/obsidian-reconcile/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for obsidian-reconcile

Your own site · 80×15
<a href="https://agentmods.dev/commands/eugeniughelbur/obsidian-second-brain/obsidian-reconcile"><img src="https://agentmods.dev/badge/commands/eugeniughelbur/obsidian-second-brain/obsidian-reconcile.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 14 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,451 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00014 $0.01451
Opus 5.5 $0.00006 $0.00580
Sonnet 5.5 $0.00003 $0.00290
Haiku 4.5 $0.00001 $0.00145

Measured 3d ago against content hash a674a67615cd, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

obsidian-reconcile scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

commands/obsidian-reconcile.md · 67 lines

How it starts

The opening of the file, as written. The whole thing — 67 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Use the obsidian-second-brain skill. Execute /obsidian-reconcile $ARGUMENTS:

The optional argument is a topic or entity to focus on. If not provided, scan the whole vault.

  1. Read _CLAUDE.md first if it exists in the vault root

  2. Read index.md to understand the full vault landscape

  3. Spawn parallel subagents to find contradictions:

    • Claims agent: scan the concepts and projects folders (resolved per references/folder-map.md) for factual claims - find pairs that contradict each other
    • Entity agent: scan the entities folders (resolved per references/folder-map.md, which gives Obsidian-style vaults a separate folder for some entity kinds) for outdated roles, companies, or descriptions that conflict with newer sources
    • Decisions agent: scan the decisions folder (resolved per references/folder-map.md) and project Key Decisions for reversed or superseded decisions that were never updated
    • Source freshness agent: compare raw/ source dates against wiki/ page dates - flag wiki pages that reference old sources when newer ones exist on the same topic

    The claims, entity and decisions agents return each contradiction as two claims, one per side. Each claim has the note's vault-relative path, the line number, and a quote: one line copied character for character from that note, at least 12 characters long. A contradiction without both quotes is not a finding. Pass this format to every subagent.

  4. Prove each contradiction before acting on it. Send both claims to the checker (the skill root's absolute path was given at session start as Skill root; substitute it for SKILL_ROOT):

    uv run --directory "SKILL_ROOT" scripts/verify_quotes.py --path <vault> <<'EOF'
    [{"path": "<note path>", "line": 12, "quote": "<line copied from that note>"},
     {"path": "<other note path>", "line": 40, "quote": "<line copied from that note>"}]
    EOF
    
    • Both claims must come back "ok": true. If either fails, drop the contradiction: no rewrite, no conflict note. List it under Dropped as unproven with the reason the checker gave.
    • Use found_line from the output, not the line the subagent gave.
    • Source freshness findings compare dates, not claims, so they skip this step.

    For each proven contradiction, evaluate:

    • Which source is newer? (date comparison)
    • Which source is more authoritative? (peer-reviewed > blog post > transcript > opinion)
    • Is this a genuine contradiction or an evolution? (someone changing their mind is not a contradiction - it's growth)
  5. Resolve each contradiction:

    • Clear winner: rewrite the outdated page with current info. Add a ## History section noting what changed and why, with the proven quote it replaced: "Previously stated X (source: raw/articles/old-article.md, 2025-11-01). Updated to Y based on newer evidence (source: raw/articles/new-article.md, 2026-03-15)."
    • Genuinely ambiguous: create Conflict - Topic.md in the decisions folder (resolved per references/folder-map.md; type: conflict, schema in references/ai-first-rules.md) documenting both sides with their verbatim quotes and path:line, the evidence for each, and mark as status: open for the user to decide
    • Evolution: update the entity/concept page to reflect the current state and add the historical context
  6. After all resolutions:

    • Rebuild affected sections of index.md
    • Append to the operation log: if Logs/ exists write **HH:MM** - reconcile | X contradictions reported, P proven, D dropped as unproven, Y auto-resolved, Z flagged for user to Logs/YYYY-MM-DD.md; otherwise append ## [YYYY-MM-DD] reconcile | X contradictions reported, P proven, D dropped as unproven, Y auto-resolved, Z flagged for user to log.md
    • Update today's daily note with a reconciliation summary
  7. Report back:

    • Auto-resolved (list with old claim → new claim and why)
    • Flagged for user (genuinely ambiguous - needs human judgment)
    • Stale pages updated (pages rewritten with fresher sources)
    • Dropped as unproven (each claim, its path, and the checker's reason)

Read the full file on GitHub · 67 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago Changed · +16 lines a674a67615cd
  2. 1mo ago Changed · +1 lines 60600f91c8e7
  3. 1mo ago First seen · 50 lines · 14 tokens per session scan A 0e5cf7eacb01

Subscribe to this mod's changes

obsidian-reconcile is a command published in the GitHub repository eugeniughelbur/obsidian-second-brain (4,996 stars, last pushed today), licensed MIT. It adds 14 tokens to every session and 1,451 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.