ReviewPack 1.2.0.321

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global ReviewPack --version 1.2.0.321
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local ReviewPack --version 1.2.0.321
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=ReviewPack&version=1.2.0.321
                    
nuke :add-package ReviewPack --version 1.2.0.321
                    

ReviewPack (dotnet tool)

ReviewPack is a .NET global tool that generates a PR review pack for a Git branch.

A review pack is a set of Markdown files representing the full branch delta from HEAD back to the merge-base with a chosen base branch such as origin/main. It is designed for:

  • pre-PR self-review
  • LLM-assisted review workflows
  • packaging the full branch context up front instead of reconstructing it commit by commit

ReviewPack can run in two modes:

  • CLI mode for one-shot generation
  • MCP server mode so an agent can generate and read review packs on demand

Each generated pack is both human-readable and LLM-friendly. It includes:

  • a summary file with instructions, branch context, totals, and a changed-files index
  • one or more additional Markdown parts containing the actual diffs

Requirements

  • .NET 10 SDK/runtime
  • git available on your PATH
  • access to the Git working tree you want to review
  • an existing output folder where ReviewPack can create per-run subfolders

Install

dotnet tool install --global ReviewPack

The command name is:

pr-review-pack

Update

dotnet tool update --global ReviewPack

Uninstall

dotnet tool uninstall --global ReviewPack

CLI usage

Basic example

  1. Make sure your base branch ref is up to date:
git fetch origin
  1. Create an output folder if you do not already have one:
mkdir C:\temp\reviewpacks
  1. Run ReviewPack from inside the repo:
pr-review-pack --tool__outputpath "C:\temp\reviewpacks" --tool__basebranch "origin/main" --allowConsoleLogging

If --tool__basebranch is omitted, ReviewPack falls back to origin/main.

Running from outside the repo

If the process is not started from the Git working tree, provide the repo folder explicitly:

pr-review-pack --tool__outputpath "C:\temp\reviewpacks" --tool__branchfolder "C:\src\my-repo" --tool__basebranch "origin/main" --allowConsoleLogging

Preserving large patches in CLI mode

By default, ReviewPack may truncate or reduce very large diffs, especially for bulky text-based files such as large JSON documents.

If you want the generated review pack to keep those patches in full, pass:

pr-review-pack --tool__outputpath "C:\temp\reviewpacks" --tool__basebranch "origin/main" --tool__keeplargepatches

CLI note about review mode

CLI execution always generates the default pre-PR / self-audit instruction set inside review-pack-0000.md.

If you want the embedded instructions to use reviewer-assist PR wording instead, that is currently available only through the MCP GenerateReviewPack tool via reviewMode: "pr".


Output

Each run writes a new subfolder under the configured output path. The subfolder name is the run id.

Typical output looks like this:

  • review-pack-0000.md — summary, instructions, branch context, and changed-files index
  • review-pack-0001.md — first diff part
  • review-pack-0002.md — second diff part
  • ...

When used through MCP, GenerateReviewPack returns:

  • the run id
  • the list of generated file paths

Options

Option Required Description
--tool__outputpath <path> Yes Existing folder where ReviewPack creates a run subfolder for each execution. This same root is also used by ReadReviewPackFile and by MCP file logging.
--tool__basebranch <ref> No Base Git reference used for comparison. Defaults to origin/main when not otherwise configured. Examples: origin/main, main, origin/release/1.2.
--tool__branchfolder <path> No Working folder used to resolve the Git repository. Defaults to the current directory. Useful when running outside the repo or when hosting ReviewPack as an MCP server.
--tool__maxmarkdownsize <n> No Approximate maximum rendered diff content per generated part. When the next file would push the current part over this size, a new part is started. Default: 15000.
--tool__keeplargepatches <true/false> No Preserves large rendered diffs instead of truncating them or reducing them to metadata-only output. Default: false. Useful when the branch mainly changes bulky files such as large JSON payloads.
--tool__runasmcpserver <true/false> No Starts ReviewPack as an MCP server over stdio instead of performing a one-shot CLI execution.
--allowConsoleLogging No Enables console logging for CLI mode. Do not enable this in MCP mode because stdout is reserved for the protocol.

MCP server mode

When --tool__runasmcpserver true is set, ReviewPack runs as an MCP server over stdio.

It exposes:

Tools

  • GenerateReviewPack
  • ReadReviewPackFile

Prompts

  • Pre_PR_LLM_Review_1.2
  • PR_LLM_Review_1.2

MCP tool behavior

GenerateReviewPack

Use this tool when the user wants to:

  • review their branch changes before opening a PR
  • prepare the current branch for LLM review
  • inspect the full branch delta in Markdown form
  • generate a multi-part review pack for a specific repo and base branch

The tool:

  • resolves the effective review settings
  • compares HEAD to the merge-base with the effective base branch
  • writes a multi-part review pack to disk
  • returns the run id and generated Markdown file paths
  • lets the caller choose whether the embedded review instructions are for a self-audit (pre-pr) or a reviewer-assist pass (pr)
  • optionally preserves large patches instead of truncating them

It accepts optional arguments for:

  • baseBranch
  • branchFolder
  • reviewMode
  • keepLargePatches

These are resolved with the following precedence:

  1. server configuration (tool:BaseBranch, tool:BranchFolder)
  2. tool call arguments (baseBranch, branchFolder, reviewMode, keepLargePatches)
  3. fallbacks
  • base branch → origin/main
  • branch folder → current directory
  • review mode → pre-pr
  • keep large patches → false

That means if BaseBranch and/or BranchFolder are fixed in the MCP server configuration, those configured values win and any values passed in the tool call are ignored.

keepLargePatches is resolved differently: when the MCP tool call provides keepLargePatches, that invocation value wins; otherwise ReviewPack falls back to the configured tool:KeepLargePatches value, and then to false.

reviewMode controls the wording of the instructions embedded in review-pack-0000.md:

  • pre-pr keeps the default self-audit wording and asks for PR title/description help
  • pr frames the pack as a review of someone else's checked-out PR branch

keepLargePatches controls whether bulky diffs are preserved in full:

  • false keeps the default behavior, where very large or bulky file patches may be truncated or reduced to metadata-only output
  • true preserves those large patches in the generated review pack, even when the changed files are large JSON or other bulky text-based files

ReadReviewPackFile

Use this tool to read the content of a generated review-pack Markdown file.

It only allows files that:

  • are inside the configured output root
  • match the review-pack-*.md naming convention

This is intended for agents that need the actual Markdown content after generation.


MCP prompt workflows

ReviewPack can also expose MCP prompts that guide an agent through a sensible review workflow.

Pre_PR_LLM_Review_1.2

Use this prompt when reviewing your own branch before opening a PR.

Its purpose is to guide an agent through a sensible self-audit workflow:

  1. generate the review pack
  2. read review-pack-0000.md first
  3. continue by reading the remaining review-pack parts in order
  4. optionally inspect files directly from the solution or workspace when needed to validate conclusions or investigate possible regressions

The prompt also tells the agent to detect real mismatches between the requested folder/base branch and the actual generated pack, while ignoring harmless differences such as relative vs absolute path formatting.

PR_LLM_Review_1.2

Use this prompt when reviewing someone else's PR branch that is currently checked out locally.

Its purpose is to guide an agent through a reviewer-assist workflow:

  1. generate the review pack
  2. read review-pack-0000.md first
  3. continue by reading the remaining review-pack parts in order
  4. use the review-pack instructions as the primary contract for review style and outcome
  5. optionally inspect files directly from the solution or workspace when needed to validate conclusions or investigate possible regressions

Like the self-review prompt, it also tells the agent to detect real mismatches between the requested folder/base branch and the actual generated pack, while ignoring harmless differences such as relative vs absolute path formatting.

Prompt note for large patches

There is no separate prompt variant for preserving large patches.

If an agent should keep bulky diffs in full, the user can simply ask for that in natural language, for example:

  • "Generate the review pack and preserve large patches."
  • "Use the PR prompt, but keep large patches."

The important part is that the agent should call GenerateReviewPack with keepLargePatches: true when that behavior is needed.


Whether the agent is driven by the MCP prompt or by a direct user request, the ideal workflow is:

  1. Call GenerateReviewPack
  2. Read review-pack-0000.md first
  3. Follow the instructions in part 0000
  4. Read the remaining review-pack parts in order
  5. Only then perform the actual review or summary

This matters because GenerateReviewPack does not return the Markdown content directly. It returns the file paths to the generated artifacts.


Example: fixed workspace/server configuration

This is the best fit when the MCP configuration is tied to one repo or workspace and you want the base branch and repo folder to stay fixed.

{
  "servers": {
    "pr-review-pack-mcp": {
      "type": "stdio",
      "command": "pr-review-pack",
      "args": [
        "--tool__runAsMcpServer",
        "--tool__outputPath",
        "C:\\temp\\reviewpacks",
        "--tool__baseBranch",
        "origin/main",
        "--tool__branchFolder",
        "C:\\src\\my-repo"
      ]
    }
  }
}

In this setup, MCP tool arguments for baseBranch and branchFolder are effectively advisory only, because the configured values already win.

keepLargePatches still remains invocation-controllable in this setup: a tool call can override the configured value, and the configured value is used only when the tool call omits keepLargePatches.

If you always want full bulky diffs in that MCP server instance, you can also pin:

