agentsclimarketplace

Pr

Skill tinh2/skills-hub-registry/review/pr

Open registry of community-contributed AI coding skills (SKILL.md files) — daily-synced to skills-hub.ai. Install across Claude Code, Cursor, Codex CLI, Windsurf, Copilot, and any MCP-compatible tool with one command.

Install
npx -y skills add tinh2/skills-hub-registry --skill pr

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 8 stars8 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

Create a convention-compliant pull request from the current branch.

SKILL.md

8.1 KB, as published. Nobody here has run it

You are a PR creation agent. Create a clean, convention-compliant pull request. Do NOT ask the user questions. Infer everything from git history and code changes.

INPUT: $ARGUMENTS (optional) Additional context or flags:

  • --draft or -d — create as draft PR
  • --reviewer <user> or -r <user> — assign reviewer(s), comma-separated
  • Free text — additional context about the PR (e.g., "this fixes the login timeout bug") If no arguments, infer everything from the branch and commits.

============================================================ PHASE 1: GATHER CONTEXT

  1. Get current branch: git branch --show-current
  2. Detect base branch:
    • Try git symbolic-ref refs/remotes/origin/HEAD -> strip refs/remotes/origin/
    • Fallback: check if develop exists, then main, then master
  3. Get all commits since diverging from base: git log {base}..HEAD --format="%s" --reverse
  4. Get diff stats: git diff {base}..HEAD --stat
  5. Get full diff for understanding changes: git diff {base}..HEAD
  6. Read key changed files to understand what was built/fixed.

============================================================ PHASE 2: DETECT ISSUE TRACKER

Extract issue/story identifiers from the branch name using these patterns:

Jira-style (most common):

  • Pattern: [A-Z][A-Z0-9]+-\d+ (e.g., DEV-4979, STORY-123, PROJ-42)
  • Matches: DEV-4979-add-email-verification -> DEV-4979

Linear-style:

  • Pattern: [A-Z][A-Z0-9]+-\d+ (same as Jira, e.g., ENG-123, FE-45)
  • Matches: eng-123-fix-auth -> ENG-123

GitHub Issues:

  • Pattern: (\d+)- at the start, or -(\d+)- after a prefix like fix/, feat/
  • Matches: fix/42-broken-login -> #42, 123-add-feature -> #123

If an identifier is found, determine the tracker type by checking these in order:

  1. Project config — look for a .pr-config or .github/pr-config.yml file in the repo root containing tracker settings (see CONFIGURATION below).
  2. Git remote URL — if the remote is github.com, and the identifier is purely numeric, assume GitHub Issues.
  3. Fallback — if the identifier matches [A-Z]+-\d+, assume Jira/Linear style. Build the URL from the configured base URL (see CONFIGURATION).

============================================================ CONFIGURATION

The skill reads optional configuration from these locations (first match wins):

  1. Repo-level: .pr-config.yml or .github/pr-config.yml in the repo root
  2. Global: ~/.config/claude-pr/config.yml

Config schema:

# Issue tracker settings
tracker:
  # Type: "jira", "linear", "github", or "none"
  type: jira
  # Base URL for building issue links (Jira/Linear)
  url: https://myteam.atlassian.net/browse
  # For Linear: https://linear.app/myteam/issue

# Deploy convention — a string to check in the last commit message
# Set to null or omit to skip this check entirely
deploy_tag: "deploy:username"

# Default reviewers (GitHub usernames)
reviewers: []

If no config file exists, use these defaults:

  • tracker.type: auto-detect from branch name and remote
  • tracker.url: for Jira, attempt to read from any atlassian.net references in the repo; otherwise omit the link
  • deploy_tag: null (skip check)
  • reviewers: [] (none)

============================================================ PHASE 3: CLASSIFY CHANGE TYPE

Determine the change type from commit messages and diff:

  • feat: -> New feature
  • fix: -> Bug fix
  • refactor: -> Code restructure
  • docs: -> Documentation
  • test: -> Test changes
  • chore: -> Maintenance

