nebula: Skill for Claude Code

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

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

Review a pull request by reading alone — its diff, description, CI state, the surrounding code at base and head, and the MEMORY LOG for the area — and leave one review comment on the PR that weighs, in this order, the security and production-merge risk of the change, its performance cost, and whether it follows the…

Skill for Claude CodeCodex

Written for Claude Code and Codex: user-invocable in frontmatter, but also reads ~/.codex or $CODEX_HOME. Also seen: reads .claude/ paths; mentions Claude Code; mentions Codex.

This is AgentSystemLabs/nebula's own configuration. It tells Claude Code and Codex 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, Codex.

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.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.svg" alt="Measured on agentmods" height="20"></a>
Per session 149 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,516 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.
Origin unknown 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.00149 $0.04516
Opus 5 $0.00075 $0.02258
Sonnet 5 $0.00030 $0.00903
Haiku 4.5 $0.00015 $0.00452

Measured today against content hash 5e0cf07be176, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, 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 today.

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.

grep -n '<TERM>' .claude/memory/gotchas.md

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 · 251 lines

How it starts

The opening of the file, as written. The whole thing — 251 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, with one carve-out: the SELF-IMPROVING LOOP's own files — .claude/MEMORY.md, .claude/memory/, TERMS.md — which NEBULA-MEMORY and PROJECT TERMS write after the review is posted, as on every other task. 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 · 251 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. today 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 (106 stars, last pushed today), licensed MIT. It adds 149 tokens to every session and 4,516 once invoked, about $0.0007 per session on Opus 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

remember

Review the current conversation and capture valuable knowledge — best practices, coding conventions, architecture decisions, workflows, and user feedback — into persistent memory (AGENTS.md) or reusable skills. Use when the user says: (1) remember this, (2) save what we learned, (3) update memory, (4) capture…

langchain-ai/deepagents · 71 tokens

memory-dream

Memory consolidation protocol. Reviews all stored memories, merges duplicates, removes noise and credentials, rewrites unclear entries, and enforces TTL expiration. Use when the user asks to clean up, consolidate, or review their memories. Also triggers automatically after sufficient activity (configurable).

mem0ai/mem0 · 58 tokens

memory-reviewer

Reviews stored memory quality by detecting duplicates, contradictions, and stale entries with actionable recommendations. Use when search results seem conflicting, before running dream consolidation, or for periodic memory hygiene audits.

mem0ai/mem0 · 40 tokens

md-audit

Read-only code quality audit — scan the current working directory for common issues (bugs, dead code, security hotspots, missing error handling) and return a prioritised findings report. No files are edited. Use when asked to "audit the code", "quick audit", "find issues", "code scan", or "what's wrong with this…

chaitanyagiri/munder-difflin · 85 tokens

memory-to-skill

Turn workflows from your MemSearch memory into reusable skills. Use when the user asks to make/create/extract/distill a skill from what they just did or from past work, review skill candidates, install a distilled skill, or 'turn this into a skill'. Manages MemSearch procedural-memory candidates under…

zilliztech/memsearch · 82 tokens

mindos

MindOS: local knowledge assistant & shared KB. Keeps decisions, notes, SOPs, debugging lessons, research findings, preferences across sessions/agents. Core: save notes, search KB, organize files, run workflows, review, append CSV, hand off context, distill lessons. NOT for app source or paths outside KB. Triggers…

GeminiLight/MindOS · 136 tokens