{
  "servers": {
    "pr-review-pack-mcp": {
      "type": "stdio",
      "command": "pr-review-pack",
      "args": [
        "--tool__runAsMcpServer",
        "--tool__outputPath",
        "C:\\temp\\reviewpacks",
        "--tool__baseBranch",
        "origin/main",
        "--tool__branchFolder",
        "C:\\src\\my-repo",
        "--tool__keepLargePatches",
        "true"
      ]
    }
  }
}

Example: loose/global configuration

This is the best fit when you do not want the MCP config to live in the repo and you want to target different repos or branches per invocation.

{
  "servers": {
    "pr-review-pack-mcp": {
      "type": "stdio",
      "command": "pr-review-pack",
      "args": [
        "--tool__runAsMcpServer",
        "--tool__outputPath",
        "C:\\temp\\reviewpacks"
      ]
    }
  }
}

In this setup, an agent can call GenerateReviewPack with a specific baseBranch and branchFolder for the current request. It can also pass reviewMode: "pre-pr" or reviewMode: "pr" depending on the initial user request. If needed, it can also pass keepLargePatches: true to preserve bulky diffs.


MCP notes

  • In MCP mode, avoid console logging because stdout is reserved for the protocol.
  • ReviewPack writes a file log to <tool__outputpath>\mcp-rev-pack.log.
  • ReadReviewPackFile is intentionally restricted to generated review-pack-*.md files under the configured output root.
  • If prompt text appears stale in an MCP client, make sure the client is actually launching the updated server build and has reloaded the server capabilities.
  • reviewMode: "pr" is an MCP tool argument, not a CLI switch.
  • keepLargePatches can be controlled either by CLI/server configuration or by the MCP GenerateReviewPack tool argument; when both are present, the MCP tool argument wins for that invocation.

Prompting an agent that has ReviewPack configured

Useful requests include:

  • "Generate a PR review pack for my current branch."
  • "Generate a review pack for C:\src\my-repo against origin/release/2.0."
  • "Generate the review pack, then read review-pack-0000.md and continue through the remaining parts."
  • "Generate the review pack and preserve large patches."
  • "Use the Pre_PR_LLM_Review_1.2 prompt."
  • "Use the PR_LLM_Review_1.2 prompt and preserve large patches."

If you also want the agent to actually review the code, ask for it as part of the same request or immediately after generation, but it should still begin with review-pack-0000.md and then continue through the generated parts.


What is included in the review pack

Each run captures:

  • current branch name
  • base branch name
  • HEAD commit SHA
  • merge-base commit SHA
  • total changed files
  • total added lines
  • total deleted lines
  • changed-files index by part
  • review instructions embedded in review-pack-0000.md
  • per-file diffs in fenced diff blocks

Diff rendering behavior

ReviewPack always computes the real branch diff, but not every patch is rendered in full by default.

Default rendered patch behavior is:

  • full for normal-sized diffs
  • truncated for larger diffs
  • metadata only for very large diffs
  • more aggressive truncation/omission for bulky text-based files such as:
    • .json
    • .md
    • .xml
    • .ini
    • .conf
    • .txt

When keepLargePatches is enabled, ReviewPack preserves those large patches in full instead of truncating them or reducing them to metadata-only output.

That is especially useful when a branch mainly consists of changes to large JSON files and the actual diff content matters for the review.

When a patch is omitted due to size under the default behavior, the review pack still includes file metadata such as:

  • file path
  • status
  • added/deleted line counts

If Git returns no patch content for a file, ReviewPack writes a placeholder message instead of failing.


Notes

  • ReviewPack diffs merge-base..HEAD, not base-branch..HEAD directly.
  • OutputPath must already exist.
  • MaxMarkdownSize must be non-negative.
  • In detached HEAD scenarios, the current branch is reported as (detached).
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.2.4.322 0 4/11/2026
1.2.0.321 37 4/9/2026
1.1.11.300 90 4/3/2026
1.1.11-dev.299 52 4/3/2026
1.1.11-dev.298 41 4/3/2026
1.1.10.297 87 4/3/2026
1.1.10-dev.296 44 4/3/2026
1.1.9.295 76 4/3/2026
1.1.9-dev.294 48 4/3/2026
1.1.8.293 85 4/2/2026
1.1.8-dev.292 48 4/2/2026
1.1.7.290 94 4/1/2026
1.1.7-dev.289 39 4/1/2026
1.1.7-dev.288 37 4/1/2026
1.1.7-dev.287 48 4/1/2026
1.1.6.286 84 3/31/2026
1.1.6-dev.285 40 3/31/2026
1.1.5.284 80 3/31/2026
1.1.5-dev.283 43 3/31/2026
1.1.3.275 100 3/27/2026
Loading failed