Pre-Release PR Triage
jamiepine/voicebox
Sorts a backlog of open pull requests into must-merge, candidate, superseded and deferred, writes a triage doc and works the merge loop before a release.
A skill your agent uses when checking out, running, previewing, reviewing, or validating a GitHub pull request locally in a safe worktree, including PR preview URLs, local screenshots, readiness…
$ npx skills add Undertone0809/rudder --skill pr-local-preview-maintainer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Undertone0809/rudder pr-local-preview-maintainer --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Undertone0809/rudder.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agent-skills-bak/maintainer/pr-local-preview-maintainer .claude/skills/pr-local-preview-maintainer && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pr-local-preview-maintainer" agent skill from https://github.com/Undertone0809/rudder/tree/main/agent-skills-bak/maintainer/pr-local-preview-maintainer into .claude/skills/pr-local-preview-maintainer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-local-preview-maintainer", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Undertone0809/rudder/tree/main/agent-skills-bak/maintainer/pr-local-preview-maintainerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Undertone0809/rudder --skill pr-local-preview-maintainer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Undertone0809/rudder pr-local-preview-maintainer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Undertone0809/rudder.git skills-src && mkdir -p .agents/skills && cp -r skills-src/agent-skills-bak/maintainer/pr-local-preview-maintainer .agents/skills/pr-local-preview-maintainer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pr-local-preview-maintainer" agent skill from https://github.com/Undertone0809/rudder/tree/main/agent-skills-bak/maintainer/pr-local-preview-maintainer into .agents/skills/pr-local-preview-maintainer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-local-preview-maintainer", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Undertone0809/rudder --skill pr-local-preview-maintainer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Undertone0809/rudder pr-local-preview-maintainer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Undertone0809/rudder.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/agent-skills-bak/maintainer/pr-local-preview-maintainer .cursor/skills/pr-local-preview-maintainer && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pr-local-preview-maintainer" agent skill from https://github.com/Undertone0809/rudder/tree/main/agent-skills-bak/maintainer/pr-local-preview-maintainer into .cursor/skills/pr-local-preview-maintainer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-local-preview-maintainer", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Undertone0809/rudder.git --path agent-skills-bak/maintainer/pr-local-preview-maintainer--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Undertone0809/rudder --skill pr-local-preview-maintainer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Undertone0809/rudder pr-local-preview-maintainer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Undertone0809/rudder.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/agent-skills-bak/maintainer/pr-local-preview-maintainer .gemini/skills/pr-local-preview-maintainer && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pr-local-preview-maintainer" agent skill from https://github.com/Undertone0809/rudder/tree/main/agent-skills-bak/maintainer/pr-local-preview-maintainer into .gemini/skills/pr-local-preview-maintainer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-local-preview-maintainer", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Undertone0809/rudder pr-local-preview-maintainerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Undertone0809/rudder --skill pr-local-preview-maintainer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Undertone0809/rudder.git skills-src && mkdir -p .github/skills && cp -r skills-src/agent-skills-bak/maintainer/pr-local-preview-maintainer .github/skills/pr-local-preview-maintainer && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pr-local-preview-maintainer" agent skill from https://github.com/Undertone0809/rudder/tree/main/agent-skills-bak/maintainer/pr-local-preview-maintainer into .github/skills/pr-local-preview-maintainer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-local-preview-maintainer", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Undertone0809/rudder --skill pr-local-preview-maintainer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Undertone0809/rudder pr-local-preview-maintainer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Undertone0809/rudder.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/agent-skills-bak/maintainer/pr-local-preview-maintainer .opencode/skills/pr-local-preview-maintainer && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pr-local-preview-maintainer" agent skill from https://github.com/Undertone0809/rudder/tree/main/agent-skills-bak/maintainer/pr-local-preview-maintainer into .opencode/skills/pr-local-preview-maintainer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-local-preview-maintainer", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pr-local-preview-maintainerA skill your agent uses when checking out, running, previewing, reviewing, or validating a GitHub pull request locally in a safe worktree, including PR preview URLs, local screenshots, readiness…
PR Local Preview Maintainer is an agent skill from Undertone0809/rudder. Use when checking out, running, previewing, reviewing, or validating a GitHub pull request locally in a safe worktree, including PR preview URLs, local screenshots, readiness checks, logs, and cleanup instructions.
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/runbook.md`).
It sits in Development, covering Git worktrees. It works with GitHub. The repository describes itself as: Open-source local Agent harness for self-improving agent teams: run agents, review work, and turn feedback into reusable skills. The licence is Apache-2.0.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e2ba0f1. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitghpnpmcurlFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, gh, pnpm and curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
PR Local Preview Maintainer loads about 1.6k tokens when it runs, and up to ~3.1k if it reads all its reference files. Until then it costs about 61 tokens; SKILL.md has 694 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Undertone0809/rudder at commit e2ba0f1, republished under its Apache-2.0 licence (© Undertone0809). 694 words, ~1,560 tokens.
.claude/skills/pr-local-preview-maintainer/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Run pull requests in a disposable local worktree and give the user a stable preview link. The point is to let the user review the PR while protecting their current working tree and making UI changes visible.
Start by checking the repository state:
git status --short --branch
gh pr view <number> --json number,title,state,headRefName,headRepositoryOwner,url,isCrossRepositoryIf the current worktree has local changes, do not run gh pr checkout there.
Create or reuse a sibling worktree instead. This avoids overwriting unrelated
work and keeps the PR preview easy to remove later.
Use a predictable path:
<repo-parent>/<repo-name>-pr-<number>For this repository, PR 8 should become:
/Users/zeeland/projects/rudder-oss-pr-8If the directory already exists, inspect it before reusing it:
git -C <worktree-path> status --short --branch
git -C <worktree-path> branch --show-currentIf it is dirty, ask only if the dirty changes conflict with the user's goal.
Otherwise, pick a suffixed path such as <repo-name>-pr-<number>-preview.
Create the worktree from the remote base, then check out the PR branch inside it:
git worktree add --detach <worktree-path> origin/main
gh pr checkout <number> --branch zeelandc/pr-<number>If main is not the base branch, use the PR's actual base ref. Prefer a local
branch name that makes the preview purpose clear and follows the user's branch
prefix convention when the repository defines one.
After checkout, verify:
git status --short --branchCheck whether dependencies are present:
test -d node_modules && echo node_modules-present || echo node_modules-missingIf missing, install them from the worktree:
pnpm installReport install warnings only when they affect the preview. Routine peer or bin link warnings can be mentioned briefly.
Before starting, inspect occupied ports and existing local runtimes:
lsof -nP -iTCP:<candidate-port> -sTCP:LISTENFor Rudder, prefer:
RUDDER_INSTANCE_ID=pr-<number>
PORT=<free-api-port>
RUDDER_EMBEDDED_POSTGRES_PORT=<free-pg-port>Use 3100 only if it is free and the user clearly wants the default instance.
If another Rudder dev runtime is already running, leave it alone and use a
separate port and instance ID.
Example:
env RUDDER_INSTANCE_ID=pr-8 PORT=3118 RUDDER_EMBEDDED_POSTGRES_PORT=54358 pnpm devUse tmux when available. It keeps the preview alive after the assistant turn
ends and gives the user a simple way to inspect logs.
tmux new-session -d -s rudder-pr-<number> -c <worktree-path> \
'env RUDDER_INSTANCE_ID=pr-<number> PORT=<port> RUDDER_EMBEDDED_POSTGRES_PORT=<pg-port> pnpm dev'If tmux is not available, use another managed background process and capture
logs to /tmp/<repo-name>-pr-<number>.log. Do not leave an opaque process
running without telling the user how to stop it.
Poll the health endpoint or the app's equivalent readiness check:
curl -fsS http://127.0.0.1:<port>/api/healthIf the app has no health endpoint, use the first meaningful route and check for a successful response. For frontend-only apps, load the dev server URL and confirm it serves HTML.
When startup fails, inspect the session logs before returning:
tmux capture-pane -pt rudder-pr-<number> -S -160Fix straightforward startup issues yourself when they are local environment problems, such as missing dependencies or port conflicts. Do not edit PR source code unless the user asked for a fix.
Screenshots are required when any of these are true:
ui/, desktop/, frontend route files, component
directories, stylesheets, or public assetsUse Browser Use for local browser inspection when available. Capture the important screen or flow after the preview is running. Store temporary screenshots outside the repository, for example:
/tmp/rudder-pr-<number>-<view>.pngFor non-UI backend/API PRs, a health check plus a task-specific API smoke check is usually enough. If the user still needs to review manually, provide the URL.
Keep the final response short and concrete:
PR <number> is running in <worktree-path>.
Open: http://127.0.0.1:<port>
Logs: tmux attach -t rudder-pr-<number>
Stop: tmux kill-session -t rudder-pr-<number>
Health check passed: <brief status>
Screenshots: <paths or embedded images when UI changed>If screenshots were required but could not be captured, say exactly why and what verification did run.
When the user asks to close, stop, or clean up the preview, stop only the PR preview session and verify its port is free:
tmux kill-session -t rudder-pr-<number>
lsof -nP -iTCP:<port> -sTCP:LISTENDo not remove the worktree unless the user explicitly asks for cleanup. If they do ask to remove it, verify the worktree has no uncommitted changes first.
RUDDER_INSTANCE_ID.© Undertone0809, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in agent-skills-bak/maintainer/pr-local-preview-maintainer of Undertone0809/rudder.
Open the folder on GitHubat commit e2ba0f1
PR Local Preview Maintainer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| PR Local Preview Maintainer this skillUndertone0809/rudder | 292 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Pre-Release PR Triagejamiepine/voicebox | 57k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Codewhale Landing Workflowcodewhale-hq/Codewhale | 41k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Ff Worktreesdamus-io/damus | 2.1k | — | ~451 | Automated safety check: Pass | GPL-3.0 | |
| Clean Complete Branchesjtenniswood/espcontrol | 1.1k | — | ~820 | Automated safety check: Pass | Custom licence | |
| Clean Merged Branch Foldersjtenniswood/espcontrol | 1.1k | — | ~813 | Automated safety check: Pass | Custom licence |
jamiepine/voicebox
Sorts a backlog of open pull requests into must-merge, candidate, superseded and deferred, writes a triage doc and works the merge loop before a release.
codewhale-hq/Codewhale
Decides how verified work should reach main, directly, in a worktree or on an integration branch, while keeping contributor credit and respecting merge gates.
damus-io/damus
Fast-forward master and every git worktree branch up to a target ref (default github/master), skipping any worktree with unmerged commits.
jtenniswood/espcontrol
Clean up completed Git branches and worktrees for this repository both locally and on GitHub.
jtenniswood/espcontrol
Clean up local branch worktree folders for this repository after their branches or pull requests have merged to main.
exercism/website
Fix a GitHub issue end-to-end — fetches issue, creates worktree, plans and implements fix, runs validation, opens PR, cleans up.
Undertone0809/rudder
Turn the current conversation's workflow into a reusable agent skill.
Undertone0809/rudder
A skill your agent uses when starting the current Rudder checkout as a temporary managed local preview with a stable URL, readiness check, logs, stop command, and cleanup path for manual inspection…
Undertone0809/rudder
A skill your agent uses when the user explicitly asks to stop, restart, kill, or clean Rudder repo-local pnpm dev processes or local dev runtime residue, including “把 pnpm dev 停了”, “重启 dev”, or “清掉…
Undertone0809/rudder
Conducts enterprise-grade research with multi-source synthesis, citation tracking, and verification.
Undertone0809/rudder
A skill your agent uses to audit or clean Rudder worktrees, generated artifacts, logs, caches, and repo-owned processes without deleting active work, user data, or unrelated machine state.
Undertone0809/rudder
Create safe inline visual explanations in Rudder Chat. An agent skill from Undertone0809/rudder.
Works with
Categories
A skill your agent uses when checking out, running, previewing, reviewing, or validating a GitHub pull request locally in a safe worktree, including PR preview URLs, local screenshots, readiness…. PR Local Preview Maintainer is an agent skill from Undertone0809/rudder. Use when checking out, running, previewing, reviewing, or validating a GitHub pull request locally in a safe worktree, including PR preview URLs, local screenshots, readiness checks, logs, and cleanup instructions.
PR Local Preview Maintainer fits situations like: validating a GitHub pull request locally in a safe worktree; including PR preview URLs; local screenshots; readiness checks.
Run `npx skills add Undertone0809/rudder --skill pr-local-preview-maintainer -a claude-code`. Or copy the skill folder (agent-skills-bak/maintainer/pr-local-preview-maintainer in Undertone0809/rudder) into .claude/skills/pr-local-preview-maintainer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Undertone0809/rudder --skill pr-local-preview-maintainer -a codex`. Or copy the skill folder (agent-skills-bak/maintainer/pr-local-preview-maintainer in Undertone0809/rudder) into .agents/skills/pr-local-preview-maintainer in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Undertone0809/rudder --skill pr-local-preview-maintainer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pr-local-preview-maintainer, .gemini/skills/pr-local-preview-maintainer, .github/skills/pr-local-preview-maintainer and .opencode/skills/pr-local-preview-maintainer in your project.
Going by SKILL.md and its folder, PR Local Preview Maintainer needs the command-line tools its instructions call (git, gh, pnpm and curl).
SKILL.md contains no URLs. Its commands use git, gh and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
PR Local Preview Maintainer is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with PR Local Preview Maintainer: Pre-Release PR Triage (jamiepine/voicebox, 57k stars), Codewhale Landing Workflow (codewhale-hq/Codewhale, 41k stars), Ff Worktrees (damus-io/damus, 2.1k stars) and Clean Complete Branches (jtenniswood/espcontrol, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Undertone0809 (a GitHub user) maintains it in Undertone0809/rudder, which has 292 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on October 9, 2026.
Source: Undertone0809/rudder on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.