Syncs the sb-knowledge-base Obsidian vault to the knowledge-garden Quartz site. Use after reorganizing content in Obsidian or when the vault has been updated and the Quartz site needs to match.
This skill synchronizes content from sb-knowledge-base (Obsidian vault) to knowledge-garden (Quartz static site). The vault is the source of truth—all content reorganization should happen in Obsidian first, then sync to Quartz.
IMPORTANT: Only files with publish: true in their frontmatter are synced. Files without this field or with publish: false are excluded from the knowledge garden.
Note: The knowledge-garden target structure may need updates to match the new vault organization. Coordinate with the KG repository maintainers before running sync operations.
tools/types/sb-knowledge-base (source):
sb-knowledge-base/
├── docs/ ← Working documents by group
│ ├── aifs/
│ ├── dao-primitives/
│ ├── rpp/
│ └── ...
├── data/ ← Structured records by type
│ ├── concepts/ ← Lexicon entries
│ ├── links/ ← External resources
│ ├── resources/
│ │ ├── patterns/
│ │ ├── practices/
│ │ ├── primitives/
│ │ ├── protocols/
│ │ └── playbooks/
│ ├── stories/
│ │ ├── articles/
│ │ └── studies/
│ ├── questions/
│ ├── people/
│ ├── groups/
│ ├── projects/
│ ├── places/
│ └── gatherings/
└── tools/
└── types/ ← FileClass definitions
knowledge-garden (target):
knowledge-garden/
├── content/
│ ├── docs/ ← Sync from docs/
│ ├── data/ ← Sync from data/
│ │ ├── concepts/
│ │ ├── links/
│ │ ├── resources/
│ │ ├── stories/
│ │ └── ...
│ └── types/ ← Sync from tools/types
├── quartz/
└── quartz.config.ts
Find where both repos are cloned on your machine. Common locations:
# Find sb-knowledge-base
find ~ -type d -name "sb-knowledge-base" 2>/dev/null | head -5
# Find knowledge-garden
find ~ -type d -name "knowledge-garden" 2>/dev/null | head -5
Set variables for your paths:
KB_REPO="/path/to/sb-knowledge-base"
KG_REPO="/path/to/knowledge-garden"
Both repos should have no uncommitted changes before syncing:
cd "$KB_REPO" && git status
cd "$KG_REPO" && git status
Sync all content directories:
# Sync docs (working documents)
rm -rf "$KG_REPO/content/docs"/*
cp -r "$KB_REPO/docs"/* "$KG_REPO/content/docs"/
# Sync data (structured records)
rm -rf "$KG_REPO/content/data"/*
cp -r "$KB_REPO/data"/* "$KG_REPO/content/data"/
# Sync types (from tools/types only)
rm -rf "$KG_REPO/content/types"/*
cp -r "$KB_REPO/tools/types"/* "$KG_REPO/content/types"/
# Compare file counts for each content area
echo "=== Docs ==="
echo "Source:" && find "$KB_REPO/docs" -name "*.md" | wc -l
echo "Target:" && find "$KG_REPO/content/docs" -name "*.md" | wc -l
echo "=== Data ==="
echo "Source:" && find "$KB_REPO/data" -name "*.md" | wc -l
echo "Target:" && find "$KG_REPO/content/data" -name "*.md" | wc -l
echo "=== Types ==="
echo "Source:" && find "$KB_REPO/tools/types" -name "*.md" | wc -l
echo "Target:" && find "$KG_REPO/content/types" -name "*.md" | wc -l
cd "$KG_REPO"
npx quartz build
For teammates who have both repos in the same parent directory:
# From parent directory containing both repos
# Sync all content
rm -rf knowledge-garden/content/docs/* && cp -r sb-knowledge-base/docs/* knowledge-garden/content/docs/ && \
rm -rf knowledge-garden/content/data/* && cp -r sb-knowledge-base/data/* knowledge-garden/content/data/ && \
rm -rf knowledge-garden/content/types/* && cp -r sb-knowledge-base/tools/types/* knowledge-garden/content/types/
Or use the provided script:
# From sb-knowledge-base root
./tools/workflows/syncing-content/sync-to-garden.sh
npx quartz build succeedsThe Quartz type definitions may not match the new content structure. Check content/types/ and quartz/types/typeRegistry.ts.
Ensure you used cp -r (recursive) and included the trailing /* to copy contents, not the folder itself.
Content should be reorganized IN Obsidian first (which auto-updates links), then synced. If you moved files outside Obsidian, links won't be updated.
npx skills add superbenefit/syncing-knowledge-garden下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer