Gp
Skill yokeloop/yoke/skills/gp
Claude Code plugin and marketplace of skills & commands for the full dev loop: /task → /plan → /do → /review → /gca → /gp → /pr. Plus /prd, /issues, /explore, /grill, /bootstrap, /handoff and more.
npx -y skills add yokeloop/yoke --skill gpAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Git push with checks and report. Used when the user writes "push", "gp", "git push".
SKILL.md
2.4 KB, as published. Nobody here has run it
Git push with checks and report
Push orchestrator: collect state, push, report. Runs autonomously — no confirmation prompts.
Input
$ARGUMENTS — optional flags (--force-with-lease).
Step 1 — Pre-check
One call:
bash ${CLAUDE_PLUGIN_ROOT}/lib/gp-precheck.sh
Parse the structured block. Single-value fields are KEY: value; list fields (UNCOMMITTED_LIST) span from the line after KEY: to the next top-level KEY:.
Step 2 — Decide
Blocking (report and stop):
ERRORScontainsdetached HEAD→ "Checkout a branch before push".ERRORScontainsno remote→ "Add a remote:git remote add origin <url>".UNPUSHED_COMMITS = 0andHAS_UPSTREAM = true→ "Nothing to push" (ifUNCOMMITTED_FILES > 0, add: commit first with/yoke:gca).
Non-blocking:
GH_AUTH != ok→ push still proceeds; only PR/URL info is skipped in the report.UNCOMMITTED_FILES > 0→ never blocks.git pushsends only commits; note them in the report.
PUSH_MODE:
HAS_UPSTREAM = false→set-upstream$ARGUMENTScontains--force-with-lease→force-with-lease- otherwise →
normal
Step 3 — Push
One call:
bash ${CLAUDE_PLUGIN_ROOT}/lib/gp-push.sh "<BRANCH>" "<PUSH_MODE>"
If PUSH_STATUS = FAILED → show PUSH_ERROR. If it contains "non-fast-forward" → suggest git pull --rebase or /yoke:gp --force-with-lease. Stop.
Step 4 — Report
Fill from the gp-push.sh block; Commits: ← PUSHED_LIST:
Pushed to origin/<BRANCH>: +<PUSHED_COMMITS> commits
Commits:
<PUSHED_LIST>
Stats: <DIFF_STAT>
Link: <BRANCH_URL>
- Omit the
Link:line whenBRANCH_URL = empty. PR_EXISTS = true→ addPR: <PR_TITLE> (<PR_URL>)and suggest/yoke:prto update it.PR_EXISTS = false→ suggest/yoke:prto create one.UNCOMMITTED_FILES(carried from Step 1)> 0→ addUncommitted (not pushed): <N> files.
Print the report and the suggestion — do not ask a follow-up question.
Rules
- Runs autonomously: no confirmation prompts.
- Remote:
origin. When multiple remotes exist — push to origin. ghis optional; its absence only removes PR/URL info, never blocks the push.- The only mutation is
git push(insidelib/gp-push.sh). - Output limit: max 20 commits.