wiki-sync
Skill1 starsChanged 22 days agoMITView on GitHub
Bring the project wiki up to date with changes in the project's code since the last sync. Personal mode updates `.wiki/` after the user's own work or a git pull. Team mode is for the wiki maintainer (usually the team leader) - it syncs `docs/wiki/` on the default branch, fixes drift, merges duplicate pages, regenerates the index and opens a `wiki: sync` PR. Use when the user says to sync, update or refresh the wiki, after a git pull or merge, or when `.sync-state` differs from HEAD.
- Commits and pushes
7 other projects use a version of this.
Adopted by
Most recently taken up by
- juanitourquiza/shipframetheir own version, first seen Oct 23, 2026
- nathanaday/almagesttheir own version, first seen Oct 8, 2026
- nathanaday/atlas-obsidiantheir own version, first seen Oct 7, 2026
- nathanaday/claude-atlastheir own version, first seen Oct 7, 2026
- Jawahars07/ballasttheir own version, first seen Sep 11, 2026
- sponge-b0b/Polaristheir own version, first seen Aug 3, 2026
Used with
Projects with it also use almagest, almagest-onboard and 10 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.
nathanadaySkillalmagest
Orient in the Almagest vault, say what waits for the user, do the work a request asks in a linked repository, and route any other request to the skill that owns it. Use for /almagest, what is going on, status, what waits for me, where do I work on X, work on X, fix this, implement, build, note this, remember to, publish my journal, what is in my journals, and any request when the right skill is not clear. Keeping part of this conversation is wiki-save; files to learn from are wiki-ingest.
Also in 3 projects that use this
nathanadaySkillalmagest-onboard
Make a new Almagest vault: ask its name, its folder, and how freely to tag, then link its first repositories. Use for set up almagest, new vault, start a vault here, onboard, make this folder a vault. Linking a repository to a vault that exists is repo-link.
Also in 3 projects that use this
justvinhhereSkillwiki-review
Use when the user runs /review, says "show pending changes", "what's uncommitted", or wants an audit of uncommitted wiki edits before they land in history. Narrates uncommitted changes, flags structural issues scoped to those changes, and commits them with a conventional subject. Fully automatic.
Also in 3 projects that use this
MicrosoftSkillwiki-query
Use when an operation issue asks you to answer a question from the LLM Wiki — `operationType: "query"` and a question in the issue body. Answer with citations to wiki pages and raw sources, and offer to file durable synthesis back into `wiki/synthesis/` so the work compounds instead of disappearing into a chat thread.
Also in 4 projects that use this
- +8 more from nathanaday
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- richard-kim-79/archora-skills★ 49same name
- juanitourquiza/shipframe★ 4same name
- sponge-b0b/Polaris★ 4same name
- Jawahars07/ballast★ 1same name
- nathanaday/almagest★ 1same name
- nathanaday/atlas-obsidian★ 1same name
- nathanaday/claude-atlas★ 1same 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 repository3 other files it gives its agents.
- wiki-initSkill
- wiki-lintSkill
- wiki-updateSkill
The file
We split this skill into the rules it gives an agent
11 rules. 0 are common, 3 are distinctive, and 8 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Read what changed in the project since the last sync (.sync-state) and update exactly the pages affected.
- Very specific: line 16
Only the wiki maintainer does this.
- Very specific: line 30
Read .wiki/SCHEMA.md, .wiki/index.md, and the last entries of .wiki/log.md (grep "^## \[" .wiki/log.md | tail -5).
- Distinctive: line 52
If the diff is large (more than about 50 files), work module by module, tell the user the scope, and prioritise central pages.
- Very specific: line 63
If the change reverses documented behaviour, keep a short > Changed YYYY-MM-DD: was X, now Y (reason from commit message) note.
- Very specific: line 65
If a page's whole subject was deleted, mark it status: stale with a note, or remove it and fix links if the user prefers.
- Very specific: line 68
Create pages for significant uncovered changes and link them.
- Distinctive: line 80
Never write to files tracked by the project in personal mode.
- Very specific: line 88
Read docs/wiki/SCHEMA.md (the rules) and docs/wiki/index.md.
- Distinctive: line 89
If git status --short shows uncommitted changes, stop and ask the user how to proceed (do not stash or discard on your own).
- Very specific: line 130
Commit on the sync branch: wiki: sync <LAST short>..<HEAD short>, with a body listing pages updated, created, merged and removed.
“Common” is measured: kept by at least 6 in 10 of the 6 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-sync
Read what changed in the project since the last sync (.sync-state) and update exactly the
pages affected.
0. Pick the mode
Find the project root (git rev-parse --show-toplevel).
docs/wiki/SCHEMA.mdexists and the user wants the team wiki synced: team mode (section T). Only the wiki maintainer does this. If the user is a member updating pages for their own branch, usewiki-updateinstead..wiki/SCHEMA.mdexists: personal mode (section P).- Both exist and it is unclear: ask which one. Neither: suggest
wiki-init.
Commands use $LAST / $HEAD as placeholders for SHAs. Substitute the values; quote
"$LAST^{commit}" in PowerShell.
P. Personal mode (.wiki/)
P1. Orient
- Read
.wiki/SCHEMA.md,.wiki/index.md, and the last entries of.wiki/log.md(grep "^## \[" .wiki/log.md | tail -5). - LAST = contents of
.wiki/.sync-state, HEAD =git rev-parse HEAD.- Equal: the wiki is current. Mention uncommitted changes if
git status --shortshows any, and stop. - LAST is
noneor unreachable (git cat-file -e "$LAST^{commit}"fails, e.g. after a rebase): no usable diff. Check each page'ssourcesagainst the current tree instead and tell the user it is a full re-check.
- Equal: the wiki is current. Mention uncommitted changes if
P2. Find what changed
a. git diff --name-status -M $LAST..$HEAD and git log --oneline $LAST..$HEAD (commit
messages explain intent).
b. Map changes to pages: a page covers a file if the path (or a parent directory) appears in
its sources. .wiki/ is git-excluded, so search it with
rg --no-ignore -l "<path>" .wiki/wiki. Build three lists:
- Affected pages: sources changed, renamed or deleted.
- Uncovered changes: significant changed files no page cites (new modules, protocols, configs). Ignore lockfiles, generated code, formatting-only diffs.
- Unaffected: leave untouched.
If the diff is large (more than about 50 files), work module by module, tell the user the scope, and prioritise central pages.
P3. Update
For each affected page: read it, the relevant diff (git diff $LAST..$HEAD -- <path>) and the
current source, then revise the page so it is true now:
- Rewrite sentences that are no longer correct; do not append "update:" tails.
- Fix
sourcesfor renamed files or symbols (pathorpath#symbol), setupdated:andstatus. - If the change reverses documented behaviour, keep a short
> **Changed YYYY-MM-DD:** was X, now Y (reason from commit message)note. - If a page's whole subject was deleted, mark it
status: stalewith a note, or remove it and fix links if the user prefers. Ask if unsure.
Create pages for significant uncovered changes and link them. Update index.md.
P4. Close out
- Append
## [YYYY-MM-DD] sync | <LAST short>..<HEAD short> (<n> files, <m> pages touched)to.wiki/log.md, plus a few lines on what changed and what was skipped. - Overwrite
.wiki/.sync-statewith HEAD (full SHA, one line), only after the pages are updated, so an interrupted run is retried rather than skipped. git -C .wiki add -A && git -C .wiki commit -m "sync: <short>..<short>".- Tell the user what changed in a few lines. Mention uncommitted project work that was not included and offer to include it.
Never write to files tracked by the project in personal mode.
T. Team mode (docs/wiki/, maintainer only)
T1. Prepare a clean base
- Read
docs/wiki/SCHEMA.md(the rules) anddocs/wiki/index.md. - If
git status --shortshows uncommitted changes, stop and ask the user how to proceed (do not stash or discard on your own). - Switch to the default branch (
git symbolic-ref --short refs/remotes/origin/HEAD, usuallymain) andgit pull --ff-only. - LAST = contents of
docs/wiki/.sync-state, HEAD =git rev-parse HEAD. If equal andnode tools/wiki/wiki.mjs checkis clean, say the wiki is current and stop. git switch -c wiki/sync-<HEAD short>.
T2. Find the work
a. Code changes: git diff --name-status -M $LAST..$HEAD -- . ":(exclude)docs/wiki" and
git log --oneline $LAST..$HEAD.
b. Pages authors already updated: git diff --name-only $LAST..$HEAD -- docs/wiki. For these,
verify against the current code and fix only what is wrong. Do not rewrite them.
c. Mechanical findings: node tools/wiki/wiki.mjs check (full mode) lists missing sources,
symbols that no longer exist, possible duplicates, orphans, broken links and frontmatter
errors.
d. Map code changes to pages through sources (rg -l "<path>" docs/wiki). As in personal
mode, build the lists of affected pages and significant uncovered changes.
T3. Update
- Affected pages that authors did not update: revise per the schema. Minimal edits, one sentence per line, never restyle untouched text (it creates conflicts for everyone).
- Significant uncovered changes: create pages at their deterministic paths (schema), after
searching for an existing page by title and
aliases. - Duplicates (from the check or noticed while reading): keep the page at the correct
deterministic path, merge the other's content into it, add the other's title to
aliases, delete the duplicate, and fix every link to it (rg -l "<old file name>" docs/wiki). - Pages whose subject was removed from the code: delete them and fix links, or mark them
status: staleif the removal may be temporary.
T4. Close out
node tools/wiki/wiki.mjs build-index.node tools/wiki/wiki.mjs checkuntil it reports 0 errors and no warnings you can fix. Report the rest.- Overwrite
docs/wiki/.sync-statewith the HEAD from T1 (full SHA, one line). - Commit on the sync branch:
wiki: sync <LAST short>..<HEAD short>, with a body listing pages updated, created, merged and removed. Ask before committing if the user is present. - Offer to push the branch and open a PR (
gh pr create --title "wiki: sync ..." --body ...). Never push the sync straight to the default branch. - Tell the user, in a few lines: what changed, which PRs' drift was fixed, what is left.
No log.md in team mode: the git history of docs/wiki/ is the log. Never put secrets in the wiki.
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.

