Playbook: Sync claude-global-skills to project repos

When to use

  • A new project repo needs the portable global Claude Code skills (/sr, /commit, /create-pr, …) in its own .claude/commands/.
  • A global skill was edited in radieu/claude-global-skills and the change must be propagated to every project that carries a copy.
  • /sr, /commit, or /create-pr are missing in a project session — see also the manual fallback in fix-claude-commands-missing.md.

Root cause / model

Claude Code loads slash-command skills from two places: the global ~/.claude/commands/ and the project-local .claude/commands/. When a project has its own .claude/commands/, that directory shadows the global one — the global skills are no longer reliably loaded. The fix is to keep a copy of the portable skills inside each project’s .claude/commands/.

Source of truth: the private repo radieu/claude-global-skills, cloned on each machine to ~/.claude/commands/. Only project-agnostic skills belong there. p24-infra-only skills (e.g. provision-vps, auto-issue-pipeline) must NOT be added to the global source — see the Portable column in ../project-skills/README.md.

Tooling

scripts/sync-global-skills.sh copies every *.md from the global skills source into a target repo’s .claude/commands/. It is copy-only: it overwrites same-named skills but never deletes target-only files, so each project keeps its own project-specific skills.

# Sync the current repo from the machine's global skills (~/.claude/commands):
scripts/sync-global-skills.sh
 
# Preview only — write nothing:
scripts/sync-global-skills.sh --dry-run
 
# Sync a different checkout, explicit source + target:
scripts/sync-global-skills.sh \
  --source ~/.claude/commands \
  --target /path/to/other-repo/.claude/commands

On a Windows dev box, run it from Git Bash with drive paths in /c/... form:

scripts/sync-global-skills.sh --target /c/code_2026/Art-Agency/.claude/commands --dry-run

Full workflow — updating a skill everywhere

  1. Edit the skill in radieu/claude-global-skills → PR → merge.
  2. git pull in ~/.claude/commands/ (the local clone of that repo).
  3. For each project, run scripts/sync-global-skills.sh --target <repo>/.claude/commands (dry-run first), then commit the changed .claude/commands/ files in that repo.

Per-repo status (as of 2026-06-30)

RepoSynced
p24-infra✅ skills present natively (this repo)
et-operational-platform
whatsup-android-chat-puller
Art-Agency❌ TODO — run the sync in an Art-Agency session
brandpilot❌ TODO — run the sync in a brandpilot session
radekkonarski-personal-brand❌ TODO — run the sync in that repo’s session

The TODO repos are separate repositories; the sync must be run and committed from a session in that repo (this p24-infra repo cannot push to them). p24-infra owns the tooling + this playbook; each project owns its committed copy.

Verify

After a sync, reload the Claude Code window in the target repo and type /ssr should appear in autocomplete. If commands appear but fail on execution, check settings.json auto-approvals (see fix-claude-settings-missing.md).