Agent skill

Worktree Sync Upstream

by mrchantey in mrchantey/beet

Sync a detached-HEAD worktree with its upstream branch in the main repo in both directions, rebasing only owned commits and fast-forwarding upstream, with recovery steps for tangled history.

Apache-2.0Auto-check passedDevelopment

Install Worktree Sync Upstream

skills CLI
$ npx skills add mrchantey/beet --skill worktree-sync-upstream -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mrchantey/beet worktree-sync-upstream --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mrchantey/beet.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/worktree-sync-upstream .claude/skills/worktree-sync-upstream && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
worktree-sync-upstream
GitHub stars
135
Token cost
~699 tokens
SKILL.md length
376 words
Files
1
Skills in repo
11
Repo updated
First seen
Licence
Apache-2.0

At a glance

Sync a detached-HEAD worktree with its upstream branch in the main repo in both directions, rebasing only owned commits and fast-forwarding upstream, with recovery steps for tangled history.

  • Works in 5 steps: Make sure the local upstream branch is… → Confirm the main repo working tree is… → Pull: replay only your commits onto the… → …
  • Tasks that involve Git worktrees
  • SKILL.md covers How these worktrees work, The duplication pitfall, Clean sync and If history is already tangled, plus 1 more section
  • Calls git and just

What it does

Worktree Sync Upstream is an agent skill from mrchantey/beet. Sync a detached-HEAD worktree with its upstream branch in the main repo in both directions, rebasing only owned commits and fast-forwarding upstream, with recovery steps for tangled history. Use from inside a worktree.

Its SKILL.md is about 700 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Git worktrees. It works with Git. The repository describes itself as: A malleable engine built on interoperable standards. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Git worktrees

Example prompts

  • “/worktree-sync-upstream”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Make sure the local upstream branch is current with its origin.
  2. Confirm the main repo working tree is clean (the fast-forward in step 4 touches it).
  3. Pull: replay only your commits onto the latest upstream, staying detached
  4. Push: fast-forward the upstream branch to this worktree's HEAD
  5. Confirm sync: git rev-list --left-right --count HEAD... reports 0 0.

What it can do on your machine

Read from SKILL.md and the folder at commit 38648b8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • just

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Worktree Sync Upstream loads about 699 tokens when it runs. Until then it costs about 60 tokens; SKILL.md has 376 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~60
When it runs · the whole SKILL.md, loaded when a task matches
~699

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mrchantey/beet at commit 38648b8, republished under its Apache-2.0 licence (© mrchantey). 376 words, ~699 tokens.

