ReviewPack 1.2.4.322

dotnet tool install --global ReviewPack --version 1.2.4.322
                    
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.4.322
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=ReviewPack&version=1.2.4.322
                    
nuke :add-package ReviewPack --version 1.2.4.322
                    

ReviewPack (dotnet tool)

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

A review pack captures the full branch delta from HEAD back to the merge-base with a chosen base branch such as origin/main, then renders that delta into Markdown parts that are easy for both humans and LLMs to inspect.

It is designed for:

  • pre-PR self-review
  • reviewer-assist PR review workflows
  • LLM-assisted code review
  • 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 human-readable and LLM-friendly. It includes:

  • a summary part with reviewer instructions, branch context, totals, and a changed-files index
  • one or more diff parts containing the actual rendered patches

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 in part 0.

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


Output

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

Typical output on disk looks like this:

  • review-pack-0000.md — Summary and Instructions
  • review-pack-0001.md — Diff Patches
  • review-pack-0002.md — Diff Patches
  • ...

When used through MCP, GenerateReviewPack returns:

  • the run id
  • the list of available review-pack parts for that run

The normal MCP workflow is:

  1. call GenerateReviewPack
  2. read part 0 first with ReadReviewPackPart
  3. continue reading the remaining parts by part number

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 the MCP read tool 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 Repository 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
  • ReadReviewPackPart

Prompts

  • Pre_PR_LLM_Review_1.3
  • PR_LLM_Review_1.3

MCP tool behavior

GenerateReviewPack

Use this tool when the user wants to:

  • review branch changes before opening a PR
  • review a checked-out PR branch
  • prepare the current branch for LLM review
  • inspect the full branch delta in review-pack 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 the available review-pack parts for that run
  • 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 for BaseBranch and BranchFolder
  2. tool call arguments
  3. fallbacks
    • base branch → origin/main
    • branch folder → current directory
    • review mode → pre-pr
    • keep large patches → configured tool:KeepLargePatches, otherwise 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.

After generation, the intended flow is:

  1. read part 0 first
  2. follow the instructions embedded there
  3. continue by reading the remaining parts in ascending part-number order

ReadReviewPackPart

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

Inputs:

  • runId — the run identifier previously returned by GenerateReviewPack
  • partNumber — the review-pack part number to read

Reading order:

  • start with part 0
  • then read the remaining parts in ascending numeric order unless the user explicitly asks for a specific part

Part kinds:

  • part 0Summary and Instructions
  • parts 1+Diff Patches

This tool is intended to be the normal way for an agent to load generated review-pack content after generation.


MCP prompt workflows

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

Pre_PR_LLM_Review_1.3

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

It guides the agent to:

  1. generate the review pack
  2. read part 0 first
  3. continue by reading the remaining parts in order
  4. compare the requested folder/base branch with what part 0 reports, and only flag a mismatch when it is real and material

PR_LLM_Review_1.3

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

It guides the agent to:

  1. generate the review pack
  2. read part 0 first
  3. continue by reading the remaining parts in order
  4. compare the requested folder/base branch with what part 0 reports, and only flag a mismatch when it is real and material

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 part 0 first
  3. Follow the instructions in part 0
  4. Read the remaining review-pack parts in order
  5. Only then perform the actual review or summary

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.
  • ReadReviewPackPart is intended to be the normal way for an agent to load generated review-pack content after generation.
  • 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 part 0 and continue through the remaining parts."
  • "Generate the review pack and preserve large patches."
  • "Use the Pre_PR_LLM_Review_1.3 prompt."
  • "Use the PR_LLM_Review_1.3 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 part 0 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 part 0
  • 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 31 4/11/2026
1.2.0.321 38 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