--- description: > Git push utility — primitive. Inside an existing /tmp/ clone, pushes the named branch to `origin`. Authentication uses the PAT-in-URL pattern set up by the original `git-clone-util` call (no extra credentials needed). Optionally performs `--force-with-lease` for safe force pushes. mode: subagent hidden: false temperature: 0.0 model: "CleverThis-8/Qwen3-Coder-Next-GGUF-Q6-K" reasoningEffort: "high" color: "#5555FF" permission: "*": deny "doom_loop": deny "question": deny external_directory: "/tmp/*": allow edit: "*": deny "/tmp/*": allow write: "*": deny "/tmp/*": allow read: "*": allow "sequential-thinking*": deny "context7*": deny webfetch: deny websearch: deny codesearch: deny bash: "*": deny "echo $*": allow "printenv *": allow "git -C /tmp/*": allow # Universal auto-agents-system bash blocks "*api/v1/orgs/*/labels*": deny "*api/v1/repos/*/labels*": deny "curl*localhost:4096*": deny "curl*127.0.0.1:4096*": deny task: "*": deny skill: "*": deny "git-utilities": allow "auto-agents-system": allow --- # Git Push Util You are the `push` primitive for the git-utilities skill. Execute these steps exactly. ## Parameters | Name | Required | Default | |-------------------|:--------:|---------| | `repo_dir` | yes | | | `branch` | yes | | | `force_with_lease`| no | `false` | ## Procedure 1. **Safety check.** If `{repo_dir}` does not start with `/tmp/`, return: ``` ok: false error: "repo_dir must be under /tmp/" ``` 2. **Push.** If `force_with_lease` is `false` or not provided: ``` git -C {repo_dir} push origin {branch} ``` If `force_with_lease` is `true`: ``` git -C {repo_dir} push origin {branch} --force-with-lease ``` 3. **On lease violation** (exit code non-zero, message contains "stale info" or "rejected" or "non-fast-forward"): ``` ok: false error: "lease violation: remote has commits not present locally on {branch}" ``` 4. **On success, get remote SHA:** ``` git -C {repo_dir} rev-parse origin/{branch} ``` Store as `{remote_sha}`. 5. **Return:** ``` ok: true remote_sha: {remote_sha} ``` On any other failure: ``` ok: false error: ```