claude-code-sync
Claude Code Sync
Updates an existing setup without blowing away user customizations. Idempotent — safe to run weekly, monthly, or on a schedule.
What sync does
- Re-fingerprint: scan the repo for stack changes since last setup. New framework? New DB? New CI/CD tool?
- Delta propagation: push plugin rule updates (
cc-always.md,cc-patterns.md) into the repo's.claude/rules/. - Section-merge CLAUDE.md: update the "Build & Test", "Tech Stack", "Key Paths" sections if stack changed; leave custom sections alone.
- Fix drift (
--fix-driftflag): find config that drifted from plugin defaults — missing hooks, missing MCP servers, outdated skill versions — and repair. - Propagate to sub-repos: for monorepos, walk workspace children and apply changes to their
.claude/dirs. - Scaffold docs/context/ (if absent): create the 22-template knowledge base that complements
.claude/. - Auto-install LSPs: detect missing LSP servers from the stack and offer install commands.
- Persist sync state: write
.claude/sync-state.jsonwith timestamp, plugin version, delta summary.
Section-merge protocol for CLAUDE.md
CLAUDE.md sections are identified by ## headings. Sync protocol:
| Section | Action |
|---|---|
## Build & Test |
Replace (regenerated from fingerprint) |
## Tech Stack |
Replace |
## Key Paths |
Replace |
## Architecture |
Preserve (user-curated) |
## Conventions |
Merge (preserve user additions, update detected items) |
## Don't Touch |
Merge (preserve user additions) |
## Knowledge Library (Obsidian) |
Replace if managed-by-plugin marker present |
| Any other section | Preserve as-is |
Managed sections carry a <!-- plugin:cc-setup managed --> marker. Unmarked sections are never touched.
Drift detection (--fix-drift)
Compares current state to plugin baseline:
| Check | Fix |
|---|---|
Missing .claude/rules/cc-always.md |
Copy from plugin |
Missing .claude/rules/cc-obsidian-intro.md |
Copy from plugin |
cc-patterns.md older than plugin's |
Offer update (user confirms) |
| Hook script path doesn't match registered hook | Reconcile or remove dead registration |
| Settings allowlist has entries for removed tools | Prune |
MCP server in .mcp.json has no backing install |
Warn |
Skills in .claude/skills/ belong to old plugin version |
Offer replacement |
Never deletes user-added config. All destructive fixes require explicit confirmation.
Sub-repo propagation
For monorepos (turbo/nx/lerna/pnpm-workspaces), sync walks workspace packages and:
- If package has its own
.claude/→ sync it (same protocol as root). - If package has no
.claude/→ create a minimal one that references the root's CLAUDE.md. - Generate per-package CLAUDE.md stubs for LOC > 10k packages.
docs/context/ scaffolding
If docs/context/ does not exist, create from 22 templates:
docs/context/README.mddocs/context/architecture/overview.mddocs/context/architecture/modules.mddocs/context/conventions/code-style.mddocs/context/conventions/git-workflow.mddocs/context/conventions/testing.mddocs/context/decisions/0001-use-claude-code.mddocs/context/runbooks/deploy.mddocs/context/runbooks/rollback.mddocs/context/glossary.md- ... (full list via
cc_kb_docs_context_templates)
Sync state file
.claude/sync-state.json:
{
"version": "1.0",
"last_synced": "2026-04-16T14:00:00Z",
"plugin_version": "8.0.0",
"stack_fingerprint": "node-ts-nextjs-postgres-prisma-jest-vercel",
"sub_repos_synced": 0,
"drift_fixed": ["added missing cc-obsidian-intro.md", "pruned 2 dead hook registrations"],
"next_check_due": "2026-05-16"
}
MCP delegation
| Need | Tool |
|---|---|
| Hook pack recommendations after stack change | cc_docs_hook_pack_recommend(signals) |
| LSP config for newly detected language | cc_kb_lsp_config(language) |
| Topology for new work patterns | cc_docs_team_topology_recommend(...) |
Anti-patterns
- Running sync without reading
.claude/sync-state.json→ can't tell what changed since last sync. --fix-driftwithout user confirmation → destroys custom config that looks like drift.- Syncing sub-repos without their owners' awareness → surprises.
- Re-running setup instead of sync → overwrites user customizations.
Reference
- drift-rubric.md — what counts as drift vs. valid customization
More from lobbi-docs/claude
vision-multimodal
Vision and multimodal capabilities for Claude including image analysis, PDF processing, and document understanding. Activate for image input, base64 encoding, multiple images, and visual analysis.
246design-system
Apply and manage the AI-powered design system with 50+ curated styles
126complex-reasoning
Multi-step reasoning patterns and frameworks for systematic problem solving. Activate for Chain-of-Thought, Tree-of-Thought, hypothesis-driven debugging, and structured analytical approaches that leverage extended thinking.
106gcp
Google Cloud Platform services including GKE, Cloud Run, Cloud Storage, BigQuery, and Pub/Sub. Activate for GCP infrastructure, Google Cloud deployment, and GCP integration.
73kanban
Kanban methodology including boards, WIP limits, flow metrics, and continuous delivery. Activate for Kanban boards, workflow visualization, and lean project management.
63debugging
Debugging techniques for Python, JavaScript, and distributed systems. Activate for troubleshooting, error analysis, log investigation, and performance debugging. Includes extended thinking integration for complex debugging scenarios.
59