git-sync
/git-sync
Synchronize all git repositories: the top-level my-life repo and the spaces/ projects.
Usage
/git-sync # Check status of all repos and branches
/git-sync --pull # Pull updates for all branches
/git-sync --push # Push local commits for all branches
/git-sync --clone # Clone missing repos
Implementation
This skill uses a Python script for reliable validation:
python .claude/skills/git-sync/scripts/sync.py --check # Status report
python .claude/skills/git-sync/scripts/sync.py --pull # Pull behind branches
python .claude/skills/git-sync/scripts/sync.py --push # Push ahead branches
python .claude/skills/git-sync/scripts/sync.py --clone # Clone missing repos
python .claude/skills/git-sync/scripts/sync.py --json # JSON output
python .claude/skills/git-sync/scripts/sync.py --suggest-additions # YAML for untracked repos
Run the script from the my-life repo root directory.
What It Validates
Top-Level Repo (my-life)
- Branch status (ahead/behind/dirty/diverged)
- Uncommitted changes
- Sync status with remote
Index → Filesystem
- Each project with
code:path exists in spaces/ - Git remote matches
remote:in index - Branch status (ahead/behind/dirty/diverged)
Filesystem → Index
- Finds repos in spaces/ not listed in CLAUDE.md
- Suggests YAML to add them with
--suggest-additions
Report Format
============================================================
GIT SYNC REPORT
============================================================
## Top-Level Repo (my-life)
my-life (1 branch)
✓ main - Up to date
## Issues
missing-repo
Status: missing
Directory does not exist
Remote: https://github.com/user/repo.git
## Repositories
coordinatr (2 branches)
✓ main - Up to date
↑ feature/001 - 3 commits to push
yourbench (1 branch)
! main - 2 uncommitted files
## Not in Index
? django-tutorial
Path: spaces/django-tutorial
Remote: https://github.com/user/django-tutorial.git
------------------------------------------------------------
SUMMARY
------------------------------------------------------------
Top-level repo: 1 (main: up to date)
Indexed repos: 15 (14 ok, 1 missing)
Remote-only: 6
Not in index: 2
Branches ahead: 1
Branches behind: 0
Branches dirty: 1
Branches diverged:0
Local-only: 0
Status Symbols
| Symbol | Meaning |
|---|---|
| ✓ | Up to date |
| ↓ | Behind remote (can pull) |
| ↑ | Ahead of remote (can push) |
| ↕ | Diverged (manual merge needed) |
| + | Local only (no remote tracking) |
| ? | Not in index |
| ! | Dirty (uncommitted changes) |
| ✗ | Error (check manually) |
Safety
- Never force push - if diverged, report and let user handle
- Never auto-commit - dirty repos are reported, not modified
- Fetch before status - ensure latest remote info
- Fast-forward only - pulls fail safely if not fast-forward
- Skip dirty branches - don't pull if uncommitted changes
Adding Repos to Index
Use --suggest-additions to get YAML:
python .claude/skills/git-sync/scripts/sync.py --suggest-additions
Output:
# Add to CLAUDE.md Projects Index:
- name: django-tutorial
code: spaces/django-tutorial/
remote: https://github.com/user/django-tutorial.git
branch: main
status: active # or: on-hold, archived, experiment
Error Handling
| Error | Resolution |
|---|---|
| Clone fails | Check network, SSH keys, permissions |
| Remote mismatch | Update CLAUDE.md or fix remote |
| Diverged branches | Manual merge/rebase required |
| Missing remote | Repo may be local-only, skip sync |
More from taylorhuston/local-life-manager
daily-review
Complete daily journal review. Use at end of day or next morning to fill in journal sections, review highlights, and plan tomorrow. Triggers on "daily review", "end of day", "journal review", "what did I do today".
48weekly-review
Weekly review and planning session. Use at end of week or weekend to review progress, plan next week, and set priorities. Triggers on "weekly review", "plan my week", "what did I do this week", "Sunday planning".
25daily-journal
Daily journal management for the my-vault Obsidian vault. Use for morning routines, daily reviews, quick journal updates, checking yesterday's entry, or setting today's highlight. Triggers on "good morning", "daily review", "journal", "what did I do", "highlight".
23life-planning
Cross-repo life and project planning. Use when user wants to plan their week, prioritize projects, review progress across all areas, or make decisions about what to focus on. Triggers on "plan my week", "what should I work on", "prioritize", "weekly review", "life planning".
23flashcards
Generate spaced repetition flashcards from notes or topics. Use when user wants to create flashcards, make review cards, prepare for spaced repetition, or convert notes to quiz format. Triggers on "flashcards", "make cards", "spaced repetition", "review cards".
21video-summarize
Summarize a single YouTube video and create a note. Use when user shares a video URL or asks to summarize a specific video. Triggers on "summarize this video", "video summary", YouTube URLs.
17