Skip to content
cccskills
FreePublished on GitHub

pr

Review a pull request for bugs, suspicious code, dependency and workflow risks, and project-specific issues. Get a practical merge recommendation, focused check results, and clear findings before deciding whether to merge.

OriginalShow the original description

Review a new or open pull request for this repository with an adversarial security and quality lens. Use when the user says "/pr", "/pr-review", "check the new PR", "is this PR safe to merge", "look for malicious code", "review outside contribution", "should I merge this PR", or asks for reasons not to merge a pull request.

jtenniswood/espcontrol1,120 stars(GitHub 1,120 + cccskills 0)
Works withGitHub

Run score Not tested

See how to install

Good for

  • Assess whether an open pull request is safe to merge
  • Inspect an outside contribution for suspicious changes
  • Find bugs or missing checks in a proposed change

Files included (2)

  • SKILL.md5.5 KB
  • agents/openai.yaml272 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

/pr or /pr-review

Overview

Assess a pull request before merge. Focus on bugs, suspicious behavior, malicious code, supply-chain risk, broken project conventions, missing tests, and any reason the repo owner should wait before merging.

Default to review only. Do not merge, push fixes, approve the PR, or close linked issues unless the user explicitly asks. The repo owner wants to test changes before issues are closed.

Workflow

1. Identify the PR

Use the PR number or URL if the user provides one. Otherwise inspect open PRs and review the newest one, clearly saying that assumption.

Prefer GitHub connector tools when available. Otherwise use gh:

gh pr list --state open --limit 10 \
  --json number,title,author,createdAt,updatedAt,isCrossRepository,headRefName,baseRefName,url
gh pr view <number> \
  --json number,title,author,body,baseRefName,headRefName,isCrossRepository,files,commits,mergeStateStatus,statusCheckRollup,reviews,url
gh pr diff <number> --name-only
gh pr diff <number> --patch

Record the PR title, author, URL, base branch, source branch, whether it comes from a fork, changed files, diff size, existing CI state, and whether it touches release, firmware, workflow, dependency, generated, or web delivery paths.

2. Protect Local Work

Check the working tree before checkout or tests:

git status --short --branch

If there are local changes, do not overwrite or revert them. Review with gh pr diff when possible. Ask before checking out a PR if local changes might be affected.

3. Inspect for Malicious or Suspicious Changes

Treat outside contributions and dependency/workflow changes as higher risk until they are understood. Look especially for:

  • New network calls, telemetry, tracking, external downloads, curl/wget usage, remote scripts, or branch-based dependencies
  • GitHub Actions permission expansion, secret exposure, pull_request_target, unpinned third-party actions, or changed release credentials
  • Dependency changes, lockfile churn, install scripts, typosquatting, package manager config changes, or vendored/minified code
  • Obfuscated code, encoded payloads, unexplained binaries, generated files that do not match their source, or large unrelated rewrites
  • Changes to OTA behavior, firmware manifests, update URLs, release assets, GitHub Pages output, or Home Assistant service calls
  • Unsafe parsing, string escaping issues, unchecked indexes, buffer sizing, memory lifetime, LVGL object lifetime, or shell command construction
  • Backward-incompatible config changes, silent defaults, or user-visible behavior changes with no docs or migration note

Do not accuse the contributor of intent unless there is direct evidence. Say "suspicious", "high risk", or "could allow" when intent is unknown.

4. Review Correctness and Fit

Read the PR description, changed files, and surrounding code. Classify the change so checks match the affected area:

  • Docs: accuracy, broken links, outdated examples, docs build
  • Web UI: escaping, state handling, generated output, layout, config save and load behavior
  • Firmware YAML: ESPHome schema, substitutions, includes, device coverage, generated slot wiring
  • C++ component: bounds checks, ownership, LVGL lifetime, service calls, compile risk
  • Icons/fonts/timezones: generated asset consistency and validation scripts
  • CI/release/dependencies: permissions, secrets, action pinning, lockfile integrity, release behavior

