Install any skill in seconds. Free to start, no credit card required.
Get Started Free →ar9av/wiki-dedup
Scan the Obsidian wiki for page-level identity collisions — different pages covering the same concept under different names (e.g. "RSC" vs "React Server Components") — and merge them.
Passed 11 of 16 test cases with the skill, and 5 of 16 without it.
and 7 more in the full report
10 fixed5 passed either way5 still failing2 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
A newer attempt on gemini-3.8-flash on 10/18/2026 did not produce a publishable comparison (not comparable). The snapshot above is the previously measured run.
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
Two candidate markdown notes in an Obsidian vault share 3 tags in common (#react, #frontend, #architecture). When evaluating semantic signals, how many points does a tag overlap of 3 shared tags contribute to the score?
| Checked | Without skill | With skill |
|---|---|---|
| Adds 0.15 points to the similarity score when candidate pages share 3 or more tags. | Missed | Passed |
The instructions your model reads when the skill loads.
You are finding and merging wiki pages that cover the same concept under different names. This is a write-heavy, potentially destructive skill — page merges cannot be automatically undone. Work carefully and confirm before acting in merge mode.
Follow the Retrieval Primitives table in llm-wiki/SKILL.md. The candidate-detection pass uses only frontmatter and titles (cheap). Only open full page bodies for confirmed candidate pairs.
Writing profile: Before drafting or rewriting natural-language Markdown, read and apply the Writing Profile Resolution section in llm-wiki/SKILL.md. Framework schema, provenance, safety, and operation-specific requirements take precedence.
WRITING.md preferences apply only to newly drafted or rewritten natural-language Markdown; preserve source content and structured records.
llm-wiki/SKILL.md (inline @name override → walk up CWD for .env → global config → prompt setup). This gives OBSIDIAN_VAULT_PATH and OBSIDIAN_LINK_FORMAT.index.md to get the full page inventory with one-line descriptions and tags.log.md briefly — if a dedup run just happened, note what was already merged.| Mode | Flag | Behavior |
|---|---|---|
| Audit | (default) | Report candidates only — no writes |
| Merge | --merge | Show each confirmed pair, ask for confirmation before merging |
| Auto-merge | --auto | Merge all high-confidence pairs (score ≥ 0.90) non-interactively |
If the user doesn't specify, run in Audit mode and present findings before asking whether to proceed.
Glob all .md files in the vault (excluding _archives/, _raw/, .obsidian/, index.md, log.md, hot.md, _insights.md, and any file that contains redirects_to: in its frontmatter — those are already merged redirect stubs).
For each remaining page, extract from frontmatter:
node_id — relative path from vault root, without .mdtitle — frontmatter title fieldaliases — frontmatter aliases list (may be absent)tags — frontmatter tags listcategory — directory prefixBuild a lookup table: node_id → {title, aliases, tags, category, summary}.
test cases passed, vs 5 / 16 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.