nilo-pr
Use when Stefan says /nilo-pr or asks to review/double-review a NILO PR with OMP in Herdr — full self-contained runbook for worktree + Herdr workspace +…
Skill by choephix
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/choephix-nilo-pr
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/nilo-pr
What's inside
- Skill name
nilo-pr- Description
- Use when Stefan says /nilo-pr or asks to review/double-review a NILO PR with OMP in Herdr — full self-contained runbook for worktree + Herdr workspace + two-OMP full PR review, plus an OPTIONAL second tab of two-OMP existing-comment validation when comments are requested. Launch and verify, no edits.
- License
- MIT
- Instructions
- 257 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: "nilo-pr" does not match folder "nilo-pr-hermes-june"
- body: contains an absolute path from the author's machine
Files (1)
- SKILL.md
SKILL.md (first lines)
# /nilo-pr — NILO PR Review Runbook (self-contained)
This skill is the single entrypoint for Stefan's NILO PR review workflow. **You should not need to read any other skill to execute the happy path** — every command, path, model slug, and verification step you need is here. Only go load a related skill (`nilo-worktree-setup`, `herdr-omp`, `pr-review-two-omp`, `pr-comment-review-two-omp-herdr`, `github-operations`) if this skill is genuinely missing information for an edge case, or a step fails in a way this runbook doesn't cover. If you do find a gap, patch this skill afterward.
## What Stefan Asks For
Default request (a PR URL): **double-review the full PR diff** with two independent OMP reviewers (GPT + Opus).
Add-ons he may request:
- **"in a new tab, check the comments"** / **"validate the Cubic comments"** → ALSO run the OPTIONAL comment-validation sub-task: a second Herdr tab with two more OMP panes that validate the *existing* PR comments (usually Cubic), deciding valid / bullshit / partial. **Only do this part if comments are explicitly requested.** If he only asks for a PR review, build just one tab with two panes and stop there.
Both sub-tasks share the same worktree and Herdr workspace. The agents are **scouts, not editors**: no file edits, no commits, no GitHub posting, no comment resolution.
## Glossary / Conventions (memorize)
- NILO repo: `nilo-technologies/Nilo`, source checkout at `~/workspace/nilo`.
- Worktrees live under `~/workspace/nilo-worktrees/`.
- Worktree helper: `~/workspace/create-nilo-worktree.sh <branch> [folder-name]`.
- OMP binary: `~/.bun/bin/omp`, needs Bun from mise on PATH (see below).
- Default models: GPT = `openai-codex/gpt-5.5:xhigh`, Opus = `anthropic/claude-opus-4-8:xhigh`. Only deviate if Stefan names a model. Cursor Opus fallback = `cursor/claude-opus-4-8-xhigh` if native Anthropic auth is unavailable.
- Launch OMP in **normal TUI** (watchable), `--auto-approve`. Do **not** use `--mode json` for Herdr panes Stefan watches.
- Artifacts (only if asked): under `~/workspace/nilo/.agents-local/docs/artifacts/<YYYY-MM-DD dddd>/`, following `/mnt/obsidian-vault/Workspace/Hermes/HOW_TO_WRITE_VAULT_ARTIFACTS.md.md`. Never `.agents-local/artifacts/`.
### PATH export (prepend to every OMP command)
```bash
export PATH="$HOME/.local/share/mise/shims:$HOME/.local/share/mise/installs/bun/1.3.14/bin:$HOME/.bun/bin:$PATH"
```
If `omp` says `env: 'bun': No such file or directory`, this PATH is missing.
## Step 1 — Resolve PR + Branch
```bash
cd $HOME/workspace/nilo
gh pr view <PR> --repo nilo-technologies/Nilo \
--json headRefName,headRefOid,baseRefName,title,body,url,files,author
git worktree list --porcelain # check for an existing worktree on the head branch
```
Capture `headRefName` (branch), `headRefOid` (exact SHA), `baseRefName` (usually `main`).
## Step 2 — Create / Reuse the Worktree
If a clean worktree already exists on the PR head branch, reuse it. Otherwise create one. Name the folder descriptively, e.g. `pr-<PR>-<short>-review`:
```bash
cd $HOME/workspace
./create-nilo-worktree.sh <head-branch> pr-<PR>-<short>-review
```
The helper assigns a PORT, symlinks `.agents-local`, runs hijack, and runs `pnpm install`.
### pnpm-missing pitfall (common)
The helper calls `pnpm install`. If it fails immediately with `Error: pnpm is not installed or not on PATH`, retry with a temporary shim using the version in `package.json` `packageManager`:
```bash
cd $HOME/workspace
TMPBIN=$(mktemp -d)
printf '#!/usr/bin/env bash\nexec npx -y pnpm@10.14.0 "$@"\n' > "$TMPBIN/pnpm"
chmod +x "$TMPBIN/pnpm"
PATH="$TMPBIN:$PATH" ./create-nilo-worktree.sh <head-branch> pr-<PR>-<short>-review
```
Confirm the actual version: `node -p "require(require('node:os').homedir() + '/workspace/nilo/package.json').packageManager"`. The `Failed to create bin ... isolated-environments / deployment-tools / vercel-deployment` warnings are benign (unbuilt workspace tools); the install still completes.
### Verify worktree before launching
```bash
cd $HOME/workspace/nilo-worktrees/pr-<PR>-<short>-review
pwd; git branch --show-current; git status --short | wc -l; git rev-parse HEAD
gh pr view <PR> --repo nilo-technologies/Nilo --json headRefOid --jq .headRefOid
readlink .agents-local # must be ~/workspace/nilo/.agents-local
```
Local HEAD must equal PR `headRefOid` (unless Stefan asks for a different revision); status must be clean; `.agents-local` must be the symlink.
## Step 3 — Gather PR Context Into /tmp
```bash
mkdir -p /tmp/pr<PR>
gh pr view <PR> --repo nilo-technologies/Nilo \
--json headRefName,headRefOid,baseRefName,title,body,url,files,author > /tmp/pr<PR>/pr-metadata.json
gh pr diff <PR> --repo nilo-technologies/Nilo > /tmp/pr<PR>/diff.patch
# The two comment files are only needed for the OPTIONAL comment-validation sub-task:
gh api repos/nilo-technologies/Nilo/pulls/<PR>/comments --paginate > /tmp/pr<PR>/review-comments.json
gh api repos/nilo-technologies/Nilo/issues/<PR>/comments --paginate > /tmp/pr<PR>/issue-comments.json
```
When comments are requested, pull BOTH `/pulls/<PR>/comments` (inline) and `/issues/<PR>/comments` (conversation). Print a compact index to separate substantive comments from administrative ones (bot/deploy/linear/vercel):
```bash
jq -r '.[] | "id=\(.id) path=\(.path // "?") line=\(.line // .original_line // "?")\n\(.body)\n---"' /tmp/pr<PR>/review-comments.json
```
## Step 4 — Write the Prompt File(s)
Always write the full-review prompt. Write the comment-validation prompt **only if** comments were requested. Both forbid edits, GitHub posting, and comment resolution; both point at the `/tmp/pr<PR>/` context files.
### 4a. Full PR review prompt → `/tmp/pr<PR>/full-review-prompt.md`
```text
You are one of two independent OMP reviewers. Stefan wants independent model disagreement, so do not optimize for consensus.
Repository: nilo-technologies/Nilo
Worktree: <absolute worktree path>
PR: #<PR> — <url>
Title: <title>
Base branch: <base> Head branch: <head> Head SHA: <sha>
Constraints:
- MAKE NO EDITS. No file changes, commits, formatters, autofix, or GitHub posting.
- Review the PR diff against base, not the whole codebase from scratch.
- Do not run tests unless necessary; if you do, use NILO-safe worker limits (--maxWorkers=4 --workerIdleMemoryLimit=1.5G) and never run autofixers.
- Artifact (only if asked): ~/workspace/nilo/.agents-local/docs/artifacts/<YYYY-MM-DD dddd>/, per /mnt/obsidian-vault/Workspace/Hermes/HOW_TO_WRITE_VAULT_ARTIFACTS.md.md.
Context files: /tmp/pr<PR>/pr-metadata.json, /tmp/pr<PR>/diff.patch, /tmp/pr<PR>/review-comments.json, /tmp/pr<PR>/issue-comments.jsonFrom choephix/my-agents, MIT.
More from choephix/my-agents
- 0.559score
pr-description
choephix
Use when writing or revising a pull request description, or posting any PR comment, review or reply, outside the Nilo repo.
SkillAFreshness: AClaude Code +9 - 0.553score
pr-byline
choephix
Byline rule for AI-authored PR comments.
SkillAFreshness: AClaude Code +9 - 0.551score
pr-description
choephix
Use when writing or revising a pull request description.
SkillAFreshness: AClaude Code +9 - 0.550score
how-to-write-pr-description
choephix
Use before writing or editing a PR description.
SkillAFreshness: AClaude Code +9 - 0.539score
generate-with-openrouter
choephix
Use only when the user explicitly requests OpenRouter, or explicitly names a bundled OpenRouter model, for image generation or image editing.
SkillAFreshness: AClaude Code +9 - 0.539score
generate-with-fal
choephix
Use only when the user explicitly requests fal or fal.ai, or explicitly names a bundled Fal model, for image generation, image editing, background removal…
SkillAFreshness: AClaude Code +9 - 0.529score
messaging-gateway-operations
choephix
Use when configuring or troubleshooting Hermes messaging gateway behavior across chat platforms: bot connectivity, group/DM routing, mention gates…
SkillBFreshness: BClaude Code +9 - 0.529score
hermes-model-config
choephix
Use when Stefan asks to add, rename, remove, or verify a Hermes model alias, change the main/auxiliary model, or set up a model route/provider.
SkillBFreshness: BClaude Code +9 - 0.528score
adversarial-omp
choephix
Use when asked for high-confidence reasoning by running adversarial ai sessions against the same task
SkillBFreshness: BClaude Code +9 - 0.523score
herdr-multiplexer
choephix
Use when you need to interact with `herdr` (pronounced like "herder")
SkillBFreshness: BClaude Code +9 - 0.521score
file-backed-helper-apps
choephix
Build and evolve small local helper web apps whose routes read real project/workspace files from explicit roots, without prematurely adding databases or write…
SkillBFreshness: BClaude Code +9 - 0.520score
council
choephix
Use when Stefan invokes /council to fan one query out to GPT, Claude, and Gemini Pro via OMP and relay each completed answer separately.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Oct 20, 2026 (8 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/choephix/my-agents
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from choephix
- 0.559score
pr-description
choephix
Use when writing or revising a pull request description, or posting any PR comment, review or reply, outside the Nilo repo.
SkillAFreshness: AClaude Code +9 - 0.553score
pr-byline
choephix
Byline rule for AI-authored PR comments.
SkillAFreshness: AClaude Code +9 - 0.551score
pr-description
choephix
Use when writing or revising a pull request description.
SkillAFreshness: AClaude Code +9 - 0.550score
how-to-write-pr-description
choephix
Use before writing or editing a PR description.
SkillAFreshness: AClaude Code +9 - 0.539score
generate-with-fal
choephix
Use only when the user explicitly requests fal or fal.ai, or explicitly names a bundled Fal model, for image generation, image editing, background removal…
SkillAFreshness: AClaude Code +9 - 0.539score
generate-with-openrouter
choephix
Use only when the user explicitly requests OpenRouter, or explicitly names a bundled OpenRouter model, for image generation or image editing.
SkillAFreshness: AClaude Code +9
Cite this page
nilo-pr skill. Agent Mart. https://agentmart.dev/skills/choephix-nilo-pr (last updated 2026-10-24)