Skip to content
cccskills
FreePublished on GitHub

inline-pr-comments

Post a single consolidated PR review with summary and inline comments. Use this skill to deliver code review feedback as one unified review per run.

The English summary is being prepared. Showing the original description.

Works withGitHub
See how to install

Files included (1)

  • SKILL.md4.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Consolidated PR Review Skill

Use this skill to submit code review feedback as a single consolidated GitHub review containing both the summary body and all inline comments.

When to Use

  • After completing a code review (use with /code-review, /security-review, /tob-review)
  • When you have specific line-by-line feedback to deliver

Instructions

Submit one consolidated review per run using the GitHub API. Do NOT post inline comments individually. Each run produces a new review — nothing is overwritten.

Step 1: Fetch Prior Review Context

Before reviewing, read existing reviews and comments on the PR for context:

# Fetch existing reviews (summaries)
gh api --paginate "repos/$GITHUB_REPOSITORY/pulls/$PR_NUMBER/reviews" --jq '.[] | {user: .user.login, state: .state, body: .body}'

# Fetch inline review comments
gh api --paginate "repos/$GITHUB_REPOSITORY/pulls/$PR_NUMBER/comments" --jq '.[] | {user: .user.login, path: .path, line: .line, body: .body}'

# Fetch general PR discussion comments
gh api --paginate "repos/$GITHUB_REPOSITORY/issues/$PR_NUMBER/comments" --jq '.[] | {user: .user.login, body: .body}'

Use this context to:

  • Skip issues already raised — don't re-flag something a prior review already pointed out
  • Reference prior discussions — e.g. "As noted in the previous review, ..."
  • Flag unresolved issues — if a prior review raised something that still isn't fixed, note it briefly (e.g. "Still unresolved from prior review: ...")
  • Avoid contradictions — don't suggest the opposite of what a human reviewer requested

Re-fetch immediately before submitting. Other reviewers may be reviewing concurrently. Critically, the GitHub API does not expose a reviewer's draft/pending comments until they submit — so you can post a review seconds before a concurrent reviewer submits theirs and never have seen their notes. Re-run the fetch right before Step 4, and state the HEAD commit your review is based on in the body (e.g. "Reviewed at <sha>") so readers know the snapshot.

Step 2: Collect All Findings

Complete the full review. Collect:

  • Summary — Overall assessment, architecture concerns, non-diff observations
  • Inline comments — Specific issues on changed lines (path, line, body)

Step 3: Build Review JSON

Write a JSON file to /tmp/review.json:

{
  "body": "## Review Summary\n\nOverall assessment here.\n\n## Observations Outside This PR\n- `file:line`: description",
  "event": "COMMENT",
  "comments": [
    {
      "path": "src/file.ts",
      "line": 42,
      "body": "Issue description here"
    },
    {
      "path": "src/other.ts",
      "start_line": 10,
      "line": 15,
      "body": "Multi-line comment"
    }
  ]
}

Fields:

  • body — Markdown review summary (required)
  • event — Always "COMMENT" (never APPROVE or REQUEST_CHANGES)
  • comments — Array of inline comment objects (can be empty if no inline findings)
    • path — File path relative to repo root
    • line — Line number in the NEW version of the file
    • start_line + line — For multi-line comments
    • body — Markdown-formatted feedback

Step 4: Submit the Review

gh api "repos/$GITHUB_REPOSITORY/pulls/$PR_NUMBER/reviews" --input /tmp/review.json

The GITHUB_REPOSITORY and PR_NUMBER environment variables are set by the CI workflow.

Limitations

  • Inline comments can only target lines in the diff (changed/added lines)
  • Comments targeting unchanged lines will cause the API call to fail
  • If unsure whether a line is in the diff, put the finding in the summary body instead

Handling Non-Diff Findings

Issues in code NOT changed by the PR go in the review body under a dedicated section:

## Observations Outside This PR

- `src/utils/foo.ts:142`: Pre-existing null check missing
- `src/core/bar.ts:78-82`: Similar pattern to line 45 issue

Feedback Guidelines

Feedback TypeIn Diff?Where to Put It
Specific code issueYescomments array entry for that line
Pattern repeated across filesYesFirst occurrence in comments + note others in body
Related issue foundNobody under "Observations Outside This PR"
Pre-existing bug discoveredNobody (consider separate issue if critical)
Overall architecture concernN/Abody

Be concise. Group minor style issues together. Never use APPROVE or REQUEST_CHANGES.

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

Write a changeset file in the `hyperlane-registry` repo for a PR that adds, updates, or modifies warp route config / chain metadata / addresses. Canonical pattern — never run the interactive `pnpm changeset` CLI; write the file directly. Referenced by any skill that opens a registry PR.

The English summary is being prepared. Showing the original description.

hyperlane-xyz/hyperlane-monorepo77Updated Oct 22, 2026

Trigger Docker image builds for Hyperlane agent, monorepo, or node service images. Use when the user wants to build new Docker images for a branch, commit, or tag.

The English summary is being prepared. Showing the original description.

hyperlane-xyz/hyperlane-monorepo77Updated Oct 22, 2026

The low-level on-chain probes for identifying what an owner address is — cast code → EOA / EIP-7702-delegated EOA / contract, VERSION() → Gnosis Safe, read-only get-owner-ica.ts derive → ICA derivation, getAccountInfo → Sealevel account existence — with how to interpret each result. The primitive layer beneath validate-owners / resolve-artifacts / update-owners, which each apply their own per-chain or per-artifact policy on top.

The English summary is being prepared. Showing the original description.

hyperlane-xyz/hyperlane-monorepo77Updated Oct 22, 2026

Review code changes using Hyperlane monorepo coding standards. Use when reviewing PRs, checking your own changes, or doing self-review before committing.

The English summary is being prepared. Showing the original description.

hyperlane-xyz/hyperlane-monorepo77Updated Oct 22, 2026

Debug why a Hyperlane message is not being processed. Use when given a message ID or explorer URL to investigate delivery failures, gas estimation errors, validator issues, or other processing problems.

The English summary is being prepared. Showing the original description.

hyperlane-xyz/hyperlane-monorepo77Updated Oct 22, 2026

Debug RPC provider health issues for a chain. Use when alerts mention RPC failures, high latency, stale blocks, or provider errors. Diagnoses the issue and recommends fixes.

The English summary is being prepared. Showing the original description.

hyperlane-xyz/hyperlane-monorepo77Updated Oct 22, 2026

See all skills by hyperlane-xyz

Report a problem with this skill