| name | cursor-sync |
| description | N-repo bidirectional sync of agent assets (commands, skills, rules, agents) under BOTH .cursor/ and .claude/ across all 7 managed repositories via research hub. (Name is historical — it syncs .claude/ too.) |
| disable-model-invocation | true |
Sync agent assets under .cursor/ AND .claude/ across all managed repositories.
Naming note: this skill was originally named cursor-sync when it only handled
.cursor/. It now syncs .claude/ assets too. The name is kept for stability.
Repository Registry
Hub: research (merge canonical)
Targets (under ~/thaki/ or ~/work/thakicloud/):
ai-platform-strategy (sylvanus4/ai-strategy)
macro-factor-dashboards (sylvanus4/macro-factor-dashboards)
github-to-notion-sync (sylvanus4/github-to-notion-sync)
ai-template → origin: sylvanus4/cursor-template (renamed remote, local dir kept)
ai-model-event-stock-analytics (hyojunguy/ai-model-event-stock-analytics — different account)
realtime-translator is intentionally NOT a sync target (user directive 2026-07-05: "싱크 하지마"). Do not re-add.
Last updated: 2026-05-22.
Sync Process
Run for BOTH trees: .cursor/ and .claude/. Two-phase hub model.
Standard mode: -avuc (archive + newest-wins + checksum).
-u newest-wins: protects a receiver's genuinely newer file.
-c checksum: transfers only files whose CONTENT differs, so identical
files with differing mtime do NOT churn (avoids 600+ phantom git diffs).
- New files are added; updated files (e.g. a revised SKILL.md) DO propagate —
unlike
--ignore-existing, which skips every existing file regardless of content.
Always exclude runtime/per-repo data (see Excludes below).
Phase 1: Pull (absorb changes from all targets into hub)
EXC="--exclude=state/ --exclude=outputs/ --exclude=*.log \
--exclude=__pycache__/ --exclude=*.pyc --exclude=.DS_Store"
for t in <targets>; do
for tree in .cursor .claude; do
for sub in commands skills rules agents; do
[ -d "$t/$tree/$sub" ] && rsync -avuc $EXC "$t/$tree/$sub/" "research/$tree/$sub/"
done
done
done
Phase 2: Push (distribute merged hub to all targets)
for t in <targets>; do
for tree in .cursor .claude; do
for sub in commands skills rules agents; do
[ -d "research/$tree/$sub" ] && rsync -avuc $EXC "research/$tree/$sub/" "$t/$tree/$sub/"
done
done
done
Scope
Syncs (both .cursor/ and .claude/):
commands/
skills/
rules/
agents/ (.claude/ only in practice)
Does NOT sync:
hooks/ — coupled to per-repo settings.json wiring (absolute paths). Propagate manually.
settings.json / settings.local.json — project-specific config.
- Runtime/state data:
state/, outputs/, *.log, caches.
- Project-specific code, configs,
.env, credentials.
Rules
- Research repo acts as the canonical merge hub
-avuc: newest-wins for real conflicts, checksum to skip identical content
- Always apply the Excludes (runtime state must not cross repos)
- Confirm direction before bulk sync operations
- Verify convergence (md5 / recursive file counts) after sync
- Never sync .env, credentials, project-specific configs, or hooks wiring