1. Identify current branch and remote state.
2. Run local validation (`make -C elixir all`).
3. Push branch to `origin` with upstream tracking.
4. Handle push failures (sync issues, auth problems) using `pull` skill or error surfacing.
5. Ensure a PR exists or create a new one.
6. Write/update PR body using `.github/pull_request_template.md`.
7. Validate PR body with `mix pr_body.check`.
8. Reply with the PR URL from `gh pr view`.