← ClaudeAtlas

sync-all-reposlisted

Sync all GitHub-backed git repos on this machine with origin. Pulls behind repos, pushes ahead repos, reports dirty/non-main/conflict cases for Claude to resolve.
luiseiman/dotforge · ★ 7 · AI & Automation · score 73
Install: claude install-skill luiseiman/dotforge
# Sync All Repos Discover every GitHub-backed git repo on the current machine, classify each by sync state, auto-execute the obvious cases (clean repo behind/ahead/diverged from origin), and report the ambiguous cases (uncommitted changes, non-main branches, rebase conflicts) for Claude to resolve case by case. Use this when: - You sit down at the Mac or VPS and want to catch up with whatever the OTHER machine pushed to GitHub since last session - You're about to walk away and want to ensure all committed-but-not-pushed work is on GitHub - You suspect drift between machines and want a single-shot reconciliation This skill does NOT: - Coordinate Mac↔VPS directly (each machine syncs with GitHub independently) - Auto-stash, auto-commit, or auto-resolve conflicts (Claude decides per case) - Touch non-GitHub repos (gitlab, bitbucket, self-hosted git all skipped) - Run on a timer (explicit invocation only) ## Step 1: Discover repos Search roots: - `~/Documents/GitHub/` (depth ≤2) - `~/Documents/jira nbch/` (cds-dashboard, jira-nbch) - `~/Documents/crm/` - Any additional path in `$DOTFORGE_DIR/registry/projects.local.yml` not covered above For each candidate directory at depth ≤2 with a `.git/` subdirectory: ```bash REMOTE=$(git -C "$dir" config --get remote.origin.url 2>/dev/null) case "$REMOTE" in *github.com*) ;; *) continue ;; # non-GitHub: skip silently esac # Opt-out marker: project declares itself out of sync scope if [[ -f "$dir/.dotforge-sync-ignore" ]]; then