Git Workflow
softmaple/softmaple
Softmaple Git branching, commits, pre-commit hooks, and pull requests.
Review the current PR branch and fix the findings in rounds until reviews come back clean.
$ npx skills add cdklabs/cdk-nextjs --skill pr-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cdklabs/cdk-nextjs pr-review --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/cdklabs/cdk-nextjs.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/pr-review .claude/skills/pr-review && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pr-review" agent skill from https://github.com/cdklabs/cdk-nextjs/tree/main/.claude/skills/pr-review into .claude/skills/pr-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-review", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/cdklabs/cdk-nextjs/tree/main/.claude/skills/pr-reviewType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add cdklabs/cdk-nextjs --skill pr-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cdklabs/cdk-nextjs pr-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cdklabs/cdk-nextjs.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/pr-review .agents/skills/pr-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pr-review" agent skill from https://github.com/cdklabs/cdk-nextjs/tree/main/.claude/skills/pr-review into .agents/skills/pr-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-review", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cdklabs/cdk-nextjs --skill pr-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cdklabs/cdk-nextjs pr-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cdklabs/cdk-nextjs.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/pr-review .cursor/skills/pr-review && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pr-review" agent skill from https://github.com/cdklabs/cdk-nextjs/tree/main/.claude/skills/pr-review into .cursor/skills/pr-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-review", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/cdklabs/cdk-nextjs.git --path .claude/skills/pr-review--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add cdklabs/cdk-nextjs --skill pr-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cdklabs/cdk-nextjs pr-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cdklabs/cdk-nextjs.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/pr-review .gemini/skills/pr-review && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pr-review" agent skill from https://github.com/cdklabs/cdk-nextjs/tree/main/.claude/skills/pr-review into .gemini/skills/pr-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-review", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install cdklabs/cdk-nextjs pr-reviewInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add cdklabs/cdk-nextjs --skill pr-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cdklabs/cdk-nextjs.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/pr-review .github/skills/pr-review && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pr-review" agent skill from https://github.com/cdklabs/cdk-nextjs/tree/main/.claude/skills/pr-review into .github/skills/pr-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-review", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cdklabs/cdk-nextjs --skill pr-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cdklabs/cdk-nextjs pr-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cdklabs/cdk-nextjs.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/pr-review .opencode/skills/pr-review && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pr-review" agent skill from https://github.com/cdklabs/cdk-nextjs/tree/main/.claude/skills/pr-review into .opencode/skills/pr-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-review", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pr-reviewReview the current PR branch and fix the findings in rounds until reviews come back clean.
PR Review is an agent skill from cdklabs/cdk-nextjs. Review the current PR branch and fix the findings in rounds until reviews come back clean. Each round, a fresh reviewer runs /code-review high, findings are triaged against a ledger and recorded decisions, accepted ones are fixed, verified and committed. Use when asked to review a PR to convergence, "review and implement it all", or to resume a previous pr-review run.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Pull requests. It works with Next.js, Amazon Web Services, React and Node.js. The repository describes itself as: Deploy Next.js on AWS with CDK. The licence is Apache-2.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit aadf654. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitpnpmghnpxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
PR Review loads about 2.4k tokens when it runs. Until then it costs about 95 tokens; SKILL.md has 1,353 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from cdklabs/cdk-nextjs at commit aadf654, republished under its Apache-2.0 licence (© cdklabs). 1,353 words, ~2,442 tokens.
.claude/skills/pr-review/SKILL.md (or your agent's skills folder).Loop: review → triage → fix → verify → commit, until a review finds nothing new or the round cap is hit. Everything stays local until the end: no pushes and no PR comments during the loop.
Arguments: optional PR number (defaults to the current branch's PR), and --rounds N (default 5, counting every review including the final full pass).
main. The working tree must be clean. If it isn't, stop and ask; do not git stash (the user keeps real work in the stash).gh pr view [PR#] --json number,title,baseRefName,headRefName. Run git fetch origin <baseRefName>.FULL_BASE=$(git merge-base origin/<baseRefName> HEAD)..claude/pr-review/<branch-with-slashes-as-dashes>.md (gitignored). If it exists, resume: read it, continue the round numbering, and keep every recorded outcome. Otherwise create it from the template at the bottom.UPSTREAM_SOURCES): if the branch mirrors, parses or calls code that lives outside this repo, have that code available at the version the branch targets. That covers a package's runtime (next itself, @next/routing), a restated upstream function (extractEtag), and upstream code no package ships, such as the next.js test harness whose @force-gate pragmas screen.mjs evaluates. Packages are in node_modules/<pkg>. Anything else needs a shallow clone at the matching tag, for example git clone --depth 1 --branch v<version> https://github.com/vercel/next.js /tmp/nextjs-<version>. Reuse a clone that already exists. Record the paths in the ledger header.MEMORY.md) and every memory describing a deliberate design choice (e.g. "X chosen over Y", "X is kept", "Y rejected"). Add a one-line summary of each to the ledger's Recorded decisions section. The triage step checks findings against these.Pick the range:
FULL_BASE..HEAD.<HEAD sha when the previous review started>..HEAD, which covers just the fix commits.Spawn one new general-purpose subagent each round. Never reuse an earlier reviewer, because it would anchor on its own earlier findings. Give it this prompt, filled in:
Review the changes in
<RANGE>on branch<branch>(PR #<n>:<title>) for correctness bugs. Invoke thecode-reviewskill with argshigh. Do not pass--commentor--fix. That skill may pick its own diff range (it tends to use@{upstream}...HEAD, or the remote PR, which lacks local commits). Compare the files it reviewed withgit diff --name-only <RANGE>. If they differ, or the skill doesn't say, also reviewgit diff <RANGE>yourself at the same rigor: read the surrounding code, not just the hunks. Do that review while the skill runs, then wait for the skill's results before you report. You can't send anything after you hand back, so results that arrive later are lost. Upstream sources, at the version this branch targets: <UPSTREAM_SOURCES>. A finding about how code outside this repo behaves must cite that code. Don't infer the behaviour ("presumably", "as in JS"). Filter the skill's findings; don't discard them wholesale:
- In range: on lines
<RANGE>changes. Verify each against the code and report it with your own findings.- Outside range: elsewhere in code this branch changes (
git diff <FULL_BASE>..HEAD). Verify each one too, and report it in a separate "outside range" list.- Noise: in uncommitted or unrelated files. Drop these. For a DELTA range: also check that each fix actually resolves the ledger finding it cites, and doesn't break callers outside the diff. Already decided. Don't re-raise these unless the code shows the fix is wrong or incomplete; if so, cite the ledger ID: <paste ledger rows (ID, location, finding, status) + Recorded decisions> Return a list. For each finding give:
file:line, a one-sentence defect, a concrete failure scenario, severity (high/medium/low), and the ledger ID it relates to (if any). Make no edits. If you find nothing, say so explicitly.
Record in the ledger: the round number, range type, range SHAs, and the raw count of findings. Outside-range findings are triaged in the same round as the rest and count toward its totals. If a reviewer reports without the skill's results anyway, note it in the ledger and make the next review a FULL pass.
Read the cited code for every finding before you classify it. If a finding rests on how code outside this repo behaves (a grammar's precedence, what Next.js passes to a hook), check that code in UPSTREAM_SOURCES before you mark it fix. A wrong fix costs a revert and another round. Then give it exactly one status:
| Status | When | Action |
|---|---|---|
duplicate | Same issue as an existing ledger row, with nothing new | Drop. Note the ID only |
invalid | The code shows the claim is false | Record the reason |
escalated | Contradicts a recorded decision; or would reverse a fix from an earlier round (oscillation); or the same location has already been fixed in 2+ rounds; or needs a product/API decision (public API break, new dependency, behaviour change users would notice) | Record it. Don't implement. Keep looping |
fix (revert) | Would reverse an earlier round's fix, and the code (this repo's, or upstream code in UPSTREAM_SOURCES) shows that fix was wrong. This isn't oscillation, because the earlier fix had no valid basis | Revert it. Mark the earlier row invalid (citing the code that proves it wrong) and this one fix |
fix | Everything else, at any severity: correctness, performance, simplification, style, test and docs findings | Implement |
Default to fix: the user has said "implement it all." Escalate only for the reasons in the table, not because a finding is minor: low-severity fixes rarely break anything, the next review catches it when one does, and unfixed ones add up.
fix finding. Match the surrounding code. Add or adjust tests when a finding describes a behaviour bug.pnpm compile if JSII sources (src/, excluding the bundled runtime code) or struct definitions changedpnpm bundle if src/adapter/, src/lambdas/ or src/nextjs-build/patch-fetch.js changedpnpm jest <affected test files>pnpm eslint (whole repo; no file args, no npx eslint)pnpm build (docgen hangs; CI regenerates API.md)escalated ("fix broke X: <error>"), and continue.fix: address review round <N> (use the test:/docs: prefix if that's all the round touched). The body is one line per fix: - <ledger ID>: <what changed>. Never pass --no-verify.fixed <short sha>, invalid: <reason>, escalated: <reason>).After each round, count the blocking findings: those triaged fix or escalated with severity medium or high. Low-severity findings are still fixed (or escalated) and recorded, but don't keep the loop going on their own. duplicate and invalid don't count.
pnpm test once.file:line, the finding, why it was escalated, and your recommendationgh pr comment <n> --body-file <file>.# pr-review ledger: PR #<n> <title>
Branch: <branch> · Base: origin/<base> @ <FULL_BASE short sha>
Upstream sources: <UPSTREAM_SOURCES, or "none">
## Recorded decisions
- <memory slug>: <one line>
## Rounds
| Round | Range | SHAs | Raw | New | Blocking | Fixed | Escalated | Commit |
|---|---|---|---|---|---|---|---|---|
## Findings
| ID | Round | Location | Finding | Status | Detail |
|---|---|---|---|---|---|
| R1-1 | 1 | src/adapter/cache-handler.ts:120 | … | fixed | a1b2c3d |© cdklabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/pr-review of cdklabs/cdk-nextjs.
Open the folder on GitHubat commit aadf654
PR Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| PR Review this skillcdklabs/cdk-nextjs | 111 | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Git Workflowsoftmaple/softmaple | 161 | — | ~814 | Automated safety check: Pass | Apache-2.0 | |
| Create PRvercel/next.js | 143k | — | ~943 | Automated safety check: Pass | MIT | |
| Nylas Nodejs Releasenylas/nylas-nodejs | 181 | — | ~1.6k | Automated safety check: Warn | MIT | |
| Senior Fullstackdavila7/claude-code-templates | 32k | 7 repos | ~1.1k | Automated safety check: Notes | MIT | |
| PRalamenai/terrae | 244 | — | ~767 | Automated safety check: Notes | MIT |
softmaple/softmaple
Softmaple Git branching, commits, pre-commit hooks, and pull requests.
vercel/next.js
Create Git branches, commits, pushes, and GitHub pull requests for Next.js.
nylas/nylas-nodejs
Prepares nylas-nodejs SDK releases on a versioned release branch with CHANGELOG updates, version bump, git tag, and PR body.
davila7/claude-code-templates
Comprehensive fullstack development skill for building complete web applications with React, Next.js, Node.js, GraphQL, and PostgreSQL.
alamenai/terrae
Commit, push, and open a pull request on GitHub. An agent skill from alamenai/terrae.
go-to-k/cdkd
Run /verify-pr checks, then create a GitHub PR if all pass. An agent skill from go-to-k/cdkd.
Categories
Review the current PR branch and fix the findings in rounds until reviews come back clean. PR Review is an agent skill from cdklabs/cdk-nextjs. Review the current PR branch and fix the findings in rounds until reviews come back clean.
PR Review fits situations like: asked to review a PR to convergence; review and implement it all; resume a previous pr-review run.
Run `npx skills add cdklabs/cdk-nextjs --skill pr-review -a claude-code`. Or copy the skill folder (.claude/skills/pr-review in cdklabs/cdk-nextjs) into .claude/skills/pr-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cdklabs/cdk-nextjs --skill pr-review -a codex`. Or copy the skill folder (.claude/skills/pr-review in cdklabs/cdk-nextjs) into .agents/skills/pr-review in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cdklabs/cdk-nextjs --skill pr-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pr-review, .gemini/skills/pr-review, .github/skills/pr-review and .opencode/skills/pr-review in your project.
Going by SKILL.md and its folder, PR Review needs the command-line tools its instructions call (git, pnpm, gh and npx). Our summary lists: Node.js.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
PR Review is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with PR Review: Git Workflow (softmaple/softmaple, 161 stars), Create PR (vercel/next.js, 143k stars), Nylas Nodejs Release (nylas/nylas-nodejs, 181 stars) and Senior Fullstack (davila7/claude-code-templates, 32k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cdklabs (a GitHub organization) maintains it in cdklabs/cdk-nextjs, which has 111 GitHub stars. The repository was last updated on October 8, 2026.
Source: cdklabs/cdk-nextjs on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.