Skip to main content

ci-code-review

Deep code review of a pull request using parallel analysis agents (semantic consistency, bugs, tech debt, security). USE FOR: - Reviewing PRs for bugs, security issues, and code quality - Analyzing new abstractions for consistency and correctness - Identifying tech debt and architectural concerns - Posting review comments to specific lines on GitHub TRIGGERS: - "review PR", "code review", "review changes" - "diff review", "PR feedback", "check PR" - "analyze diff", "critique code", "review code" - "pull request review", "GitHub PR review"

Jump to install

Source facts

Repository
a16z/jolt
Last source activity
July 25, 2026 at 01:47
Detected SKILL.md language
English
Stars
1,041
Forks
334

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions ยท Read-only preview
name
ci-code-review
description
Deep code review of a pull request using parallel analysis agents (semantic consistency, bugs, tech debt, security). USE FOR: - Reviewing PRs for bugs, security issues, and code quality - Analyzing new abstractions for consistency and correctness - Identifying tech debt and architectural concerns - Posting review comments to specific lines on GitHub TRIGGERS: - "review PR", "code review", "review changes" - "diff review", "PR feedback", "check PR" - "analyze diff", "critique code", "review code" - "pull request review", "GitHub PR review"
Provide a code review for the given pull request. Follow these steps: 1. **Eligibility Check** (Sonnet): Check if the PR (a) is closed, (b) is automated/trivial. If so, stop. 2. **PR Analysis** (Fable): View the PR and return: - Summary of the change and its purpose - List of new functions, types, enums, or abstractions introduced - For each new abstraction: its name, stated purpose (from comments/docs), and intended usage contract 3. **Parallel Deep Review** (4 Fable agents): Pass the PR summary and new abstractions list to each agent. a. **Semantic Consistency Agent**: For each new function/type/enum introduced: - Read its definition, documentation, and any comments describing when/how it should be used - Find ALL usages of that abstraction within the PR - Verify each usage matches the documented intent - Flag misuse: e.g., error-handling functions called for wrong error types, validation functions bypassed, enums used inconsistently - Pay special attention to: panic/error functions (when should they trigger?), unsafe blocks, security-sensitive operations b. **Deep Bug Analysis Agent**: Read the full context of modified files (not just diff lines). - Understand the data flow and control flow around changes - Check for logic errors, edge cases, off-by-one errors, resource leaks - Verify error handling is appropriate for each failure mode - Check that invariants are maintained across the changes c. **Tech Debt Removal Agent**: - Understand new abstractions that are introduced, new functions/types/enums - Identify possible future usecases for these things and understand whether abstractions meet future requirements - See which paradigms of Rust (or other language) development are used and whether they apply here - Identify possible improvements that would benefit long term maintainability of the code - Be an enjoyer of abstractions: generics, traits, dyn, enums, etc. d. **Security Reviewer Agent**: - Identify whether changes to the protocol do not break soundness - Identify possible attack vectors that are introduced with these changes - Check for input validation gaps at trust boundaries (user input, network data, file I/O, IPC) - Verify authentication/authorization checks are not bypassed or weakened - Look for injection risks: SQL, command, path traversal, template injection, deserialization - Check cryptographic usage: hardcoded secrets, weak algorithms, nonce reuse, timing side-channels - Verify resource limits: unbounded allocations, missing timeouts, denial-of-service vectors - Check concurrency: TOCTOU races, lock ordering, shared mutable state without synchronization 4. **Validate Issues** (MANDATORY โ€” do not skip): After collecting all issues from the 4 agents, validate every issue scored >= 50. For each issue from the agents: - For complex logic/semantic issues, reason through whether the bug is real and exploitable. - For issues you can verify mechanically (e.g., a failing test), prefer direct verification (run the test). Score each issue 0-100 AFTER validation: - 0: False positive, doesn't stand up to scrutiny, or pre-existing issue - 25: Might be real, but couldn't verify. Stylistic issues without explicit guidance. - 50: Verified real issue, but minor/nitpick. Not important relative to PR scope. - 75: Verified real issue that will impact functionality. Insufficient existing approach. - 100: Confirmed real issue that will happen frequently. Direct evidence confirms it. 5. **Post comments to PR**: Always post a single review to the PR so the author has confirmation that the review ran, regardless of whether issues were found. - When there are validated issues with score >= 50, include them in the `comments` array. - When there are none, post the review with an empty `comments` array and a body that briefly states no issues were found (1-2 sentences, same tone as the comment guidelines below โ€” concise, senior-engineer voice, no scores/severity labels/ceremony). Runs in CI โ€” do not pause, do not ask for user confirmation, do not list issues for approval. Build a JSON file and use the GitHub review API: ```bash # Write review JSON to a unique temp file (use $$ for PID to avoid collisions). # With issues: populate the comments array. Without issues: leave it empty ([]) and # write a short "nothing actionable" body. cat > "/tmp/pr-review-${PR_NUMBER}-$$.json" << 'EOF' { "commit_id": "<HEAD_SHA>", "event": "COMMENT", "body": "Short review summary (1-2 sentences). When no issues were found, state that plainly.", "comments": [ { "path": "relative/path/to/file.rs", "line": 42, "body": "Comment text โ€” see tone guidelines below" } ] } EOF # Post the review (all comments appear as a single review). Always run this call, # even when "comments" is []. gh api repos/{owner}/{repo}/pulls/{number}/reviews --method POST --input "/tmp/pr-review-${PR_NUMBER}-$$.json" ``` Key points: - Use a heredoc with `'EOF'` (quoted) to prevent shell interpolation of `$`, backticks, etc. - The `line` field refers to the NEW file line number (right side of diff) for added/modified lines. - Get the head SHA via `gh api repos/{owner}/{repo}/pulls/{number} --jq '.head.sha'`. - Get changed files via `gh api repos/{owner}/{repo}/pulls/{number}/files`. - Do NOT use `--raw-field` for the comments array โ€” it doesn't handle nested JSON. Always use `--input` with a file. **Comment tone**: Write like a senior engineer โ€” concise, direct, no ceremony. - NO scores, severity labels, or `**[Score X]**` prefixes - NO "Title + Explanation" structure โ€” just say the thing - Lead with what's wrong or what to consider, then why in 1-2 sentences max - When the fix is obvious, use a GitHub suggestion block in the comment body. Pick the lines to replace via `line` (end) and `start_line` (start) on the comment object, then put a ` ```suggestion ` fenced block in the body โ€” its content replaces those lines: ``` Poisoned mutex will panic all future callers. ```suggestion _guard: mutex.lock().unwrap_or_else(|e| e.into_inner()), ``` ``` For single-line suggestions, omit `start_line` (defaults to `line`). - Examples of good comments: - `"If only one of the three openings is missing, the dummy all-zero r_address hits this assert before take_missing_opening_error() runs. Consider a fallible check here."` - `"This leaves the original opening accessible after recording MalformedProof. Removing it too would prevent the verifier from using a stale claim within the stage."` - `"Poisoned mutex will panic all future callers."` (with a ` ```suggestion ` block for the fix) ## False Positives (skip these) - Pre-existing issues not introduced by this PR - Issues on lines not modified in the PR - Things linters/compilers catch (imports, types, formatting) - Pedantic nitpicks a senior engineer wouldn't flag - Intentional functionality changes related to PR purpose - General quality concerns (test coverage, docs) unless explicitly required ## Notes - Do NOT run builds/tests - CI handles that - Use `gh` for all GitHub interaction
View on GitHub