| name | fleet-divergence-doctor |
| description | Diagnose git divergence across the 7 managed ~/thaki repos and emit a SAFE reconciliation plan (read-only, never force-pushes). Use when sod-ship/eod-ship reports push rejected, repos are ahead/behind/diverged, "359/359 발산", history rewrite suspected, "리포 동기화 깨졌어", fleet sync broken. Do NOT use for normal commit/push (use sod-ship) or asset propagation (use claude-sync/cursor-sync). |
fleet-divergence-doctor
Diagnose git divergence across all managed repos and print a safe reconciliation plan.
Read-only: never runs push/pull/reset/checkout that mutates state.
Usage
python3 .claude/skills/fleet-divergence-doctor/scripts/diagnose.py
python3 .claude/skills/fleet-divergence-doctor/scripts/diagnose.py --no-fetch
python3 .claude/skills/fleet-divergence-doctor/scripts/diagnose.py --json
python3 .claude/skills/fleet-divergence-doctor/scripts/diagnose.py --repos ai-platform-strategy,realtime-translator
python3 .claude/skills/fleet-divergence-doctor/scripts/diagnose.py --out /tmp/fleet-plan.md
Exit codes: 0 = all clean, 2 = actionable divergence/dirty found, 1 = error.
Managed Repos
| Local Dir | Remote | Note |
|---|
| ai-platform-strategy | sylvanus4/ai-strategy | primary |
| realtime-translator | sylvanus4/realtime-translator | |
| macro-factor-dashboards | sylvanus4/macro-factor-dashboards | |
| github-to-notion-sync | sylvanus4/github-to-notion-sync | |
| ai-template | sylvanus4/cursor-template | remote name differs |
| research | sylvanus4/research | sync hub |
| ai-model-event-stock-analytics | hyojunguy/ai-model-event-stock-analytics | different GitHub account |
Classifications
| Status | Meaning | Safe Command |
|---|
clean | no divergence, tree clean | none |
push-needed | local ahead only | git push |
ff-pull | remote ahead only, fast-forward safe | git pull --ff-only |
diverged-rebase | both ahead/behind, shared history | git pull --rebase |
history-rewrite | both large + local HEAD unreachable from remote | see below |
no-upstream | no tracking branch set | git branch --set-upstream-to=origin/<branch> |
dirty overlay | uncommitted changes present | commit or stash first |
History-Rewrite Recovery
When classified history-rewrite (e.g., 359/359 divergence from another machine):
git stash
git checkout -B <branch> origin/<branch>
git stash pop
Do NOT use git reset --hard origin/<branch> — it is blocked by guardrails.
Do NOT use git push --force — this tool never suggests it.
Cherry-pick any unique local commits you want to keep BEFORE switching.
Safety
This script only runs read commands (git fetch, git status, git rev-list, etc.).
It prints commands for YOU to review and run.
It will never auto-execute push/pull/reset/checkout/rebase.