wiki
Skill1 starsChanged 7 months agoApache-2.0View on GitHub
Bootstrap or check a Karpathy-style "LLM wiki" structure inside an Obsidian vault — a self-maintaining knowledge base where pages reference each other and the LLM keeps it tidy. Sets up catalog.md (curated page catalog), journal.md (append-only operation history), hot.md (recent-context cache), and overview.md (executive summary). Use this skill when the user says "set up a wiki", "scaffold a knowledge base", "/wiki", "create my second brain", "bootstrap a vault for note-taking", or any phrasing that implies turning a plain Obsidian vault into a structured wiki for ongoing use with Claude.
43 other projects use a version of this.
Adopted by
Most recently taken up by
- Yeachan-Heo/oh-my-claudecodetheir own version, first seen Nov 9, 2026
- WALKERKILLER/Look-Tongji-Notestheir own version, first seen Nov 8, 2026
- SethGammon/Citadeltheir own version, first seen Nov 4, 2026
- zlatko-lakisic/agent-cooptheir own version, first seen Nov 1, 2026
- Lixiuxiu559/AgentForgetheir own version, first seen Nov 1, 2026
- saksham10arora-dotcom/everything-claude-codextheir own version, first seen Nov 1, 2026
Used with
Projects with it also use ai-slop-cleaner, ralplan and 8 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Jurel89Skillai-slop-cleaner
Clean AI-generated code slop with a regression-safe, deletion-first workflow and optional reviewer-only mode
Also in 4 projects that use this
ibahgatSkillralplan
Create a strict, quality-first execution plan with explicit gates and rollback-ready sequencing.
Also in 4 projects that use this
Yeachan-HeoSkillultragoal
Create and execute durable repo-native multi-goal plans over Codex goal mode artifacts.
Also in 3 projects that use this
woosikkimSkilldeepinit
Generate hierarchical AGENTS.md codebase maps for agent context
Also in 3 projects that use this
ibahgatSkillhud
Control omi visual HUD profile and keep status output readable in normal, compact, or hidden mode.
Also in 3 projects that use this
klauswgSkilldeep-interview
在明确批准执行之前,通过数学化歧义门控进行苏格拉底式深度访谈
Also in 4 projects that use this
Other versions43 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 43
- Yeachan-Heo/oh-my-claudecode★ 41ksame name
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
- Yeachan-Heo/oh-my-codex★ 34ksame name
- AgriciDaniel/claude-obsidian★ 16ksame name
- SethGammon/Citadel★ 927same name
- saltmd/salt.md★ 178same name
- ekadetov/llm-wiki★ 108same name
- saksham10arora-dotcom/everything-claude-codex★ 74same name
- skillberry-ai/cap-evolve★ 69same name
- WALKERKILLER/Look-Tongji-Notes★ 53same name
33 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository49 other files it gives its agents.
- AGENTS.mdAGENTS.md
- auto-modeSkill
- autoresearchSkill
- bind-workspaceSkill
- build-search-indexSkill
- canvasSkill
- conventionsSkill
- decision-consolidateSkill
- defuddleSkill
- discover-list-filesSkill
- discover-list-vaultsSkill
- force-new-port-startSkill
- hot-compactSkill
- lockSkill
- manage-deleteSkill
- manage-moveSkill
- meta-attach-vaultSkill
- meta-audit-bridge-readinessSkill
- meta-setupSkill
- meta-statusSkill
- meta-sync-templateSkill
- obsidian-basesSkill
- obsidian-markdownSkill
- read-frontmatterSkill
- read-getSkill
- read-searchSkill
- read-search-smartSkill
- saveSkill
- sync-from-githubSkill
- template-executeSkill
- unlockSkill
- who-is-speakingSkill
- wiki-boundarySkill
- wiki-exportSkill
- wiki-foldSkill
- wiki-graphSkill
- wiki-ingestSkill
- wiki-lintSkill
- wiki-neighborsSkill
- wiki-pathSkill
- wiki-querySkill
- wiki-refresh-digestsSkill
- wiki-tourSkill
- write-appendSkill
- write-bundleSkill
- write-create-or-replaceSkill
- write-frontmatter-mergeSkill
- write-frontmatter-setSkill
- write-patchSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 5 are distinctive, and 10 are very specific to this project.
0
Common
Most of the 37 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
Before scaffolding, you must know:
- Distinctive: line 34
If the user didn't say, ask in one short question.
- Very specific: line 38
Verify the target vault is online via list_vaults.
- Very specific: line 40
Check whether wiki-meta/catalog.md already exists:
- Very specific: line 44
If it returns 200 → the wiki is already scaffolded.
- Very specific: line 66
If you can't read the templates (e.g., the user installed via npm without the templates dir), fall back to inline content — the contract …
- Very specific: line 76
Verify after writing: call mcp__obsidian-router__list_files({ vault, directory: "wiki-meta" }) and confirm all four files appear.
- Distinctive: line 78
Write/append the canonical wiki CLAUDE.md block at the vault root.
- Very specific: line 80
Source of truth: read templates/wiki/CLAUDE.md from the plugin install directory and use ITS content (with {{VAULT_PATH}} substituted) as …
- Very specific: line 100
Use mcp__obsidian-router__write_file with ifNew: true if CLAUDE.md is absent.
- Very specific: line 113
If the user skips the picker, name what is missing in the final message, with /obsidian-router:conventions install <id>.
- Distinctive: line 123
Don't scaffold without confirming which vault.
- Very specific: line 124
Don't overwrite an existing wiki-meta/catalog.md — bail and suggest wiki-lint.
- Distinctive: line 125
Don't invent vault content during scaffold.
- Very specific: line 126
Don't use Claude's native Write tool — it works only when the project IS the vault.
“Common” is measured: kept by at least 6 in 10 of the 37 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
wiki
This skill creates the four scaffolding files at the root of a vault that turn it into a Karpathy-style LLM wiki. The pattern: an LLM ingests sources, files them as wiki pages, and maintains the catalog/log/hot-cache so future sessions can navigate and build on prior knowledge cheaply.
When to use
- The user has an Obsidian vault and wants Claude to start using it as a knowledge base across sessions.
- The user asks "/wiki" or "set up the wiki".
- A vault already has notes but no
wiki/folder, and the user wants to graduate it to a wiki.
When NOT to use
- The user just wants to write a single note → don't scaffold.
- The vault already has
wiki-meta/catalog.mdand looks healthy → suggestwiki-lintinstead. - The user is asking how the pattern works conceptually → explain, don't scaffold.
Pre-flight
Before scaffolding, you must know:
- Which vault to scaffold in. Call
mcp__obsidian-router__list_vaultsfirst. If the user said "this vault" without specifying, use the default vault. If multiple vaults are configured, ask which. - Which mode the wiki targets — this affects only the seed of
catalog.mdandoverview.md. Common modes:personal— second brain, journals, projects, referencesresearch— papers, concepts, hypotheses, methodologybusiness— competitors, customers, decisions, stakeholderscode— codebases, ADRs, runbooksdomain— anything else (let the user describe in 1 sentence)
If the user didn't say, ask in one short question. Don't enumerate all modes — give 2-3 likely ones based on context.
Steps
- Verify the target vault is online via
list_vaults. Bail with a clear message ifonline: falseormissingApiKey: true. - Check whether
wiki-meta/catalog.mdalready exists:
If it returns 200 → the wiki is already scaffolded. Tell the user, offer to runmcp__obsidian-router__get_file({ vault: <name>, path: "wiki-meta/catalog.md" })wiki-lintinstead. Stop. Create the four scaffolding files in the
wiki/subdirectory of the vault (NOT at the vault root — the wiki must live underwiki/). Usemcp__obsidian-router__write_filewithifNew: trueso we never clobber.⚠️ Path discipline (do not deviate): every
pathargument towrite_fileMUST start withwiki/. The four files are:wiki-meta/catalog.mdwiki-meta/journal.mdwiki-meta/hot.mdwiki-meta/overview.md
If you write
catalog.md,journal.md, etc. at the vault root or underwiki/, the wiki workflow breaks: thewiki-queryskill won't find them (it looks underwiki-meta/), thewiki-lintskill will mark them as orphans, andwiki-foldwon't see the log. The whole stack assumes thewiki-meta/prefix for these 4 scaffolds (v0.12.0+). User content/pages stay underwiki/.Also create the session-journal directory
wiki-meta/Sessions/(capital S — thesession-auto-journalhook writes there since v0.12.8), then initialise the OKF projections (v0.59.0, volet ②): callmcp__obsidian-router__refresh_okf_projections({ vault: <name> })once. That writes the generatedwiki/index.md(root,okf_versiononly) +wiki/log.md, and from then on the router keeps oneindex.mdper content directory fed automatically (~15 s after each write). NEVER hand-write or wikilink those files — internal links keep targeting[[catalog]]/[[journal]].The
templates/wiki-meta/folder in this repo (<repo>\templates\wiki-meta\) ships the 4 scaffolds. The CLAUDE.md block (vault-root, see step 4) lives intemplates/wiki/CLAUDE.md(path kept stable for back-compat — only the 4 scaffolds moved towiki-meta/). Read the template via the local filesystem and substitute these placeholders before writing to the target vault:Placeholder Substitute with {{TIMESTAMP}}Current ISO timestamp ( YYYY-MM-DD HH:MM){{VAULT_PATH}}The absolute path of the target vault {{MODE}}The chosen mode ( personal,research, etc.) — only inoverview.mdif you decide to seed itIf you can't read the templates (e.g., the user installed via npm without the templates dir), fall back to inline content — the contract for each file (under
wiki-meta/) is:wiki-meta/catalog.md— the map of maps: one section per area (directory) ofwiki/, each linking to that directory's generatedindex.md, plus the few pages worth reading first. Initial structure must include sections matching the chosen mode. Include the invariant at the top: "A map of maps, not a list of pages. A new page in an existing area needs no edit here — the generated index picks it up. Only a new area earns a new section. Link indexes with markdown links ([Area](../wiki/<dir>/index.md)), never wikilinks — every index shares theindexbasename and Obsidian resolves wikilinks by basename." Never seed "add a row for every new page": that instruction is what grew one vault's catalog to 70 KB / 115 rows, unreadable in a single tool call.wiki-meta/journal.md— append-only operation history. Each entry: ISO timestamp + verb + target page(s) + 1-line reason. Initial entry: "scaffolded by wiki skill on YYYY-MM-DD".wiki-meta/hot.md— recent-context cache (≤500 words). What's been recently touched, key facts, active threads. Empty placeholder at scaffold time with structure:## Last Updated,## Key Recent Facts,## Recent Changes,## Active Threads.wiki-meta/overview.md— executive summary of the wiki's domain. 100-300 words written by you based on what the user said about the mode/domain. If the user gave no detail, leave a stub: "Update me with a one-paragraph summary of what this wiki covers."
Verify after writing: call
mcp__obsidian-router__list_files({ vault, directory: "wiki-meta" })and confirm all four files appear. If they ended up at vault root or underwiki/by mistake, usemove_fileto relocate each towiki-meta/<name>.mdbefore continuing to step 4.Write/append the canonical wiki
CLAUDE.mdblock at the vault root.Source of truth: read
templates/wiki/CLAUDE.mdfrom the plugin install directory and use ITS content (with{{VAULT_PATH}}substituted) as the block. The template includes:- The wiki navigation rules (read hot → index → drill, append log, refresh hot)
- The "always use obsidian-router MCP" reminder
- The list of available
/obsidian-router:wiki-*workflows
This block embeds no library convention, and that is deliberate — decision
conventions-livrees-par-le-modele(2026-09-11). Two different things are called "the template", and they are not in the same state:templates/wiki/CLAUDE.md(this block) andtemplates/reference-vault-skeleton/CLAUDE.mdin the plugin carry zero library conventions —scripts/conventions-drift.mjspins both at an empty expectation, so one reappearing fails the suite.- the reference
.templatevault on the user's machine, whose root docs provisioning copies into a new vault, ships the four core conventions —roadmap-discipline,default-vault-health-check,wiki-query-first,path-disambiguation— per the same decision. A vault born from it already carries them; a vault scaffolded by this skill alone carries none.
Nothing here needs to know which case it is in: the picker (step 6) reads the vault's file first, so present conventions arrive checked and labelled "already in place". The stylistic ones —
auto-enrichment,heading-hierarchy,source-type,languages(which carries the vault's own value),description-frontmatter— are in no template; the picker offers them pre-checked, so the user refuses rather than discovers, and a vault whose owner accepts them ends up carrying them exactly as before. What stays in this block is navigation: how to read the wiki, the MCP reminder, the workflow list.This page used to say the opposite, and told you to add the auto-enrichment section yourself if it was missing — which would have put the convention back one scaffolded vault at a time, silently undoing the decision.
The
descriptionrequirement is NOT one of the optional ones. The template states it unconditionally, in its "Required frontmatter —description" paragraph, so it reaches every scaffolded vault without anyone opting in. That split is deliberate: the FIELD is a data contract the code acts on (the lint reports pages missing it, the generated indexes publish the sentence), while thedescription-frontmatterconvention adds only the authoring guide — what to say, how long, how to quote it. Of the 16 vaults with a conventions file inspected on 2026-09-11, none contained that guide, though the lint applied to their pages.After scaffolding, the conventions picker RUNS (step 6) — it is the only thing that installs the optional conventions, so it is not offered, it is shown.
If you cannot read the template file, inline by hand everything the list above names — the navigation rules, the MCP reminder, the workflow list — and the
descriptionrequirement paragraph, which is part of the block and not a convention. Do NOT add a convention section to make the block look complete: an absent convention here is the intended state, and installing one is/obsidian-router:conventions install <id>, which owns the detection and the safe append.Use
mcp__obsidian-router__write_filewithifNew: trueifCLAUDE.mdis absent. If it exists, useappend_to_fileBUT first check (viaget_file) that the wiki block isn't already there — re-running scaffold should NOT duplicate the block.- Append the scaffold operation to
wiki-meta/journal.mditself:- YYYY-MM-DD HH:MM — scaffold — catalog.md, journal.md, hot.md, overview.md, CLAUDE.md — initial wiki bootstrap (mode: <mode>) Conventions picker — automatic, at the end of every wiki creation. Do not ask whether the user wants it; show it. (Exception: when this skill runs inside
meta-attach-vault, the wizard's own step 1A.5 is this picker — run it once, there.)install_conventions({ vault, ids: [], dryRun: true })— writes nothing; returns the resolved conventions file (path), the library (catalogue; entries flaggedretired: trueare recognised, never offered),detection(installed / duplicate per convention) andvaultLanguages. If it refuses because two conventions files exist, name them and ask which is the user's; do not pick.AskUserQuestionwithmultiSelect: true, one option percatalogueentry not flaggedretired(several questions if one cannot hold them all). Pre-checked = every conventiondetectionmarks installed (suffix— déjà en place/— already in place) + the recommended ones: the four core (roadmap-discipline,default-vault-health-check,wiki-query-first,path-disambiguation) andsource-type,languages,heading-hierarchy,auto-enrichment,description-frontmatter. A present convention is ALWAYS pre-checked, whatever the recommended list says — unchecking a present one means removing it, and a default may never propose a removal. Describe what each one DOES (themeta-attach-vaultpage has the reviewed wording). A retired conventiondetectionfinds installed (bilingual) is not an option: propose/obsidian-router:conventions migrate-bilingualafter the picker.- Checked and absent → ONE call:
install_conventions({ vault, ids: [<all of them>] })— withlanguages: ["<codes>"]whenlanguagesis among them: ask the owner the value first (defaultfr; ISO 639-1 codes, primary first), the tool refuses the whole call without it. Never paste snippet text, neverappend_to_filefor this (no precondition — refused on shared vaults). Unchecked but present → do NOT remove silently: ask, then go through/obsidian-router:conventions remove <id>with its guards. - Show the verified result:
installed,alreadyPresent("already in place", never "installed"),unknown,retired,verifiedandsatisfied(falsewhen an id named was unknown or retired — say which).verified: false→ showproblemsand say the install is NOT confirmed. A conflict (409) → nothing was written; run the same call again. Link the file withclickToOpenUrl. - If the user skips the picker, name what is missing in the final message, with
/obsidian-router:conventions install <id>.
- Confirm to the user:
- Vault scaffolded
- List of files created (4 + CLAUDE.md update)
- Conventions: installed / already in place / verified (from step 6)
- Suggested next step: "ingest your first source with
wiki-ingest" or "ask me a question — I'll start filling the wiki as we go"
Anti-patterns
- Don't scaffold without confirming which vault.
- Don't overwrite an existing
wiki-meta/catalog.md— bail and suggestwiki-lint. - Don't invent vault content during scaffold. Stubs are fine. The wiki gets populated through ingestion and queries, not at scaffold time.
- Don't use Claude's native
Writetool — it works only when the project IS the vault. Usemcp__obsidian-router__write_fileeverywhere so the skill is multi-vault and cross-project.
Output format
End your turn with a compact summary:
✅ Wiki scaffolded in vault
<name>(mode:<mode>). Created:wiki-meta/catalog.md,wiki-meta/journal.md,wiki-meta/hot.md,wiki-meta/overview.md,CLAUDE.mdupdated. Conventions: installed<installed>· already in place<alreadyPresent>· verified<yes|no>. Next: trywiki-ingest <source>to file your first source, or just start asking questions — I'll grow the wiki as we go.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

