sync-prs

sync-prs is a skill for Claude Code from waqas1412/claude-harness. It costs 132 tokens per session (1,473 once invoked), scanned A, original, MIT.

A procedure for updating several open GitHub pull requests from their actual base branches while keeping one commit per pull request. A base branch is the branch a pull request is intended to merge into.

In plain words
What is it for?
Use it to inspect open pull requests, rebase them in dependency order, squash each back to one commit, and safely update the existing branches.
Why use it?
It reduces conflicts and keeps stacked pull requests—dependent pull requests built on one another—in sync without accidentally using the wrong target branch.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: mentions subagents.

Part of the harness plugin — 9 skills, 16 agents, 2 hooks shipped together

Good fit Use it to inspect open pull requests, rebase them in dependency order, squash each back to one commit, and safely update the existing branches.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/waqas1412/claude-harness/sync-prs
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add waqas1412/claude-harness --skill sync-prs
Clone the repo
git clone --depth 1 https://github.com/waqas1412/claude-harness

Made for: Claude Code.

Or install harness, the plugin that ships this one along with the rest of its 9 skills, 16 agents, 2 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for sync-prs

README.md
[![agentmods](https://agentmods.dev/badge/skills/waqas1412/claude-harness/sync-prs/github.svg)](https://agentmods.dev/skills/waqas1412/claude-harness/sync-prs)
Your own site
<a href="https://agentmods.dev/skills/waqas1412/claude-harness/sync-prs"><img src="https://agentmods.dev/badge/skills/waqas1412/claude-harness/sync-prs/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for sync-prs

Your own site · 80×15
<a href="https://agentmods.dev/skills/waqas1412/claude-harness/sync-prs"><img src="https://agentmods.dev/badge/skills/waqas1412/claude-harness/sync-prs.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 132 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,473 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00132 $0.01473
Opus 5 $0.00066 $0.00737
Sonnet 5 $0.00026 $0.00295
Haiku 4.5 $0.00013 $0.00147

Measured 6d ago against content hash b041435200cc, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

sync-prs scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/harness/skills/sync-prs/SKILL.md · 110 lines

How it starts

The opening of the file, as written. The whole thing — 110 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/sync-prs: bring open PRs up to date

Load .claude/harness/profile.md for REPO, DEFAULT_BRANCH, LINT_CMD, BUILD_CMD, UNIT_TEST_CMD, E2E_TEST_CMD.

Not for

Opening, retargeting, or merging PRs. Review comments (use /pr-comments). PR bodies (use /pr).

Invariants, restated as gates

These come from the always-on rules and the memory store. Do not redefine them here, just do not break them.

  • Preserve the branch's existing commits. A rebase replays them; do not squash them into one, and do not amend to reduce the count.
  • git push --force-with-lease on the SAME branch ref, because a rebase rewrites the commits it replays and there is no non-force way to publish that. This is the one sanctioned force-push: it is inherent to rebasing, not a commit-count preference. A force-push does not close a PR and approvals survive it here. A branch RENAME does close it, so never rename a branch that heads an open PR.
  • Confirm git branch --show-current as its own step before any rebase.
  • Never --no-verify, never weaken a test to get green.

Step 1: enumerate and build the graph

gh pr list --author @me --state open \
  --json number,headRefName,baseRefName,isDraft,mergeStateStatus,mergeable --limit 50

The base is baseRefName per PR. Read it; do not assume the default branch. Some PRs sit on an epic branch, and "sync with development" for those means sync the epic first, then rebase the PR onto the epic.

A PR is a stack child when its baseRefName equals another open PR's headRefName:

gh pr list --author @me --state open --json number,headRefName,baseRefName --jq '
  . as $p
  | map(. as $c | {n:$c.number, head:$c.headRefName, base:$c.baseRefName,
                   parentPR: ([$p[] | select(.headRefName == $c.baseRefName) | .number] | first)})
  | map("PR \(.n)  head=\(.head)  base=\(.base)  parent=\(.parentPR // "none")") | .[]'

Step 2: dry-run report, before touching anything

git fetch origin first, then per PR:

Read the full file on GitHub · 110 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago Changed · -3 lines · -8 tokens per session b041435200cc
  2. 10d ago First seen · 113 lines · 140 tokens per session scan A 12e48ec52bd2

Subscribe to this mod's changes

sync-prs is a skill published in the GitHub repository waqas1412/claude-harness (1 stars, last pushed 3d ago), licensed MIT. It adds 132 tokens to every session and 1,473 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

flame-harness-submit

Phase 10 — upload store text metadata + categories via fastlane, then pause with exact manual steps for the final iOS review submission and Android production promotion.

tjdrhs90/flutter-flame-harness · 38 tokens

flame-harness-build

Phase 8 — bootstrap signing credentials, generate fastlane config from templates, and build + upload signed IPA (TestFlight) and AAB (internal track).

tjdrhs90/flutter-flame-harness · 38 tokens

fabrik-implement

Use when operating as the Fabrik Implement stage agent. This skill guides the implementation of a planned feature, following the task checklist to produce committed, tested, pushed code on a feature branch.

handarbeit/fabrik · 38 tokens

fabrik-review-comment

Use when operating as the Fabrik Review comment reviewer. This skill guides applying user decisions on review findings — fixing issues, dismissing false positives, or deferring items — then committing and pushing without signaling stage completion.

handarbeit/fabrik · 43 tokens

security-pipeline

Use when security verification is needed - pre-commit security checks, vulnerability scanning, STRIDE threat analysis. Integrates with /handoff-verify --security and /commit-push-pr. CWE Top 25 based.

sangrokjung/claude-forge · 48 tokens

caveman-commit

Ultra-compressed commit message generator. Cuts noise from commit messages while preserving intent and reasoning. Conventional Commits format. Subject ≤50 chars, body only when "why" isn't obvious. Use when user says "write a commit", "commit message", "generate commit", "/commit", or invokes /caveman-commit.…

stevesolun/ctx · 79 tokens