code-sync

Batch sync all git repos under ~/code — push (end-of-day) or pull (start-of-day).

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "code-sync" with this command: npx skills add niracler/skill

Code Sync

Batch sync all git repos under ~/code — push (end-of-day) or pull (start-of-day).

Prerequisites

Tool Type Required Install

git cli Yes brew install git or git-scm.com

git-workflow skill Yes Included in npx skills add niracler/skill — must be invoked via Skill tool for all commits

Do NOT proactively verify these tools on skill load. If a command fails due to a missing tool, directly guide the user through installation and configuration step by step.

Mode Selection

User says Mode

「下班同步」or "push" Push

「上班更新」or "pull" Pull

「同步代码」「code-sync」 Ask user

Workflow (shared by both modes)

  • Scan → 2. Categorize → 3. Batch action (auto, no confirmation) → 4. Handle exceptions (interactive) → 5. Summary

If all repos are up-to-date, report that and stop.

Scan

bash scripts/scan.sh # Push: local data only bash scripts/scan.sh --fetch # Pull: fetch remote first (10s timeout/repo)

Output: JSON array with fields path , name , branch , remote , remote_url , dirty_count , has_upstream , ahead , behind , and fetch_error (only on --fetch failure).

Categorize

Push mode:

Category Condition Action

up-to-date dirty_count == 0 && ahead == 0

Report

needs-push dirty_count == 0 && ahead > 0

Auto git push

dirty dirty_count > 0

Interactive

no-upstream has_upstream == false

Ask user

Pull mode:

Category Condition Action

up-to-date dirty_count == 0 && behind == 0

Report

needs-pull dirty_count == 0 && behind > 0

Auto git pull --ff-only

dirty+behind dirty_count > 0 && behind > 0

Interactive

fetch-error fetch_error == true

Report, skip

Exception Handling

Situation Steps

Dirty repo (push) git diff --stat

  • git status → describe to user → ask: commit, stash, or skip. If commit, MUST invoke git-workflow skill via Skill tool — never run git commit directly.

No upstream (push) Report → ask: set upstream and push (git push -u origin <branch> ), or skip

ff-only fails (pull) git log --oneline HEAD..@{u}

  • @{u}..HEAD → explain divergence → suggest: rebase, merge, or skip

Dirty + behind (pull) Report both issues → ask: stash and pull (stash, pull --ff-only, pop), or skip

Summary

Group repos by outcome after all operations complete:

{Push|Pull} Summary

{Pushed|Updated} (N):

  • repo-name (branch, N commits) Already up-to-date (N):
  • repo-a, repo-b, ... Resolved (N):
  • repo-c: action taken Skipped (N):
  • repo-d: reason

Common Issues

Issue Fix

scan.sh finds 0 repos Check ~/code/*/ has git repos

fetch_error

Check network, SSH keys

ff-only fails Rebase or merge manually

Push rejected Pull first, then push

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

writing-proofreading

No summary provided by upstream source.

Repository SourceNeeds Review
General

schedule-manager

No summary provided by upstream source.

Repository SourceNeeds Review
General

diary-assistant

No summary provided by upstream source.

Repository SourceNeeds Review