Prioritize merge-blocking defects and practical risk over style comments.

5. Run Focused Checks

Run checks relevant to the changed files. Explain skipped checks plainly.

Common checks:

npm run check:config
python3 scripts/build.py --check
python3 scripts/generate_device_slots.py --check
python3 scripts/check_timezones.py
npm run docs:build
npm audit --json

Use the compile skill when firmware, common YAML, device YAML, or C++ changes could affect firmware builds and the user wants merge-level confidence.

6. Decide Whether to Merge

Choose exactly one recommendation:

  • Merge: No meaningful findings, relevant checks pass, and residual risk is low.
  • Merge after small fixes: The PR is basically sound but needs minor, specific changes first.
  • Request changes: There are bugs, stale generated files, missing tests, or documentation gaps that should be fixed before merge.
  • Hold: There is suspicious behavior, dependency/release/workflow risk, or a maintainer decision needed before the PR is safe to merge.

Output Format

Lead with findings when there are bugs or risks. Keep the explanation approachable for a technical non-developer.

Recommendation: <merge / merge after small fixes / request changes / hold>

What changed:
- <plain-English summary>

Findings:
- <severity, file/line, issue, impact, suggested fix>

Security and trust notes:
- <malicious-code, supply-chain, workflow, secret, release, or external-call risk>

Checks run:
- <command>: <pass/fail/skipped and why>

Questions or decisions:
- <only if needed>

If there are no findings, say that clearly and name any checks not run or residual risk that still remains.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Preview completed Git branches and worktrees that are safe to remove, then clean them up locally. With an additional option, delete matching remote branches on GitHub. The workflow skips protected branches, open pull requests, and worktrees with uncommitted changes.

  • Removing local branches after pull requests merge
  • Tidying completed worktrees safely
  • Deleting merged GitHub branches when requested
jtenniswood/espcontrol1.1KUpdated Oct 27, 2026

Find local Git worktree folders whose branches or pull requests have merged into main, then preview which clean, inactive folders can be removed. The bundled script defaults to a dry run and requires an explicit apply option to perform cleanup.

  • Previewing merged worktree folders for cleanup
  • Tidying old feature branch directories
  • Removing merged PR worktrees while keeping branch refs
jtenniswood/espcontrol1.1KUpdated Oct 27, 2026

compile

FreeSummary

Compile ESPHome firmware for every listed device using the version pinned by the repository and Docker. When a build fails, inspect the reported YAML or configuration issue, fix its source, and retry until each device compiles.

  • Checking firmware builds before committing
  • Finding YAML or configuration errors
  • Compiling all listed devices with Docker
jtenniswood/espcontrol1.1KUpdated Oct 27, 2026

docs-review

FreeSummary

Check a code change for missing, outdated, excessive, or misplaced documentation. Identify only actionable gaps, explain who needs the information, and suggest the smallest useful update and a suitable existing documentation location.

  • Check whether a feature change needs user documentation
  • Review documentation coverage in a pull request
  • Find outdated or misplaced docs related to a code change
jtenniswood/espcontrol1.1KUpdated Oct 27, 2026

Expert Review

FreeSummary

Review a codebase and receive ranked recommendations for maintainability, consistency, reuse, quality, and safer upgrades. Findings are explained in plain language with evidence, user impact, migration approaches, risk controls, and estimated effort; the review does not make changes by default.

  • Assessing code quality and consistency
  • Finding duplication and reuse opportunities
  • Planning safer upgrades or larger refactors
jtenniswood/espcontrol1.1KUpdated Oct 27, 2026

expert-reset

FreeSummary

Review a project as if rebuilding it today while keeping its current user experience as the target. Produce evidence-based architecture and migration recommendations, explain tradeoffs in plain language, and keep the work research-only unless implementation is requested separately.

  • Exploring a from-scratch architecture for a project
  • Comparing current structure with a reset design
  • Planning a staged migration without changing code
jtenniswood/espcontrol1.1KUpdated Oct 27, 2026

See all skills by jtenniswood

Report a problem with this skill