agentsclimarketplace

Pr

Skill yokeloop/yoke/skills/pr

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.

Install
npx -y skills add yokeloop/yoke --skill pr

Assembled 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

Creates or updates a GitHub Pull Request. Activated on "pr", "pull request", "create pr", "update pr", "open pr".

SKILL.md

3.7 KB, as published. Nobody here has run it

Creating and updating Pull Requests

Orchestrator: collect data, generate the body, create or update the PR. Runs autonomously — no confirmation prompts.

Input

$ARGUMENTS — optional flags (--draft, --base <branch>).


Step 1 — Collect

One call (returns small fields and file paths, not contents):

bash ${CLAUDE_PLUGIN_ROOT}/lib/pr-collect.sh

Parse the structured block. Single-value fields are KEY: value; list fields (COMMITS, AVAILABLE_LABELS) span from the line after KEY: to the next top-level KEY:.

Also read the flow map for the base branch: bash ${CLAUDE_PLUGIN_ROOT}/lib/flow-read.sh — key BRANCH_CASCADE (a branch chain or none).


Step 2 — Decide

Blocking errors (from ERRORS) — report and stop:

  • gh: not_installed → "Install gh CLI: https://cli.github.com"
  • gh: not_authenticated → "Authenticate: gh auth login"
  • on default branch → "PR from the default branch is not possible"
  • no commits → "No commits. Push first: /yoke:gp"

Decisions:

  • MODEPR_EXISTS = trueUPDATE; otherwise CREATE.
  • DATA_SOURCEREVIEW_FILENOT_FOUNDyoke_full; REVIEW_FILE = NOT_FOUND and REPORT_FILENOT_FOUNDyoke_partial; neither → fallback.
  • IS_DRAFT (CREATE only) — true if $ARGUMENTS contains --draft, else false. Do not ask.
  • BASE_BRANCH--base <branch> from $ARGUMENTS wins; else, when BRANCH_CASCADEnone, the cascade's first branch (where PRs land); else DEFAULT_BRANCH.

Step 3 — Generate body

Run pr-body-generator (Sonnet) via the Agent tool:

  • Agent: ${CLAUDE_PLUGIN_ROOT}/skills/pr/agents/pr-body-generator.md
  • Pass: DATA_SOURCE, MODE, TICKET_ID, REVIEW_FILE, REPORT_FILE, PR_TEMPLATE, PR_BODY_FILE, PR_HAS_YOKE_MARKERS, COMMITS, DIFF_STAT

The agent reads the artifact files itself (by path) and returns ready markdown. Large content never enters the orchestrator.


Step 4 — Execute

Write the returned markdown to a temp file (e.g. /tmp/yoke-pr-body.md) and use --body-file to avoid shell-escaping issues.

Title<TICKET_ID> <subject of the first commit in COMMITS> (omit ticket if none; derive it from data the orchestrator already has, not from the generated body). On UPDATE, keep the existing title and leave the draft state unchanged.

CREATE:

gh pr create --title "$TITLE" --body-file /tmp/yoke-pr-body.md --base "$BASE_BRANCH" [--draft]

UPDATE:

gh pr edit "$PR_NUMBER" --body-file /tmp/yoke-pr-body.md

Labels — map COMMIT_TYPES → labels, add only those present in AVAILABLE_LABELS:

gh pr edit <NUMBER> --add-label "<label>"

Notify (final artifact of the cycle):

bash ${CLAUDE_PLUGIN_ROOT}/lib/notify.sh --type STAGE_COMPLETE --skill pr --title "PR $MODE" --body "$PR_URL"

Print:

PR <created|updated>: <URL>
  Title: <title>
  Labels: <labels>
  Ticket: <TICKET_ID>
  Source: <DATA_SOURCE>

Do not ask a follow-up question.


Rules

  • Runs autonomously: no confirmation prompts.
  • Delegate body synthesis to pr-body-generator (Sonnet); it reads artifact files itself, so large content never enters the orchestrator.
  • Wrap the PR body in <!-- yoke:start/end --> markers; on update, preserve text outside them.
  • Assign only labels that exist in the repository.
  • Limit: max 30 commits.

Reference files

  • reference/pr-body-format.md — PR body format, section mapping, markers, template integration, auto-link, auto-labels (read by the generator).

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.