pulllisted
Install: claude install-skill AnotherSava/claude-code-common
# Pull remote changes
Sync this branch with its upstream and settle whatever the sync turns up. A dirty tree is the normal case here, not an error — these repos are worked from two machines and often by several concurrent sessions — so the job is to move aside as little as possible, fast-forward, and put it back.
Read `~/.claude/skills/shared/bash-rules.md` for bash command constraints.
The reference for every branch below is `~/.claude/learnings/git-stash-pull-safety.md`: it carries the recipes, the verification baselines, and the failure modes that produce no conflict at all. This file is the decision procedure, that one is the depth. Follow its section when a step names it rather than re-deriving a recipe it already holds.
## Context
- Fetch: !`git fetch -q 2>&1 || echo FETCH-FAILED`
- Upstream: !`git rev-parse --abbrev-ref @{upstream} 2>/dev/null || echo NO-UPSTREAM`
- Working tree status: !`git status --short`
- Local changes vs HEAD: !`git diff --name-only HEAD`
## Process
1. **Measure the divergence, then settle the preconditions before touching anything.** Three inputs cannot come from the Context section above, for two separate reasons, and both are recorded in `~/.claude/learnings/skill-context-evaluator.md`. A `!` line whose command carries a revision range against `@{upstream}` is handed back to be run rather than preprocessed, while the same ref as a bare argument preprocesses fine. Worse, `!` lines are not evaluated in the order they are written, so any of