wiki-update
Skill3 starsChanged 11 days agoMITView on GitHub
Sync the current project's knowledge into the Obsidian wiki. Use this skill from any project when the user says "update wiki", "sync to wiki", "save this to my wiki", "update obsidian", or wants to distill what they've been working on into their knowledge base. This is the cross-project skill that lets you push knowledge from wherever you are into the vault. Accepts inline named-vault routing like "@work update wiki" via the shared Config Resolution Protocol.
- Reads credentials
10 other projects use a version of this, 3 of them edited.
Adopted by
Most recently taken up by
- Ar9av/obsidian-wikiedited, first seen Nov 8, 2026
- boaz-hwang/boaz-wikitheir own version, first seen Oct 25, 2026
- rumi-chan/llm-wikitheir own version, first seen Oct 25, 2026
- dagarre00/claude-code-templatetheir own version, first seen Oct 15, 2026
- 0xbadal/Skillsedited, first seen Oct 13, 2026
- kfchou/wiki-skillstheir own version, first seen Jul 3, 2026
Other versions10 projects use a version of this.
Word for word · 0
None found.
Edited · 3
- Ar9av/obsidian-wiki★ 3.7k51% same
- Ivy-Chen1999/llm-wiki-kit★ 2185% same
- 0xbadal/Skills★ 181% same
Wrote their own version · 7
- kfchou/wiki-skills★ 189same name
- bozhouDev/bozhou-skills★ 78same name
- CodePhobiia/claude-roblox-game-studio★ 9same name
- crabin/llm-wiki★ 8same name
- dagarre00/claude-code-template★ 1same name
- rumi-chan/llm-wiki★ 1same name
- boaz-hwang/boaz-wiki★ 0same name
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 repository30 other files it gives its agents.
- claude-history-ingestSkill
- cross-linkerSkill
- daily-updateSkill
- graph-colorizeSkill
- hermes-history-ingestSkill
- impl-validatorSkill
- llm-wikiSkill
- memory-bridgeSkill
- skill-creatorSkill
- tag-taxonomySkill
- vault-skill-factorySkill
- wiki-agentSkill
- wiki-captureSkill
- wiki-context-packSkill
- wiki-dashboardSkill
- wiki-dedupSkill
- wiki-digestSkill
- wiki-exportSkill
- wiki-history-ingestSkill
- wiki-importSkill
- wiki-ingestSkill
- wiki-lintSkill
- wiki-querySkill
- wiki-rebuildSkill
- wiki-researchSkill
- wiki-setupSkill
- wiki-stage-commitSkill
- wiki-statusSkill
- wiki-switchSkill
- wiki-synthesizeSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
22 rules. 0 are common, 6 are distinctive, and 16 are very specific to this project.
0
Common
Most of the 9 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
16
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 18
Read $OBSIDIAN_VAULT_PATH/.manifest.json to check if this project has been synced before.
- Very specific: line 19
Read $OBSIDIAN_VAULT_PATH/index.md to know what the wiki already contains.
- Very specific: line 21
When writing internal links in Steps 4–5, apply the link format from llm-wiki/SKILL.md (Link Format section) using the OBSIDIAN_LINK_FORMAT …
- Very specific: line 37
Check .manifest.json for this project:
- Very specific: line 40
Synced before?: Look at last_commit_synced.
- Distinctive: line 47
If nothing meaningful changed since last sync, tell the user and stop.
- Very specific: line 74
Read the vault's CATEGORIES table first (AGENTS.md, or llm-wiki layout --json): pages go only in the folders it lists.
- Very specific: line 78
When the vault has a folder with the project role (projects/ by default), project knowledge goes under $VAULT/projects/<project-name>/, in …
- Very specific: line 92
When the vault has no project folder, file project knowledge in the global folders below and add project: <project-name> to each page's …
- Distinctive: line 109
Every page needs YAML frontmatter:
- Distinctive: line 154
If a page already exists in the vault, merge new information into it.
- Very specific: line 155
If you're adding to an existing page, update the updated timestamp and add the new source.
- Very specific: line 156
Check index.md to see what's already there before creating anything new.
- Distinctive: line 160
After creating/updating pages:
- Very specific: line 162
Add [[wikilinks]] from new pages to existing related pages
- Very specific: line 163
Add [[wikilinks]] from existing pages back to the new ones where relevant
- Distinctive: line 170
Add or update this project's entry:
- Distinctive: line 187
Add entries for any new pages created.
- Very specific: line 200
Write conceptually: "Synced llm-wiki — added wiki-capture and wiki-research skills, core new capabilities are autonomous web research and …
- Very specific: line 206
When it is set, read llm-wiki/references/qmd.md and follow the *Refresh* section.
- Very specific: line 210
Be aggressive about merging: If the project uses React Server Components, don't create a new page if concepts/react-server-components.md …
- Very specific: line 211
Consult the tag taxonomy: Read $VAULT/_meta/taxonomy.md if it exists, and use canonical tags.
“Common” is measured: kept by at least 6 in 10 of the 9 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 Update — Sync Any Project to Your Wiki
You are distilling knowledge from the current project into the user's Obsidian wiki. This skill works from any project directory, not just the llm-wiki repo.
Before You Start
- Resolve config — follow the Config Resolution Protocol in
llm-wiki/SKILL.md(inline@nameoverride → walk up CWD for.env→~/.llm-wiki/config→ prompt setup). This givesOBSIDIAN_VAULT_PATH,LLM_WIKI_REPO,OBSIDIAN_LINK_FORMAT(wikilinkdefault ormarkdown), and optional QMD settings such asQMD_WIKI_COLLECTION. Works from any project directory. - Read
$OBSIDIAN_VAULT_PATH/.manifest.jsonto check if this project has been synced before. - Read
$OBSIDIAN_VAULT_PATH/index.mdto know what the wiki already contains.
When writing internal links in Steps 4–5, apply the link format from llm-wiki/SKILL.md (Link Format section) using the OBSIDIAN_LINK_FORMAT value.
Step 1: Understand the Project
Figure out what this project is by scanning the current working directory:
README.md, docs/, any markdown files- Source structure (frameworks, languages, key abstractions)
package.json,pyproject.toml,go.mod,Cargo.tomlor whatever defines the project- Git log (focus on commit messages that signal decisions, not "fix typo" stuff)
- Claude memory files if they exist (
.claude/in the project)
Derive a clean project name from the directory name.
Step 2: Compute the Delta
Check .manifest.json for this project:
- First time? Full scan. Everything is new.
- Synced before? Look at
last_commit_synced. Before computing the delta, verify the stored SHA is still reachable:git merge-base --is-ancestor <last_commit_synced> HEAD- Exit 0 (ancestor): Safe. Run
git log <last_commit_synced>..HEAD --onelineto see what changed. - Exit 1 (not an ancestor — rebase or force-push occurred): The stored SHA is no longer in this branch's history. Warn the user: "Stored commit
<sha>is no longer reachable — branch may have been rebased or force-pushed. Falling back to full scan." Then treat as first-time sync: re-scan everything and updatelast_commit_syncedto the current HEAD SHA at the end of Step 6.
- Exit 0 (ancestor): Safe. Run
If nothing meaningful changed since last sync, tell the user and stop.
Step 3: Decide What to Distill
This is the core question from Karpathy's pattern: what would you want to know about this project if you came back in 3 months with zero context?
Worth distilling:
- Architecture decisions and why they were made
- Patterns discovered while building (things you'd Google again otherwise)
- What tools, services, APIs the project depends on and how they're wired together
- Key abstractions, how they connect, what the mental model is
- Trade-offs that were evaluated, what was picked and why
- Things learned while building that aren't obvious from reading the code
Not worth distilling:
- File listings, boilerplate, config that's obvious
- Individual bug fixes with no broader lesson
- Dependency versions, lock file contents
- Implementation details the code already says clearly
- Routine changes anyone could read from the diff
The heuristic: if reading the codebase answers the question, don't wiki it. If you'd have to re-derive the reasoning by reading git blame across 20 commits, wiki it.
Step 4: Distill into Wiki Pages
Read the vault's CATEGORIES table first (AGENTS.md, or llm-wiki layout --json): pages go only in the folders it lists. The folder names below are the standard vault's.
Project-specific knowledge
When the vault has a folder with the project role (projects/ by default), project knowledge goes under $VAULT/projects/<project-name>/, in subfolders named after the vault's category folders:
projects/<project-name>/
├── <project-name>.md ← project overview (named after the project, NOT _project.md)
├── concepts/ ← project-specific ideas, architectures, how-tos
└── references/ ← project-specific source summariesThe overview page (<project-name>.md) should have:
- What the project is (one paragraph)
- Key concepts and how they connect
- Links to project-specific and global wiki pages
When the vault has no project folder, file project knowledge in the global folders below and add project: <project-name> to each page's frontmatter. Don't create a projects/ folder the table doesn't list (law 3).
Global knowledge
Things that aren't project-specific go in the global categories — the folder with each role:
| What you found | Role (standard folder) |
| A general concept learned | concept (concepts/) |
| A reusable pattern or technique | procedure (concepts/ in a standard vault; skills/ in vaults that still have it) |
| A tool/service/person | entity (entities/) |
| Cross-project analysis | synthesis (synthesis/) |
A role no row claims falls to the catch-all (last) row.
Page format
Every page needs YAML frontmatter:
---
title: >-
Page Title
category: concepts
tags: [tag1, tag2]
sources: [projects/<project-name>]
summary: >-
One or two sentences (≤200 chars) describing what this page covers.
provenance:
extracted: 0.6
inferred: 0.35
ambiguous: 0.05
base_confidence: 0.59
lifecycle: draft
lifecycle_changed: TIMESTAMP_DATE
created: TIMESTAMP
updated: TIMESTAMP
---
Use folded scalar syntax (summary: >-) for title and summary to keep frontmatter parser-safe across punctuation (:, #, quotes) without escaping rules.
Keep the title and summary contents indented by two spaces under summary: >-.
# Page Title
- A fact the codebase or a doc actually states.
- A reason the design works this way. ^[inferred]
Use [[wikilinks]] to connect to other pages.Write a summary: frontmatter field on every new/updated page (1–2 sentences, ≤200 chars), using >- folded style. For project sync, a good summary answers "what does this page tell me about the project I wouldn't guess from its title?" This field powers cheap retrieval by wiki-query.
Apply provenance markers per llm-wiki (Provenance Markers section). For project sync specifically:
- Extracted — anything visible in the code, config, or a doc/commit message: file structure, dependencies, function signatures, what a file does.
- Inferred — why a decision was made, design rationale, trade-offs, "the team chose X because Y" — unless a commit message, doc, or ADR states it explicitly.
- Ambiguous — when the code and docs disagree, or when there's clearly an in-progress migration with two patterns living side by side.
Compute the rough fractions and write the provenance: block on every new/updated page.
Updating vs creating
- If a page already exists in the vault, merge new information into it. Don't create duplicates.
- If you're adding to an existing page, update the
updatedtimestamp and add the new source. - Check
index.mdto see what's already there before creating anything new.
Step 5: Cross-link
After creating/updating pages:
- Add
[[wikilinks]]from new pages to existing related pages - Add
[[wikilinks]]from existing pages back to the new ones where relevant - Link the project overview to all project-specific pages and relevant global pages
Step 6: Update Tracking
Update .manifest.json
Add or update this project's entry:
{
"projects": {
"<project-name>": {
"source_cwd": "/absolute/path/to/project",
"last_synced": "TIMESTAMP",
"last_commit_synced": "abc123f",
"pages_in_vault": ["projects/<project-name>/<project-name>.md", "..."]
}
}
}Update index.md
Add entries for any new pages created.
Update log.md
Append:
- [TIMESTAMP] WIKI_UPDATE project=<project-name> pages_updated=X pages_created=Y source_cwd=/path/to/projectUpdate hot.md
Read $OBSIDIAN_VAULT_PATH/hot.md (create from the template in wiki-ingest if missing). Rewrite Recent Activity with what was just synced — last 3 operations max. Update Active Threads if this project is an ongoing focus. Update Key Takeaways with the most important architectural insight or decision surfaced during this sync. Update updated timestamp.
Write conceptually: "Synced llm-wiki — added wiki-capture and wiki-research skills, core new capabilities are autonomous web research and conversation capture."
Step 7: Refresh QMD Wiki Index (optional)
GUARD: If $QMD_WIKI_COLLECTION is unset — the default — skip this step. The vault is the source of truth; QMD is only an index over it.
When it is set, read llm-wiki/references/qmd.md and follow the Refresh section. Run it only for pages this update actually wrote — a source skipped on an unchanged manifest hash has nothing to re-index.
Tips
- Be aggressive about merging. If the project uses React Server Components, don't create a new page if
concepts/react-server-components.mdalready exists. Update the existing one and add this project as a source. - Consult the tag taxonomy. Read
$VAULT/_meta/taxonomy.mdif it exists, and use canonical tags. - Don't copy code. Distill the knowledge, not the implementation. "This project uses a debounced search pattern with 300ms delay" is useful. Pasting the actual debounce function is not.
- Project overview is the anchor. The
<project-name>.mdfile is what you'd read to get oriented. Make it good.
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.

