| name | pull |
| description | Sync the current lane branch with origin/main without losing local work. |
Pull
Use this when a coder needs a current branch before editing, when a push
is rejected because the branch is stale, or when retry feedback asks for a fresh
base.
Rules
- Work only in the current lane worktree and branch.
- Do not rebase unless the workflow input explicitly asks for it.
- Preserve operator and user changes.
- Never request interactive escalation. If auth, permissions, or conflicts block
progress, stop and return a structured
blocked actor output.
Steps
- Inspect
git status --short --branch.
- If the worktree has unrelated dirty changes, preserve them and report them in
artifacts.dirty_files.
- Ensure
origin exists and run git fetch origin.
- If the branch already tracks a remote branch, pull it with
git pull --ff-only.
- Merge
origin/main with git -c merge.conflictstyle=zdiff3 merge origin/main.
- Resolve conflicts only when the correct result is clear from local context.
- Run
git diff --check after conflict resolution.
- Return the updated branch name, conflict notes, and any blockers.
Blocked Output Shape
{
"status": "blocked",
"summary": "branch sync is blocked",
"blockers": [
{
"kind": "merge_conflict",
"command": "git merge origin/main",
"message": "Conflict requires operator intent."
}
],
"artifacts": {
"dirty_files": [],
"conflicted_files": []
}
}