src/claude/skills/sync/SKILL.md
Merge a target branch into the current branch and push to origin. The ONLY framework skill that pushes to a remote. Requires explicit confirmation. Never rebases. Default-actor skill (agents and captain both use it; captain for captain-* branches, agents for their worktree branches).
npx skillsauth add the-agency-ai/the-agency syncInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The framework's single authorized push path. Merges a target branch (default origin/master) into the current branch and pushes to origin. Every other push attempt is blocked by hookify (raw git push refused at the hook layer).
Name pattern: noun-verb (sync is both noun and verb by context). No actor qualifier because sync is default-actor — anyone on a non-master branch uses it.
Pushing is a privileged action. Without a single authorized path:
sync enforces: (a) not master, (b) clean tree, (c) single-worktree checkout, (d) confirmation before each destructive step, (e) merge not rebase. The underlying agency/tools/git-push tool adds its own layer of safety (blocks main/master, blocks bare --force).
Before proceeding, Read the files listed in required_reading: frontmatter.
/sync # merge origin/master into current branch, push
/sync origin/main # explicit target
/sync other-branch # merge from a non-default target
./agency/tools/git-captain fetch
git log --oneline origin/<current-branch>..HEAD # if tracking exists
git log --oneline <target>..HEAD # if no tracking
Captain shows commit list; principal verifies scope.
Prompt:
Merge
<target>into<branch>and push toorigin/<branch>?
Do not push without explicit confirmation.
git merge <target>
If conflicts: show conflict files, ask principal to resolve or abort. No auto-resolution.
./agency/tools/git-push <branch>
Never raw git push — blocked by hookify. git-push tool validates target (refuses main/master), checks force-with-lease semantics, and is the only authorized push path in the framework.
Sync complete:
Branch: <branch>
Pushed: N commits to origin/<branch>
Base: <target>
REFERENCE-GIT-MERGE-NOT-REBASE.md).--force-with-lease and only via git-push tool./captain-release (captain) or /pr-submit (agent)./pr-prep. Run QG BEFORE /sync if this push is PR-bound.Pushing is destructive and requires principal confirmation. This skill is intended to be invoked explicitly (principal/captain types /sync) rather than auto-invoked by the model. The skill's own Step 1–2 interactive confirmation is the operative gate; the paths: [] frontmatter keeps the skill out of file-path autocomplete but does not on its own block auto-invocation. If you need a hard per-skill auto-invocation block for a specific future case, disable-model-invocation: true is available per-skill (see REFERENCE-SKILL-CONVENTIONS.md §1).
active (v2, refactored in-place from legacy sync 2026-04-19; name unchanged).
/captain-release — captain's one-flow release (includes sync internally)/pr-submit — agent signals captain; no direct push/pr-captain-land — captain's lifecycle for agent-owned branches/captain-sync-all — captain's master-sync (never pushes; different scope)/worktree-sync — worktree sync (never pushes; local master merge only)agency/tools/git-push — underlying authorized push toolagency/hookify/hookify.block-raw-git-push.md — blocks raw git pushagency/REFERENCE-GIT-MERGE-NOT-REBASE.md — merge disciplineOFFENDERS WILL BE FED TO THE — CUTE — ATTACK KITTENS!
business
Sync worktree with master — merge, copy settings, run sandbox-sync, report changes
tools
List all git worktrees with status info (branch, clean/dirty, deps)
tools
Remove a git worktree and optionally delete its branch
development
Create a new git worktree with dedicated branch and bootstrapped dev environment