push-from-worktree-to-integrate-past-foreign-dirty-mainlisted
Install: claude install-skill hjr15/claude-kit
# Integrate From a Worktree, Past a Foreign-Dirty Shared main
## Overview
You're finished on your branch and want to land it, but the shared `main`
(or `master`) checkout has a **live sister session's uncommitted work** in its
working tree. The reflex — `git checkout main && git merge <branch>` in that
tree — is wrong: switching branches or merging there disturbs the sibling's
WIP, and a `git pull`/`reset` can clobber it outright.
The safe path is to integrate **without ever touching that tree**: push your
branch straight to `origin/main` (fast-forward), or merge the PR on the
remote from your worktree. The shared checkout is never entered; the sibling's
uncommitted work is never at risk.
This is the *positive integration* companion to the two "leave it alone" and
"recover it" skills:
- dont touch sibling session unpushed commit — the sibling has an unpushed
*commit*; you leave it. Here the sibling has uncommitted *WIP* and you need
to land your own work around it.
- [[multi-agent-branch-collision-recovery]] — *your* commit landed on the wrong
branch; you recover it.
## When to Use
- Your work lives on a branch (often in a `git worktree`) and is ready to land.
- The shared `main`/`master` checkout has uncommitted changes owned by a
concurrent session (`git -C <shared-tree> status --short` is non-empty and
they're not yours).
- Fast-forwarding `main` to your branch is possible (no divergent remote
commits you'd need to merge in that tree).
## Two Preconditio