mcpbeat Sign in

Pr Reference Agent Skill

Generates PR reference XML with commit history and unified diffs between branches, with extension and path filtering. Use when creating pull request descriptions, preparing code reviews, analyzing branch changes, discovering work items from diffs, or generating structured diff summaries.

31k tokens
context cost
the whole folder, loaded on every use
13
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
1313
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/microsoft/hve-core --skill pr-reference

What comes with it

117 370 bytes besides the instruction
references/REFERENCE.md
scripts/generate.ps1
scripts/generate.sh
scripts/list-changed-files.ps1
scripts/list-changed-files.sh
scripts/read-diff.ps1
scripts/read-diff.sh
scripts/shared.psm1
tests/generate.Tests.ps1
tests/list-changed-files.Tests.ps1
tests/read-diff.Tests.ps1
tests/shared.Tests.ps1

The instruction itself

10 sections, as written by the author

PR Reference Generation Skill

Overview

Queries git for commit metadata and diff output, then produces a structured XML document. Both bash and PowerShell implementations are provided.

Use cases:

  • PR description generation from commit history
  • Code review preparation with structured diff context
  • Work item discovery by analyzing branch changes
  • Security analysis of modified files

After successful generation, include a file link to the absolute path of the XML output in the response.

Prerequisites

The repository must have at least one commit diverging from the base branch.

| Platform | Runtime |

|----------------|----------------------|

| macOS / Linux | Bash (pre-installed) |

| Windows | PowerShell 7+ (pwsh) |

| Cross-platform | PowerShell 7+ (pwsh) |

Quick Start

Run the following command to generate a PR reference with default settings (compares against origin/main):

scripts/generate.sh
scripts/generate.sh --base-branch auto --merge-base --exclude-ext yml,json
scripts/generate.ps1
scripts/generate.ps1 -BaseBranch auto -MergeBase -ExcludeExt yml,json

Output saves to .copilot-tracking/pr/pr-reference.xml by default.

Parameters Reference

| Parameter | Flag (bash) | Flag (PowerShell) | Default | Description |

|--------------------|------------------|------------------------|--------------------------------------------|--------------------------------------------------------------------|

| Base branch | --base-branch | -BaseBranch | origin/main (bash) / main (PowerShell) | Target branch for comparison. Use auto to detect remote default. |

| Merge base | --merge-base | -MergeBase | false | Use git merge-base for three-way comparison |

| Exclude markdown | --no-md-diff | -ExcludeMarkdownDiff | false | Exclude markdown files (*.md) from the diff |

| Exclude extensions | --exclude-ext | -ExcludeExt | (none) | Comma-separated extensions to exclude (e.g., yml,yaml,json,png) |

| Exclude paths | --exclude-path | -ExcludePath | (none) | Comma-separated path prefixes to exclude (e.g., docs/,.github/) |

| Output path | --output | -OutputPath | .copilot-tracking/pr/pr-reference.xml | Custom output file path |

Both defaults resolve to the same remote comparison. The PowerShell script automatically resolves origin/<branch> when a bare branch name is provided.

Additional Scripts Reference

After generating the PR reference, use these utility scripts to query the XML.

List Changed Files

Run the list script to extract file paths from the diff:

scripts/list-changed-files.sh                              # all changed files
scripts/list-changed-files.sh --type added                  # filter by single type
scripts/list-changed-files.sh --type added,modified,renamed  # filter by multiple types
scripts/list-changed-files.sh --exclude-type deleted         # exclude specific types
scripts/list-changed-files.sh --format markdown              # output as markdown table
scripts/list-changed-files.ps1                             # all changed files
scripts/list-changed-files.ps1 -Type Added                  # filter by single type
scripts/list-changed-files.ps1 -Type Added,Modified,Renamed # filter by multiple types
scripts/list-changed-files.ps1 -ExcludeType Deleted          # exclude specific types
scripts/list-changed-files.ps1 -Format Json                  # output as JSON

| Parameter | Flag (bash) | Flag (PowerShell) | Default | Description |

|--------------|------------------|-------------------|---------|-----------------------------------------------------------------------|

| Input path | --input, -i | -InputPath | (auto) | Path to pr-reference.xml |

| Type filter | --type, -t | -Type | all | Change types to include (comma-separated: added, modified, etc.) |

| Exclude type | --exclude-type | -ExcludeType | (none) | Change types to exclude. Mutually exclusive with --type (non-all) |

| Format | --format, -f | -Format | plain | Output format: plain, json, or markdown |

Read Diff Content

Run the read script to inspect diff content with chunking for large diffs:

scripts/read-diff.sh --info             # chunk info (count, line ranges)
scripts/read-diff.sh --chunk 1          # read a specific chunk
scripts/read-diff.sh --file src/main.ts  # extract diff for one file
scripts/read-diff.sh --summary          # file stats summary
scripts/read-diff.ps1 -Info              # chunk info
scripts/read-diff.ps1 -Chunk 1           # read a specific chunk
scripts/read-diff.ps1 -File "src/main.ts" # extract diff for one file

Output Format

The generated XML wraps commit metadata and unified diff output in a <commit_history> root element. See the reference guide for the complete XML schema, element reference, output path variations, and workflow integration patterns.

Troubleshooting

| Symptom | Cause | Resolution |

|---------------------------------|---------------------------------------|---------------------------------------------------------------------------|

| "No commits found" or empty XML | No diverging commits from base branch | Verify the branch has commits ahead of the base with git log base..HEAD |

| "Branch not found" error | Base branch ref missing locally | Run git fetch origin to update remote tracking refs |

| "git: command not found" | git is not on PATH | Install git or verify PATH includes the git binary directory |

Other skills for the same job

different authors, same section of the catalogue
Receiving Code Review
by ZhanlinCui
×7

Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation

2k tokens
Requesting Code Review
by ZhanlinCui
×6

Use when completing tasks, implementing major features, or before merging to verify work meets requirements

2k tokens
Git Commit
by github
vendor ×3

Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping

799 tokens
Github Code Review
by ComeOnOliver
×3

Comprehensive GitHub code review with AI-powered swarm coordination

13k tokens
Karpathy Guidelines
by hyyhf
×3

Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid overcomplication, make surgical changes, surface assumptions, and define verifiable success criteria.

629 tokens
Code Reviewer
by google-gemini
vendor ×2

Use this skill to review code. It supports both local changes (staged or working tree) and remote Pull Requests (by ID or URL). It focuses on correctness, maintainability, and adherence to project standards.

795 tokens
Agent MD Refactor
by softaworks
×2

Refactor bloated AGENTS.md, CLAUDE.md, or similar agent instruction files to follow progressive disclosure principles. Splits monolithic files into organized, linked documentation.

4k tokens
Commit Work
by softaworks
×2

Create high-quality git commits: review/stage intended changes, split into logical commits, and write clear commit messages (including Conventional Commits). Use when the user asks to commit, craft a commit message, stage changes, or split work into multiple commits.

2k tokens

How to use it

Copy the folder

Take microsoft/pr-reference from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.