Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add TaylorHuston/local-life-manager --skill "git-sync"
Install specific skill from multi-skill repository
# Description
Sync all git repos - my-life top repo and spaces/ projects
# SKILL.md
name: git-sync
description: "Sync all git repos - my-life top repo and spaces/ projects"
model: claude-haiku-4-5-20251001
allowed-tools: Read, Glob, Bash
/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 |
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.