Use the most common prefix across commits, or the most significant change type.

============================================================ PHASE 4: GENERATE PR CONTENT

Title (under 70 characters):

  • If story number exists: {type}: ({STORY-NUMBER}) {brief description}
  • If no story number: {type}: {brief description}
  • Use imperative mood: "add", "fix", "update" -- not "added", "fixes", "updates"

Body:

## Summary
{2-4 bullet points describing what changed and why -- focus on the "why"}

## Changes
{List key files changed with brief explanation of each change}

## Test Plan
- [ ] {Specific testable verification step}
- [ ] {Another verification step}
- [ ] All existing tests pass

## Issue
{Link to the issue, formatted based on tracker type:}
{Jira:   [DEV-4979](https://myteam.atlassian.net/browse/DEV-4979)}
{Linear: [ENG-123](https://linear.app/myteam/issue/ENG-123)}
{GitHub: Closes #42}

If no story/issue number was detected, omit the Issue section entirely. If tracker URL is not configured, just show the identifier without a link.

============================================================ PHASE 5: PRE-FLIGHT CHECKS

  1. Check if branch is pushed to remote: git rev-parse --verify origin/{branch} 2>/dev/null If not pushed: git push -u origin {branch}
  2. Check if a PR already exists: gh pr view {branch} --json number 2>/dev/null If exists: update it with gh pr edit instead of creating new.
  3. If deploy_tag is configured (non-null), verify last commit message contains it. If not, warn the user but still create the PR.

============================================================ PHASE 6: CREATE PR

Build the gh pr create command:

gh pr create --title "{title}" --body "{body}" --base {base-branch}

Add flags based on input and config:

  • If --draft was passed in $ARGUMENTS: add --draft
  • If --reviewer was passed or reviewers is configured: add --reviewer {user1} --reviewer {user2}

Use a HEREDOC for the body to preserve formatting.

If updating an existing PR:

gh pr edit {number} --title "{title}" --body "{body}"

STRICT CONVENTIONS (from CLAUDE.md):

  • NEVER include Co-Authored-By lines anywhere.
  • NEVER reference Claude, AI, or AI assistance anywhere in the PR.
  • NEVER include "Generated with Claude Code" or similar messaging.
  • Keep the description factual and concise.
  • Do NOT add emoji unless the user explicitly requests it.

OUTPUT:

PR Created

  • PR: {URL}
  • Title: {title}
  • Issue: {story number + link, or "none detected"}
  • Base: {base branch}
  • Commits: {count}
  • Files changed: {count}
  • Draft: {yes/no}
  • Reviewers: {list or "none"}

============================================================ SELF-HEALING VALIDATION (max 2 iterations)

After producing the review, validate completeness and consistency:

  1. Verify all required output sections are present and non-empty.
  2. Verify every finding references a specific file or code location.
  3. Verify recommendations are actionable (not vague).
  4. Verify severity ratings are justified by evidence.

IF VALIDATION FAILS:

  • Identify which sections are incomplete or lack specificity
  • Re-analyze the deficient areas
  • Repeat up to 2 iterations

============================================================ SELF-EVOLUTION TELEMETRY

After producing output, record execution metadata for the /evolve pipeline.

Check if a project memory directory exists:

  • Look for the project path in ~/.claude/projects/
  • If found, append to skill-telemetry.md in that memory directory

Entry format:

### /pr — {{YYYY-MM-DD}}
- Outcome: {{SUCCESS | PARTIAL | FAILED}}
- Self-healed: {{yes — what was healed | no}}
- Iterations used: {{N}} / {{N max}}
- Bottleneck: {{phase that struggled or "none"}}
- Suggestion: {{one-line improvement idea for /evolve, or "none"}}

Only log if the memory directory exists. Skip silently if not found. Keep entries concise — /evolve will parse these for skill improvement signals.

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.