{"id":50329442,"url":"https://github.com/Lucas2944/prpack-action","last_synced_at":"2026-06-15T00:01:04.148Z","repository":{"id":357065606,"uuid":"1234965267","full_name":"Lucas2944/prpack-action","owner":"Lucas2944","description":"GitHub Action: pack each PR into one markdown file optimized for LLM code review.","archived":false,"fork":false,"pushed_at":"2026-05-11T06:30:46.000Z","size":14,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-11T07:29:31.020Z","etag":null,"topics":["ai","claude","cli","code-review","cursor","developer-tools","github-actions","llm","pull-request"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lucas2944.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-10T21:39:38.000Z","updated_at":"2026-05-11T06:43:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Lucas2944/prpack-action","commit_stats":null,"previous_names":["lucas2944/prpack-action"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Lucas2944/prpack-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucas2944%2Fprpack-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucas2944%2Fprpack-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucas2944%2Fprpack-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucas2944%2Fprpack-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lucas2944","download_url":"https://codeload.github.com/Lucas2944/prpack-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lucas2944%2Fprpack-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34342089,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","claude","cli","code-review","cursor","developer-tools","github-actions","llm","pull-request"],"created_at":"2026-05-29T09:00:21.754Z","updated_at":"2026-06-15T00:01:04.098Z","avatar_url":"https://github.com/Lucas2944.png","language":null,"funding_links":[],"categories":["Automated Workflows","Code Review \u0026 Collaboration"],"sub_categories":["PR \u0026 Code Review Bots","Other IDEs"],"readme":"# prpack-action\n\n[![test](https://github.com/Lucas2944/prpack-action/actions/workflows/test.yml/badge.svg)](https://github.com/Lucas2944/prpack-action/actions/workflows/test.yml)\n[![release](https://img.shields.io/github/v/release/Lucas2944/prpack-action)](https://github.com/Lucas2944/prpack-action/releases/latest)\n[![Marketplace](https://img.shields.io/badge/Marketplace-prpack-purple?logo=github)](https://github.com/marketplace/actions/prpack)\n[![license](https://img.shields.io/github/license/Lucas2944/prpack-action)](./LICENSE)\n[![demo](https://img.shields.io/badge/try%20in%20browser-lucas2944.github.io%2Fprpack--demo-d2a8ff)](https://lucas2944.github.io/prpack-demo/)\n\n\u003e Pack each pull request into one markdown file optimized for LLM code review.\n\n**Want to see what it produces without setting up a workflow?** Paste a public PR into the [browser demo](https://lucas2944.github.io/prpack-demo/) and you'll see the exact output this action uploads as an artifact on every PR.\n\nA GitHub Action wrapper around [prpack](https://github.com/Lucas2944/prpack). On every PR, it builds a single markdown file containing the diff *and* the full post-change content of every touched file, uploads it as an artifact, and leaves a summary comment. Drop the artifact into Claude / Cursor / your model of choice and ask for a review that can actually see what didn't change.\n\nThe technique behind it is written up at length here: [Your LLM code reviewer is reading half the file](https://scottthurman.hashnode.dev/your-llm-code-reviewer-is-reading-half-the-file).\n\nReproducible side-by-side proof that this matters: [prpack/examples/invoice-refactor](https://github.com/Lucas2944/prpack/tree/main/examples/invoice-refactor). Paste the raw diff into Claude; paste the packed context into Claude; compare.\n\n**prpack v0.2.0** also ships a native `--review [angle]` flag that calls Anthropic and streams the review for you. Currently this action runs in pack-only mode; if you want CI to auto-review, you can extend the workflow to set `ANTHROPIC_API_KEY` and call `npx -y github:Lucas2944/prpack --review security --yes` directly in a subsequent step. See [prpack v0.2.0 release](https://github.com/Lucas2944/prpack/releases/tag/v0.2.0).\n\nFive-minute setup tutorial: [Add an LLM PR reviewer to your GitHub Actions in 5 minutes (no API key)](https://scottthurman.hashnode.dev/).\n\n## Usage\n\nThe minimum:\n\n```yaml\n# .github/workflows/prpack.yml\nname: prpack\n\non:\n  pull_request:\n\npermissions:\n  contents: read\n  pull-requests: write\n\njobs:\n  pack:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n        with:\n          fetch-depth: 0\n      - uses: Lucas2944/prpack-action@v1\n```\n\nThat's it. On every PR, you'll get:\n\n- An artifact called `prpack-context` containing the packed markdown\n- A summary comment on the PR with file count and token estimate\n\nOpen the artifact, paste it into Claude or Cursor, and ask \"Review this PR.\"\n\n## Inputs\n\n| Input | Default | Description |\n|---|---|---|\n| `base` | PR base, or `origin/main` | Base ref for the diff. |\n| `head` | `${{ github.sha }}` | Head ref. |\n| `config` | — | Path in your repo to a `.prpack.yml` config file. |\n| `include-tests` | `false` | Pull in adjacent test files even if they didn't change. |\n| `exclude` | — | Newline-separated globs to exclude. |\n| `max-bytes` | `200000` | Skip individual files larger than this. |\n| `no-content` | `false` | Diff-only output, no full file content (smaller pack). |\n| `output-path` | `prpack-context.md` | Where to write the packed file. |\n| `upload-artifact` | `true` | Upload the packed file as a workflow artifact. |\n| `post-summary-comment` | `true` | Post a summary comment on the PR. |\n\n## Outputs\n\n| Output | Description |\n|---|---|\n| `output-path` | Path to the packed markdown. |\n| `size-bytes` | Size of the packed markdown in bytes. |\n| `files-changed` | Number of files included in the pack. |\n\n## Recipes\n\n**Skip the comment, just upload the artifact.**\n\n```yaml\n- uses: Lucas2944/prpack-action@v1\n  with:\n    post-summary-comment: 'false'\n```\n\n**Diff-only for huge PRs.**\n\n```yaml\n- uses: Lucas2944/prpack-action@v1\n  with:\n    no-content: 'true'\n```\n\n**Use your own preset.**\n\nDrop a `.prpack/security.yml` (or wherever you like) into your repo:\n\n```yaml\npreface: |\n  This PR touches our auth flow. Focus the review on input validation,\n  authorization checks, and token handling.\nreviewPrompt: |\n  You are a security reviewer. For every issue you find, give file:line,\n  severity (CRITICAL / HIGH / MEDIUM / LOW), why it matters, and a\n  concrete fix.\n```\n\nThen point the action at it:\n\n```yaml\n- uses: Lucas2944/prpack-action@v1\n  with:\n    config: .prpack/security.yml\n    include-tests: 'true'\n```\n\n**Exclude generated paths.**\n\n```yaml\n- uses: Lucas2944/prpack-action@v1\n  with:\n    exclude: |\n      pnpm-lock.yaml\n      dist/**\n      **/*.snap\n```\n\n## Why\n\nPasting a raw diff into a model gets you generic feedback. The model can't see the rest of the file, so it pattern-matches on the diff and says \"looks good\" to changes that broke things outside the diff. Adding the full post-change content of every touched file is a one-line fix that turns useless reviews into reviews that catch real bugs. This action does it for you on every PR.\n\n## Permissions\n\nThe action needs `contents: read` to run `git diff`. It needs `pull-requests: write` only if `post-summary-comment` is `true` (the default). For PRs from forks, GitHub-issued tokens are read-only by default — set the workflow to `pull_request_target` and trust accordingly, or disable comments.\n\n## How it works\n\nIt's a composite action. Internally it runs:\n\n```sh\nnpx -y github:Lucas2944/prpack --base \u003cbase\u003e --head \u003chead\u003e --out prpack-context.md ...\n```\n\nThen uploads the file with `actions/upload-artifact@v4` and posts the summary comment with `gh pr comment`. No new dependencies in your repo, no Docker container.\n\n## Curated review presets\n\nFor four ready-made review-style presets (security / performance / tests / architecture) plus a one-page workflow guide on getting useful reviews out of LLMs, see the [prpack Pro Pack](https://scottthurman89.itch.io/prpack) — free or pay-what-you-want. The action stays MIT.\n\n## License\n\nMIT.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLucas2944%2Fprpack-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLucas2944%2Fprpack-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLucas2944%2Fprpack-action/lists"}