git-standards/skills/git-workflow-standards/SKILL.md
Use when managing branches, resolving merge conflicts, syncing with main, or working with worktrees
npx skillsauth add jacobpevans/claude-code-plugins git-workflow-standardsInstall 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.
All development uses dedicated worktrees. Never work directly on main. Create a worktree for the change; remove it when the work is done.
Every branch with commits MUST have an associated PR. Orphaned branches must get a PR or be deleted.
Stale worktree: A branch with no open PR, no uncommitted changes, and either a merged PR
whose headRefOid matches local HEAD, or a deleted remote ([gone]) with no commits ahead
of the default branch (git log origin/<default>..HEAD --oneline is empty). Branches with open
PRs, local-only branches without merged PRs, local commits beyond the merged PR head, and
worktrees with uncommitted changes are NEVER stale. Use git worktree remove (never --force)
— Git natively blocks removal of dirty worktrees.
git pullpr-standards)| Method | When |
| --- | --- |
| git merge origin/main | Default — preserves history, safer |
| git rebase origin/main | Only if branch has NOT been pushed yet |
Sync main workflow:
git fetch origin main && git pull origin main # in main
git merge origin/main --no-edit # in the feature worktree
NEVER assume newer is correct. Analyze both versions.
git log --oneline -10 -- <file>pre-commit run --files <file>, read resolved file| Scenario | Resolution | | --- | --- | | Additive changes | Keep both | | Same logic modified | Combine intent of both | | One is a bug fix | Always include the fix | | One is a refactor | Apply refactor, then add other change | | Truly incompatible | Prefer branch's changes, add comment |
Escalate to human review for complex business logic, fundamental contradictions, or security-sensitive code.
| Command | Purpose |
| --- | --- |
| git diff --name-only --diff-filter=U | List conflicted files |
| git log --merge -p <file> | Show commits causing conflict |
| git show :1:<file> | Common ancestor version |
| git show :2:<file> | HEAD (your branch) version |
| git show :3:<file> | Incoming (their branch) version |
| git merge --abort | Abort and return to pre-merge state |
tools
Use when installing or choosing CLI tools in a Nix flake repo, editing flake.nix or home-manager config, or when tempted to pip/pipx/uv/brew/npm install anything. Tools come from the dev shell or nix shell — never ad-hoc package managers.
testing
Use when creating or editing GitHub Actions workflows that call reusable workflows (uses: OWNER/repo/.github/workflows/...) — org owner references must be the literal current org, and shared-CI homes are under dryvist.
development
Use when adding or editing .pre-commit-config.yaml, wiring pre-commit hooks into a repo, scaffolding a new repo's lint/hook setup, or deciding where a hook or shared lint config should live. Covers the canonical nix-devenv/dryvist-.github architecture, profiles, and consumer patterns.
testing
Check PR merge readiness, sync local repo, cleanup stale worktrees; optional cross-repo sweep and stale-branch prune modes