com um clique
sync-wikis
// Sync local customizations between scaffold and sibling wiki instances — either direction. For upstream updates from GitHub, use the upgrade skill instead.
// Sync local customizations between scaffold and sibling wiki instances — either direction. For upstream updates from GitHub, use the upgrade skill instead.
Upgrade this wiki's scaffold files (CLAUDE.md, skills) to match the latest wikibones version from GitHub.
Deep-propagate one or more ingested sources across the wiki — update concept/entity/question pages, flag contradictions, create new pages where warranted. Optional step after ingest to ensure claims ripple through the full wiki.
Ingest a source into the wiki — read it, create a source-summary page, propagate claims into concept/entity pages, update index and log.
| name | sync-wikis |
| description | Sync local customizations between scaffold and sibling wiki instances — either direction. For upstream updates from GitHub, use the upgrade skill instead. |
Two directions of sync exist in wikibones:
| Direction | Skill | When to use |
|---|---|---|
| Upstream → local | upgrade | Pull latest wikibones from GitHub into this wiki |
| Local ↔ siblings | sync-wikis (this skill) | Sync customizations between scaffold and sibling wikis — either direction |
Use this skill when you've improved the scaffold or a sibling wiki — tweaked a skill, updated shared CLAUDE.md sections, fixed AGENTS.md wording — and want those changes to propagate without touching each wiki manually. Works both ways: scaffold → siblings, and sibling → scaffold.
CLAUDE.md, AGENTS.md, raw/, wiki/, .claude/skills/)CLAUDE.md scope body text — domain-specific, always preserve.CLAUDE.md domain concept lists under Acronyms & Concepts.import-readwise) — keep them.raw/ and wiki/ content — never touch.MANIFEST.md statuses in target wikis.SCAFFOLD_DIR="$PWD"
PARENT_DIR="$(dirname "$SCAFFOLD_DIR")"
for d in "$PARENT_DIR"/*; do
[ -d "$d" ] || continue
[ "$d" = "$SCAFFOLD_DIR" ] && continue
if [ -f "$d/CLAUDE.md" ] && [ -f "$d/AGENTS.md" ] && [ -d "$d/raw" ] && [ -d "$d/wiki" ] && [ -d "$d/.claude/skills" ]; then
echo "TARGET: $d"
fi
done
Read target CLAUDE.md, AGENTS.md, and skill files before editing.
AGENTS.md structure and wording..claude/skills/ingest/SKILL.md.claude/skills/digest/SKILL.md.claude/skills/lint/SKILL.md.claude/skills/ingest-tweets/SKILL.md.claude/skills/sync-wikis/SKILL.md.claude/skills/upgrade/SKILL.mdllm-wiki.mdserve.pyrequirements-viewer.txttemplates/AGENTS.md skill catalog must reflect the skills that actually exist in that target — don't add entries for skills the target doesn't have.templates/ without checking the diff first.Ensure target CLAUDE.md has these scaffold-standard sections:
## Scope — preserve target-specific body text.## Acronyms & Concepts — shared opening text; preserve any target concept list below it.## Images — with Obsidian image-resolution block.## Manifest — section present.## Workflows — ingest paragraph ending with: **Mark the file as \ingested:` in MANIFEST.md.**`Merge in shared sections; do not replace the full file.
Each target wiki should have a root-level MANIFEST.md. If missing, create it and list existing raw/ files with blank status:
# MANIFEST
Ingest tracker for `raw/`. Statuses: *(blank)* = not yet ingested | `ingested:<slug>` | `skip` | `merge:<slug>`
| File | Status |
|------|--------|
for target in <target1> <target2>; do
echo "=== $target ==="
grep -q "^## Scope" "$target/CLAUDE.md" && echo " Scope ✓" || echo " Scope ✗"
grep -q "^## Acronyms" "$target/CLAUDE.md" && echo " Acronyms ✓" || echo " Acronyms ✗"
grep -q "^## Manifest" "$target/CLAUDE.md" && echo " Manifest ✓" || echo " Manifest ✗"
grep -q "Resolving Obsidian" "$target/CLAUDE.md" && echo " Obsidian images ✓" || echo " Obsidian images ✗"
grep -q "ingested:<slug>" "$target/CLAUDE.md" && echo " Ingest workflow ✓" || echo " Ingest workflow ✗"
[ -f "$target/MANIFEST.md" ] && echo " MANIFEST.md ✓" || echo " MANIFEST.md ✗"
done