Download SKILL.mdSave it as .claude/skills/worktree-sync-upstream/SKILL.md (or your agent's skills folder).
name
worktree-sync-upstream
description
Sync a detached-HEAD worktree with its upstream branch in the main repo in both directions, rebasing only owned commits and fast-forwarding upstream, with recovery steps for tangled history. Use from inside a worktree.

Worktree Sync Upstream

Sync this worktree with its upstream branch in the main repo at ~/me/beet, in both directions. Do not delete this worktree and do not create a branch for it.

How these worktrees work

This is a Zed-style worktree: a separate cloned directory in detached HEAD (no branch), so parallel agents can each own a directory without competing for branch names. Keep it detached.

Think of the worktree as <upstream-branch> + your own commits on top. The upstream branch (eg beet_stack) is checked out in the main repo. It does not matter how long-lived the worktree is, as long as it stays a clean linear extension of upstream.

The duplication pitfall

Rebasing or replaying commits you do not own mints new hashes for identical changes. Git then sees two lineages with the same content, so every later sync conflicts or stacks up duplicate commits (same message, different hash). The rule that avoids this: only ever rebase YOUR commits, and only ever fast-forward the upstream branch. Never git merge the full divergent history in either direction.

Clean sync

Run from this worktree. Substitute the upstream branch name for <up>.

  1. Make sure the local upstream branch is current with its origin.
  2. Confirm the main repo working tree is clean (the fast-forward in step 4 touches it).
  3. Pull: replay only your commits onto the latest upstream, staying detached:
    sh
    git rebase <up>
    This brings in all upstream work and lands your commits on top. Resolve any conflicts carefully.
  4. Push: fast-forward the upstream branch to this worktree's HEAD:
    sh
    git -C ~/me/beet merge --ff-only $(git rev-parse HEAD)
  5. Confirm sync: git rev-list --left-right --count HEAD...<up> reports 0 0.

Never push to origin unless asked.

Show full SKILL.md (104 more words)Show less

If history is already tangled

Symptom: many commits in <up>..HEAD share messages with upstream commits (duplicates from a past rebase). Recover by replaying only the genuinely unique commits:

  1. Back up first: git tag backup/<name> HEAD.
  2. Inspect git log --oneline <up>..HEAD and find the last duplicate commit (everything below your real work).
  3. Replay only your work onto upstream: git rebase --onto <up> <last-duplicate-commit>.
  4. Verify no content changed: git diff HEAD backup/<name> is empty.
  5. Then fast-forward upstream as in step 4 above.

Testing

If asked to test, run a sweep and fix any issues:

sh
just test-core | tail

Leave the test fixes unstaged for review.

© mrchantey, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/worktree-sync-upstream of mrchantey/beet.

Open the folder on GitHubat commit 38648b8

Compare with similar skills

Worktree Sync Upstream next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Worktree Sync Upstream compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Worktree Sync Upstream this skillmrchantey/beet135—~699Automated safety check: PassApache-2.0
Finishing a Development Branchobra/superpowers296k5 repos~1.9kAutomated safety check: PassMIT
Finishing A Development Branchfarm-fe/farm5.6k34 repos~1.8kAutomated safety check: PassMIT
Git Worktree Cleanuplobehub/lobehub83k—~2.8kAutomated safety check: PassCustom licence
Pre-Release PR Triagejamiepine/voicebox57k—~3.1kAutomated safety check: PassMIT
Ccmanager Configkbwo/ccmanager1.3k—~1.5kAutomated safety check: PassMIT

Similar skills

  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    296k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • A skill your agent uses when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for…

    5.6k GitHub starsUsed in 34 repos~1.8k tokens
    DevelopmentAuto-check passed
  • Git Worktree Cleanup

    lobehub/lobehub

    Audits stale Git worktrees and branches with a bundled script, classifies each one, and deletes only after you approve the exact candidates.

    83k GitHub stars~2.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Pre-Release PR Triage

    jamiepine/voicebox

    Sorts a backlog of open pull requests into must-merge, candidate, superseded and deferred, writes a triage doc and works the merge loop before a release.

    57k GitHub stars~3.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Ccmanager Config

    kbwo/ccmanager

    Set up, review, or repair a CCManager config — .ccmanager.json at a git repository root, or the global ~/.config/ccmanager/config.json.

    1.3k GitHub stars~1.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Builds a Cap feature in an isolated Git worktree with disposable dev resources, verification, a recorded demo and a neutral pull request, started with /building.

    23k GitHub stars~2.5k tokensUpdated today
    DevelopmentAuto-check: warnings

More from mrchantey/beet

All 11 skills in this repo
  • Downstream Create

    mrchantey/beet

    Scaffold a new beet downstream repo (beet<name, a sibling of this checkout depending on the beet facade by path) from the template, register it with downstream-sync and run the first sync.

    135 GitHub stars~709 tokensUpdated yesterday
    Auto-check passed
  • Test Examples

    mrchantey/beet

    Run the workspace example smoke set to catch regressions unit tests miss, covering every feature gate combination with self-terminating examples and curl-probed servers.

    135 GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • Test The Works

    mrchantey/beet

    Maximal project health pass. An agent skill from mrchantey/beet.

    135 GitHub stars~1k tokensUpdated yesterday
    Auto-check passed
  • Docs Rust Sweep

    mrchantey/beet

    Comprehensive public-api quality pass over the core crates, reducing pub visibility and documenting every public item to a deny(missingdocs) standard.

    135 GitHub stars~590 tokensUpdated yesterday
    Auto-check passed
  • Docs Site

    mrchantey/beet

    Write and edit the public website docs in site/routes/docs (beet.org/docs).

    135 GitHub stars~672 tokensUpdated yesterday
    Auto-check passed
  • Infra Deploy

    mrchantey/beet

    The release process for the beet website. An agent skill from mrchantey/beet.

    135 GitHub stars~16k tokensUpdated yesterday
    Auto-check: warnings

Works with

Categories

Questions about Worktree Sync Upstream

What does Worktree Sync Upstream do?

Sync a detached-HEAD worktree with its upstream branch in the main repo in both directions, rebasing only owned commits and fast-forwarding upstream, with recovery steps for tangled history. Worktree Sync Upstream is an agent skill from mrchantey/beet. Sync a detached-HEAD worktree with its upstream branch in the main repo in both directions, rebasing only owned commits and fast-forwarding upstream, with recovery steps for tangled history.

When should I use Worktree Sync Upstream?

Worktree Sync Upstream fits situations like: tasks that involve Git worktrees.

How do I install Worktree Sync Upstream in Claude Code?

Run `npx skills add mrchantey/beet --skill worktree-sync-upstream -a claude-code`. Or copy the skill folder (.agents/skills/worktree-sync-upstream in mrchantey/beet) into .claude/skills/worktree-sync-upstream in your project. Claude Code loads it when a task matches its description.

How do I install Worktree Sync Upstream in Codex?

Run `npx skills add mrchantey/beet --skill worktree-sync-upstream -a codex`. Or copy the skill folder (.agents/skills/worktree-sync-upstream in mrchantey/beet) into .agents/skills/worktree-sync-upstream in your project. Codex loads it when a task matches its description.

Can I use Worktree Sync Upstream in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mrchantey/beet --skill worktree-sync-upstream -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/worktree-sync-upstream, .gemini/skills/worktree-sync-upstream, .github/skills/worktree-sync-upstream and .opencode/skills/worktree-sync-upstream in your project.

What does Worktree Sync Upstream need to run?

Going by SKILL.md and its folder, Worktree Sync Upstream needs the command-line tools its instructions call (git and just).

Does Worktree Sync Upstream access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Worktree Sync Upstream safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Worktree Sync Upstream use?

Worktree Sync Upstream is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Worktree Sync Upstream use?

About 699 tokens (SKILL.md is roughly 2.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Worktree Sync Upstream?

Skills that share tags, products or a category with Worktree Sync Upstream: Finishing a Development Branch (obra/superpowers, 296k stars), Finishing A Development Branch (farm-fe/farm, 5.6k stars), Git Worktree Cleanup (lobehub/lobehub, 83k stars) and Pre-Release PR Triage (jamiepine/voicebox, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Worktree Sync Upstream?

mrchantey (a GitHub user) maintains it in mrchantey/beet, which has 135 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 7, 2026.

Source: mrchantey/beet on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.