Wiki operator
Portable AI agent skills built on the open SKILL.md standard — self-contained capabilities any compatible agent can discover and load on demand, usable across Claude, Codex, Gemini CLI, Cursor, and GitHub Copilot.
npx -y skills add Hefrock/agent-skills --skill wiki-operatorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Operates a Karpathy-style personal knowledge wiki by reading and writing an Obsidian vault directly via MCP — searching before creating, updating existing concept pages over adding new ones, merging duplicates, and keeping all notes linked. Use this skill for any vault operation: processing new learning into wiki notes, improving a concept page, finding connections between ideas, reviewing note quality, generating study prompts, or running maintenance. Triggers on "add this to my wiki," "update my notes on X," "what do I know about Y," "connect these ideas," "clean up my vault," and the commands /learn /update /connect /ask /review /quiz /map /source /clean /health. Requires an Obsidian MCP server connected with read and write tool access.
SKILL.md
11.2 KB, as published. Nobody here has run it
Wiki Operator
Claude acts directly on an Obsidian vault via MCP — not as a suggestion engine. The wiki is the source of truth; conversations are ephemeral.
Prerequisites
The obsidian-vault MCP server (in mcp/obsidian-vault/) must be running and connected. Set it up once:
cd mcp/obsidian-vault && npm install && npm run build
Add to ~/.claude.json:
{
"mcpServers": {
"obsidian-vault": {
"command": "node",
"args": ["/absolute/path/to/agent-skills/mcp/obsidian-vault/dist/index.js"],
"env": { "OBSIDIAN_VAULT_PATH": "/absolute/path/to/your/vault" }
}
}
}
Verify with /mcp — should show obsidian-vault connected with 10 tools. If MCP tools are unavailable, stop and tell the user — do not simulate vault operations in the conversation.
Note on commands: The trigger phrases like /learn, /update, /synthesize, etc. shown in this skill are natural-language shorthand — they work when written in the chat window as plain text (e.g. type /learn or "add this to my wiki: ..."). They are NOT Claude Code CLI slash commands. Typing /learn in the Claude Code terminal will hit the CLI parser and fail — use the phrase in a chat message instead.
Session start
At the beginning of any wiki session, read Maps/_context.md first if it exists. It contains a compact summary of the wiki's current state — active areas, recently updated pages, open questions — so you don't start cold. After any session that makes significant changes, update _context.md to reflect what changed.
Principles
- Search before write. Always search the vault before creating anything. If a relevant page exists, update it — do not create a duplicate.
- One canonical page per concept. If two pages cover the same idea, merge them — preserve both sets of details, do not truncate either.
- Prefer durable over ephemeral. Extract durable knowledge from journals into
Knowledge/. Leave dates and session context in the journal; promote only the insight. - Preserve uncertainty. Mark low-confidence claims with
confidence: lowin frontmatter. Never guess and present it as fact. - Keep explanations compositional. One clear sentence beats a dense paragraph. Link to related concepts instead of re-explaining them inline.
- The wiki evolves, it does not reset. Each update improves an existing page. Orphaned content is either upgraded or merged — not abandoned.
Note schema
Every note must carry this frontmatter:
type: concept | journal | source | map | project
status: mature | draft | stale
confidence: high | medium | low # accurate=high; uncertain/incomplete=low — not about writing quality
updated: YYYY-MM-DD
typedetermines which template to follow (seeassets/).status: mature— stable, clearly written, linked to at least two other pages.status: draft— new or incomplete. Default for anything just created.status: stale— hasn't been updated and has no incoming links. Flag, don't delete.confidenceis about accuracy, not polish. Anylowpage must have an## Open Questionssection.
Vault structure
Knowledge/ ← canonical concept pages (type: concept)
AI/
Systems/
Math/
Engineering/
Journal/
Daily/ ← daily notes (type: journal)
Sources/
raw/ ← unprocessed clippings, before /source compiles them
Papers/ ← one compiled page per source (type: source)
Books/
Videos/
Maps/ ← navigation/index pages (type: map)
_context.md ← hot cache: compact wiki state, read first each session
_ask_log.md ← append-only log of unanswered /ask queries (governor reads, never writes)
Projects/ ← active project pages (type: project)
Commands
/learn
Process new information into the wiki.
- Search the vault for existing pages on the topic.
- If a concept page exists: retrieve it, update the explanation, add new context, add any missing links.
- If no page exists: create one using
assets/concept.md, setstatus: draft. - Append a brief entry to today's journal (
Journal/Daily/YYYY-MM-DD.md) noting what was learned and linking to the updated concept page(s). Create the journal page fromassets/journal.mdif it doesn't exist yet. - Update the relevant map page in
Maps/if the concept is new to that area.
/update [page or concept]
Improve a specific page.
- Retrieve the page.
- Simplify dense sentences, fix unclear explanations, break up walls of text.
- Add or repair links to related concepts.
- Set
updated:to today's date. - Promote
statusfromdraft→matureonly when: the explanation is clear and self-contained, and the page links to at least two others.
/connect [concept A] [concept B]
Find and create links between ideas.
- Retrieve both pages.
- Identify the relationship type: is-a, uses, contrasts-with, depends-on, extends, or instance-of.
- Add a link sentence to each page's
## Relatedsection, naming the relationship explicitly. - Set
updated:on both pages.
/ask [question]
Answer a question by retrieving and grounding an answer in the vault — never from general knowledge alone, and never silently.
- Decompose the question into 1–3 search terms. A question spanning multiple concepts ("how does X relate to Y") gets one search per concept.
search_noteseach term, scoped toKnowledge/andSources/first — the vetted material.read_notethe top 3–5 matches.- Optional one-hop expansion:
list_linkson the strongest match to pull in tightly connected notes that complete the answer. - If the retrieved content answers the question, compose the answer from it alone:
- Every substantive claim carries an inline
[[link]]to its source note. - If the only relevant page is
status: draftorconfidence: low, say so — don't present it with more authority than the vault itself claims. - If sources disagree, surface the disagreement rather than smoothing it over.
- If the answer draws on two clusters that aren't linked to each other yet, note it and offer to run
/connect.
- Every substantive claim carries an inline
- If nothing vetted is found, check
Journal/Daily/as a last resort — but flag any journal-sourced content explicitly as unprocessed, not yet promoted toKnowledge/. - If still nothing relevant exists, or what's found doesn't actually answer the question:
- Say so plainly — do not reach for general knowledge to fill the gap.
- Append an entry to
Maps/_ask_log.md(create fromassets/ask-log.mdif it doesn't exist yet). This logging always happens — no confirmation needed, same as any new-draft creation. - Then ask whether the user wants a general-knowledge answer instead, clearly labeled as coming from outside the vault. Never blend the two without saying so.
- For partial answers, ground what the vault supports and log only the ungrounded portion.
/review [page or area]
Critique wiki quality without rewriting.
- Retrieve the page or list pages under the area.
- Flag: vague explanations, missing links, low-confidence claims without an open-questions section, and near-duplicate coverage with other pages.
- Do not rewrite automatically. Surface the findings and confirm with the user before making changes.
- If more than three issues are found, list them and ask which to address first.
/quiz [topic]
Generate study prompts from wiki content.
- Retrieve the concept page(s) for the topic.
- Generate 3–5 questions at progressive difficulty: recall → application → synthesis.
- Do not show answers — wait for the user to respond before discussing.
/map [area]
Update a navigation/index page for an area of the vault.
- Retrieve the map page (e.g.
Maps/AI.md). Create it fromassets/map.mdif it doesn't exist. - List all concept pages under
Knowledge/[Area]/. - Group them by sub-theme.
- Add missing pages to the map; remove dead links.
- Set
updated:to today's date.
/source [title or URL]
Log a paper, book, video, or article to the vault.
- If raw content exists in
Sources/raw/, read it first. Otherwise use what the user provides. - Create a compiled page in the appropriate
Sources/subfolder (e.g.Sources/Papers/title.md) usingassets/source.md. - Fill in author, link/DOI, and today's read date.
- Summarize the core argument in one paragraph.
- Link to any concept pages in
Knowledge/the source references — create stubs withstatus: draftfor concepts that don't exist yet. - If the source relates to an active project, add a backlink in
Projects/[project].md. - Delete or archive the raw file once the compiled page is complete.
/clean
Merge duplicates and consolidate structure.
- Search for near-duplicate concept pages (same topic, different naming).
- Propose the merge plan: which page becomes canonical, which gets absorbed.
- Wait for confirmation before changing anything.
- After confirmed: move content into the canonical page, fix or remove the absorbed page, repair backlinks throughout the vault.
/health
Audit structural integrity of the vault. Run before any major compile session.
- Broken links — find wikilinks pointing to pages that don't exist. List them with their source note.
- Orphan pages — find notes with no inbound links and no outbound links to other wiki pages.
- Stale notes — query
status: staleand notes withupdated:older than 90 days. - Missing open questions — find notes with
confidence: lowthat lack a## Open Questionssection. - Contradictions — flag pairs of pages that make conflicting claims about the same concept (e.g., opposite definitions, incompatible properties).
- Present findings as a prioritized list. Do not fix anything automatically — confirm with the user which issues to address.
- After fixes are applied, update
Maps/_context.mdto reflect current vault state.
Output discipline
- After any write operation, confirm in one line what changed: "Updated
Knowledge/AI/transformers.md— added attention-scaling section, linked topositional-encoding." - Never silently create a note. If you are about to create a new page, say so first.
- Never silently merge or delete. Always confirm destructive changes before applying them.
- Never blend a vault-grounded answer with general knowledge without saying so explicitly (see
/ask). - If MCP tools are unavailable, stop and tell the user — do not simulate vault operations in the conversation.