Skip to content
Productivity
Command

/obsidian-reconcile

Find and resolve contradictions in the vault - the vault maintains its own truth

From plugin
obsidian-second-brain
5.3k49 skills49 commands3 hooks
> /plugin marketplace add eugeniughelbur/obsidian-second-brain
> /plugin install obsidian-second-brain@obsidian-second-brain

Command definition

obsidian-reconcile.md
description: Find and resolve contradictions in the vault - the vault maintains its own truth
category: thinking
triggers_en: ["find contradictions", "reconcile vault", "fix conflicts", "vault contradictions"]
triggers_de: ["Widersprüche finden", "Vault abgleichen", "Konflikte lösen", "Widersprüche im Vault"]
triggers_es: ["busca contradicciones", "concilia el vault", "resuelve los conflictos", "contradicciones en el vault"]
triggers_pt: ["encontre contradições", "reconcilie o vault", "corrija conflitos", "contradições do vault"]
triggers_zh: ["找出知识库里的矛盾", "解决笔记之间的冲突", "核对相互矛盾的说法", "让知识库里的事实保持一致"]

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`)

The vault should never contain two pages that disagree without knowing they disagree. Contradictions are either resolved or explicitly documented as open questions. A contradiction nobody can quote is not resolved at all: rewriting a note to fix a disagreement that is not there puts a new error into the vault.

---

**AI-first rule:** Every note created or updated by this command MUST follow `references/ai-first-rules.md` - `## For future agent` preamble, rich frontmatter (`type`, `date`, `tags`, `ai-first: true`, plus type-specific fields), recency markers per external claim, mandatory `[[wikilinks]]` for every person/project/concept referenced, sources preserved verbatim with URLs inline, and confidence levels where applicable. If that path does not resolve from your working directory, search upward for it; if you still cannot read it, say so before writing rather than producing a note that silently skips the rule. The vault is for future agent retrieval - not human reading.

**Anti-fabrication:** Search exhaustively before claiming any note, person, or file is absent - false absence is the most common failure mode - and never invent facts, entities, or dates (mark unknowns as `TBD`

Read more
@eugeniughelbur
Ships withobsidian-second-brain

Persistent memory for Claude Code, Codex and 6 other AI agents, stored as plain markdown in your Obsidian vault. New: Crew, one shared logbook so Claude Code, Codex, Cursor and Grok Bot know what each other did. 48 commands: semantic search, self-rewriting notes, key-less research, scheduled agents.

Stars on GitHub

Momentum

stars in total
5.3k
Star history of eugeniughelbur/obsidian-second-brain on GitHub, a chart by star-history.com

Other commands on obsidian-second-brain.

More commands from other plugins.

analyze-cohorts

analyze-cohorts

Command

Perform cohort analysis on user data — retention curves, feature adoption, and engagement trends

@phuryn@phurynInstall Command
again

again

Command

PUA Again — 用于再试试、换个方法、别放弃、为什么还不行、同一路径失败多次;要求停止微调同一思路,改用本质不同方案。

pua2mo20k
@tanweai@tanweaiInstall Command