nebula: Skill for Claude Code

.claude/skills/pr-reviewer/SKILL.md

pr-reviewer is a skill for Claude Code from AgentSystemLabs/nebula. It costs 141 tokens per session (4,349 once invoked), scanned B, original, MIT.

A pull request reviewer that examines the change, its description, continuous-integration results, nearby code, and project memory without running the code. It leaves one review comment focused on security, production risk, performance, and codebase fit.

In plain words
What is it for?
Use it to review pull requests, identify security or merge risks, assess performance costs, and check whether the change follows existing project patterns.
Why use it?
It provides a safety check before a change is merged, especially when running the submitted code could be risky. It also keeps review findings focused on issues that could affect production.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter. Also seen: reads .claude/ paths; mentions Claude Code; reads ~/.codex paths.

This is AgentSystemLabs/nebula's own configuration. It tells Claude Code how to work on nebula itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything nebula configures →

Reuse

Borrowing it

Nothing to install: this file belongs to AgentSystemLabs/nebula. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/AgentSystemLabs/nebula/main/.claude/skills/pr-reviewer/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/AgentSystemLabs/nebula

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for pr-reviewer

README.md
[![agentmods](https://agentmods.dev/badge/skills/agentsystemlabs/nebula/pr-reviewer/github.svg)](https://agentmods.dev/skills/agentsystemlabs/nebula/pr-reviewer)
Your own site
<a href="https://agentmods.dev/skills/agentsystemlabs/nebula/pr-reviewer"><img src="https://agentmods.dev/badge/skills/agentsystemlabs/nebula/pr-reviewer/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for pr-reviewer

Your own site · 80×15
<a href="https://agentmods.dev/skills/agentsystemlabs/nebula/pr-reviewer"><img src="https://agentmods.dev/badge/skills/agentsystemlabs/nebula/pr-reviewer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 141 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,349 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 3 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 4 findings, up to high

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • high Supply Chain · line 11
    Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
    Fix: Avoid downloading and executing remote scripts. Use trusted packages from PyPI/npm. If remote fetch is required, verify checksums and use HTTPS.
  • high Agent Snooping · line 127
    Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.
    Fix: Remove all code or instructions that access agent configuration directories (.claude/, .codex/, .gemini/). If configuration values are needed, pass them explicitly as parameters or environment variabl
  • medium Tool Misuse · line 117
    Tool defaults are unsafe or overly permissive (e.g. disabled TLS verification, no authentication, world-writable permissions). Unsafe defaults widen the attack surface.
    Fix: Override unsafe defaults with secure settings (verify=True, auth required, restrictive permissions). Review and harden all tool configurations.
  • medium Rogue Agent · line 118
    Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
    Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00141 $0.04349
Opus 5.5 $0.00056 $0.01740
Sonnet 5.5 $0.00028 $0.00870
Haiku 4.5 $0.00014 $0.00435

Measured 1mo ago against content hash b1391ccb9953, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade B, and why

pr-reviewer scanned grade B with 3 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Downloads and executes remote codemediumSupply chain

curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.

with a composed argv and system prompt, runs `curl | sh` on remote hosts over NEBULA SSH, and migrates

Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.

Reads agent configuration directorieslowAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

checks), and every write into the user's own `~/.claude/settings*.json`, `~/.codex/hooks.json`,

Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

with a composed argv and system prompt, runs `curl | sh` on remote hosts over NEBULA SSH, and migrates
.claude/skills/pr-reviewer/SKILL.md · 246 lines

How it starts

The opening of the file, as written. The whole thing — 246 lines — stays where its author put it; the contents beside it link to each section on GitHub.

A pull request review here answers one question first: what happens to the people running nebula in production if this merges? Nebula is a DAEMON that owns every agent PTY on a developer's box, speaks to its TUI over an unauthenticated DAEMON SOCKET, installs MANAGED HOOKS into the user's own ~/.claude, ~/.codex, ~/.cursor and ~/.pi, spawns claude / codex / cursor-agent / pi with a composed argv and system prompt, runs curl | sh on remote hosts over NEBULA SSH, and migrates a SQLITE STORE on every user's disk at the first launch of a new binary. A wrong line in the wrong place is not a bug report; it is every user's sessions gone, or every user's shell running someone else's script. So the review weighs security and merge risk first and hardest, performance second, and fit with the codebase's patterns third — and says which of the three every finding belongs to.

The second rule shapes everything else: the reviewer reads; it never runs. Not the PR's code, not its tests, not the build, not the binary, not a script the PR adds. Three reasons, each sufficient on its own. A PR — above all one from a fork (isCrossRepository: true) — is untrusted input, and even cargo check executes its build.rs and proc-macros as you, with your gh token, ~/.claude and ssh keys in reach. The SHARED CHECKOUT belongs to several sessions at once, so a gh pr checkout, a merge or a stash yanks the tree out from under them. And a review that says "I ran the tests" asserts something the reader cannot audit anyway: CI's verdict is the test gate — and on this repo nothing on GitHub builds or tests a PR at all (claude-code-review.yml is the only PR workflow; release.yml runs on tags), which is itself a fact the review states. What reading cannot settle goes into the review as unsettled, named precisely enough that a human can run it. It is never quietly run.

Read, never run

Allowed — every one of these is a read: it touches no working tree and executes nothing from the PR.

gh pr view <n> --json …                          # metadata, description, files, checks, reviews
gh pr diff <n>                                   # the unified diff
gh pr checks <n>                                 # CI state as GitHub reports it (exit 8 = pending)
gh api repos/<owner>/<repo>/pulls/<n>/comments   # inline review comments — not a --json field
git fetch origin && git fetch origin pull/<n>/head   # refresh origin/<base>; the PR head lands in FETCH_HEAD, no ref, no checkout
git merge-base origin/<base> <headRefOid>        # the commit the PR branched from — origin/<base> has moved on since, and is not the base
git show <headRefOid>:<path>                     # the PR's whole file (the SHA is stable; FETCH_HEAD is not, other sessions fetch too)
git show <mergeBase>:<path>                      # the same file as the PR saw it — what `gh pr diff` is relative to
git log · git grep · grep · cat · sed -n · wc · diff   # over files, never through them

Forbidden, whatever the PR is — when a review seems to need one of these, it needs a human instead:

  • cargo anything, including cargo check, cargo fmt --check, cargo clippy, cargo metadata and cargo tree — build scripts and proc-macros run under all of them; make anything; the nebula binary or anything under target/; INSTALL.SH; python3, node, sh, bash, source on any file the PR adds or changes — reading a script means cat, not sh -n.
  • gh pr checkout, git checkout, git switch, git merge, git rebase, git apply, git cherry-pick, git stash, git worktree add, git reset — nothing that moves the SHARED CHECKOUT or creates a tree; editing or creating any file inside the repo. Nothing from the PR ever lands on disk; the review itself is written to the scratchpad, outside the repo.
  • gh pr review --approve, gh pr review --request-changes, gh pr merge, gh pr edit, gh pr close, gh pr comment — the skill posts exactly one --comment review and changes nothing else about the PR. Approval is a human's signature.

Read the full file on GitHub · 246 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago Changed · -5 lines · -8 tokens per session b1391ccb9953
  2. 1mo ago First seen · 251 lines · 149 tokens per session scan B 5e0cf07be176

Subscribe to this mod's changes

pr-reviewer is a skill published in the GitHub repository AgentSystemLabs/nebula (272 stars, last pushed 6d ago), licensed MIT. It adds 141 tokens to every session and 4,349 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it B with 3 findings (downloads and executes remote code, reads agent configuration directories, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-06.

Related

Other skills, from other repositories

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

openclaw/clawhub · 17 tokens

omh-code-review

This is an OMH code-review workflow skill, projected for Agent Skills hosts (Claude Code, Codex, Cursor, opencode, OpenClaw, pi).

rlaope/oh-my-hermes · 48 tokens

revdiff-plan

Review the last Codex assistant message (plan, analysis, or proposal) with inline annotations in a TUI overlay. Extracts the most recent response from Codex rollout files and opens it in revdiff for review and annotation. Activates on "revdiff-plan", "review plan with revdiff", "annotate plan", "review last response"…

umputun/revdiff · 84 tokens

re0-merge

Review and land an external contribution the way this suite does: gate it against the thesis, land it with the author's credit intact, complete a new skill rather than merging it raw, then approve, credit, and explain before closing. Use when reviewing a pull request, as any collaborator or maintainer, not only the…

LilMGenius/paperthin · 70 tokens

explore-unknowns

Guide the user through a quadrant walk that maps the unknowns of a task — open by listing the known knowns, then work through known unknowns, unknown knowns, and unknown unknowns one stage at a time, ending with a complete four-quadrant map in the user's hands. Use when a request is ambiguous or underspecified, the…

dzhng/skills · 162 tokens

asplos-writing-style

Use when drafting or revising ASPLOS prose — engineering the first two pages that rapid review actually reads, stating the cross-layer insight as one quotable sentence, structuring per-layer mechanism sections, writing bounded claims, and fitting everything into 11 self-contained pages that include figures and…

brycewang-stanford/Awesome-Journal-Skills · 65 tokens