PR Babysitter
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
A skill your agent uses when implementing a fix for a known GitHub issue end-to-end on the Breeze repo — "work on issue
$ npx skills add LanternOps/breeze --skill issue-to-pr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LanternOps/breeze issue-to-pr --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/LanternOps/breeze.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/issue-to-pr .claude/skills/issue-to-pr && 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 "issue-to-pr" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/issue-to-pr into .claude/skills/issue-to-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-to-pr", 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/LanternOps/breeze/tree/main/.claude/skills/issue-to-prType 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 LanternOps/breeze --skill issue-to-pr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LanternOps/breeze issue-to-pr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/issue-to-pr .agents/skills/issue-to-pr && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "issue-to-pr" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/issue-to-pr into .agents/skills/issue-to-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-to-pr", 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 LanternOps/breeze --skill issue-to-pr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LanternOps/breeze issue-to-pr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/issue-to-pr .cursor/skills/issue-to-pr && 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 "issue-to-pr" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/issue-to-pr into .cursor/skills/issue-to-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-to-pr", 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/LanternOps/breeze.git --path .claude/skills/issue-to-pr--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 LanternOps/breeze --skill issue-to-pr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LanternOps/breeze issue-to-pr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/issue-to-pr .gemini/skills/issue-to-pr && 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 "issue-to-pr" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/issue-to-pr into .gemini/skills/issue-to-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-to-pr", 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 LanternOps/breeze issue-to-prInstalls 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 LanternOps/breeze --skill issue-to-pr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/issue-to-pr .github/skills/issue-to-pr && 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 "issue-to-pr" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/issue-to-pr into .github/skills/issue-to-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-to-pr", 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 LanternOps/breeze --skill issue-to-pr -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LanternOps/breeze issue-to-pr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/issue-to-pr .opencode/skills/issue-to-pr && 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 "issue-to-pr" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/issue-to-pr into .opencode/skills/issue-to-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "issue-to-pr", 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.
issue-to-prA skill your agent uses when implementing a fix for a known GitHub issue end-to-end on the Breeze repo — "work on issue
Issue To PR is an agent skill from LanternOps/breeze. Use when implementing a fix for a known GitHub issue end-to-end on the Breeze repo — "work on issue
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with GitHub. The repository describes itself as: The open-source IT platform that comes with the workers. RMM + PSA in one system, with a governed AI operator built in. The licence is AGPL-3.0.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 5a2d714. 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:
ghgitpnpmnpxgoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, git, pnpm and npx, 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.
Issue To PR loads about 3.5k tokens when it runs. Until then it costs about 28 tokens; SKILL.md has 1,644 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 noted patterns worth knowing about, such as sudo or a known installer.
need `pnpm install` and the gitignored `.env.test` symlink —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 LanternOps/breeze at commit 5a2d714, republished under its AGPL-3.0 licence (© LanternOps). 1,644 words, ~3,475 tokens.
.claude/skills/issue-to-pr/SKILL.md (or your agent's skills folder).Execution runbook that carries one already-chosen GitHub issue from claim to
a reviewed, open PR. Triage already happened (see gh-queue); this skill runs
after the decision to work an issue is made.
Repo: LanternOps/breeze. Two hard boundaries: the worker never merges and
the worker never closes the issue — those stay the user's call.
issue-fixer agent picking up a number.gh-queue.github-issues skill. Follow it; don't restate it.digraph issue_to_pr {
"Read full issue + comments" [shape=box];
"Eligible?" [shape=diamond];
"ABORT — report back" [shape=box];
"Assign to self" [shape=box];
"Worktree off fresh main" [shape=box];
"Fix (debug/brainstorm)" [shape=box];
"Verify: tests + typecheck" [shape=box];
"Commit / push / PR (Closes #N)" [shape=box];
"/pr-review-toolkit:review-pr" [shape=box];
"Findings?" [shape=diamond];
"Comment: what the review ran" [shape=box];
"STOP — hand off (no merge, no close)" [shape=doublecircle];
"Read full issue + comments" -> "Eligible?";
"Eligible?" -> "ABORT — report back" [label="no"];
"Eligible?" -> "Assign to self" [label="yes"];
"Assign to self" -> "Worktree off fresh main";
"Worktree off fresh main" -> "Fix (debug/brainstorm)";
"Fix (debug/brainstorm)" -> "Verify: tests + typecheck";
"Verify: tests + typecheck" -> "Commit / push / PR (Closes #N)";
"Commit / push / PR (Closes #N)" -> "/pr-review-toolkit:review-pr";
"/pr-review-toolkit:review-pr" -> "Findings?";
"Findings?" -> "Fix (debug/brainstorm)" [label="yes, address"];
"Findings?" -> "Comment: what the review ran" [label="clean"];
"Comment: what the review ran" -> "STOP — hand off (no merge, no close)";
}If invoked with a specific issue number, skip to step 1. If asked to "find something to work on" / "grab an issue off the backlog", select one yourself:
# Open issues with the signals needed to rank them.
gh issue list --repo LanternOps/breeze --state open --limit 60 \
--json number,title,assignees,labels,createdAt,commentsRank candidates, best first. Prefer an issue that is:
Skip (don't even open a worktree):
tracking/epic/meta, needs-design/question/discussion/RFC.ci-red, broad "X is broken on main") unless explicitly asked.Then run the step 1 guard on your top candidate — that's the real gate (it catches already-shipped fixes and in-flight PRs that ranking can't see). If the top candidate aborts on the guard, move to the next candidate; repeat until one passes or the list is exhausted. Report which issues you considered and why you skipped each — don't silently pick one and hide the rest.
When selecting several to fan out, cap the count and state the cap.
gh issue view N --repo LanternOps/breeze --comments \
--json number,title,body,state,assignees,labels,comments
# PRs that reference it — ANY state, not just open (a merged/closed PR may have
# already shipped the fix; --state open would never show it).
gh pr list --repo LanternOps/breeze --state all --search "N in:body" \
--json number,title,state,headRefName,mergedAtRead the whole issue and every comment. ABORT and report back (do not start work) if any of these is true:
@me login, resolved with
gh api user --jq .login — not a separate agent identity. An issue
assigned to that account is "assigned to you" and is eligible (work it);
only an issue assigned to a different login is "someone else" → abort. If
you're a subagent, you have no GitHub identity of your own, so never read the
operator's own assigned issues as belonging to a third party.main
saying "fixed in #NNN" / "merged to main") → the fix likely already
shipped and the issue is open only awaiting reporter confirmation. Verify
against origin/main before concluding either way — a gh pr list --state open
miss does NOT mean no fix exists. Don't open a duplicate no-op PR.Aborting is a success, not a failure. Report why so the orchestrator/user can decide. Guessing past a guard wastes a worktree and a review cycle.
gh issue edit N --repo LanternOps/breeze --add-assignee @meREQUIRED SUB-SKILL: Use superpowers:using-git-worktrees. The main working
copy at /Users/toddhebebrand/breeze is shared across sessions and drifts —
verify your base is fresh main before branching (a stale base has nearly
shipped dozens of unrelated commits in a PR).
Spawn-location trap (read this): When an orchestrator fans you out, your
CWD is very likely already inside an existing worktree under
.claude/worktrees/ that belongs to a different task. That is NOT your
workspace. Do not edit there, and do not reach back into the shared
/Users/toddhebebrand/breeze checkout (it may be on a stale branch). Always
git fetch origin main, then create your own new worktree off
origin/main, cd into it, and confirm git rev-parse HEAD equals
origin/main before you branch. Editing the spawn worktree or the shared
checkout has silently reverted other in-flight PRs' files.
Branch naming (AGENTS.md — no codex/ / claude/ prefixes):
fix/N-short-slug, feat/N-short-slug, docs/short-slug, chore/short-slug.
Fresh worktrees need pnpm install and the gitignored .env.test symlink —
without it RLS forge tests pass vacuously on a BYPASSRLS connection. Prefix
node-pinned commands: PATH=$HOME/.nvm/versions/node/v22.20.0/bin:$PATH.
superpowers:systematic-debugging (find root cause before patching).superpowers:brainstorming first if the issue left design open.CLAUDE.md (policies in the same migration, idempotent, never edit a
shipped migration). Touching the Go agent → write to agent/, not apps/agent/.REQUIRED SUB-SKILL: breeze-testing for what to cover.
pnpm exec vitest run <path>.npx tsc --noEmit (and astro check if .astro
changed — plain tsc skips Astro files).cd agent && go test -race ./internal/<pkg>/....Do not proceed to the ready comment on red tests. REQUIRED SUB-SKILL:
superpowers:verification-before-completion.
Use commit-commands:commit-push-pr (or do it by hand). The PR body must
include Closes #N. PR title follows fix(scope): summary (#N) /
feat(scope): summary (#N). Required trailers:
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>🤖 Generated with [Claude Code]… line.Run /pr-review-toolkit:review-pr on the PR. Address every real finding (loop
back to step 4 → re-verify). Re-run review if you made non-trivial changes.
Assignee stays you. Post a comment on the PR (not the issue) in the
bold-section style (github-issues / comment-style conventions). The comment's
job is to record what the last review run was and its outcome — NOT a
generic "ready for review" banner.
**Review run:** /pr-review-toolkit:review-pr (code-reviewer, silent-failure-hunter, pr-test-analyzer)
**Findings:** 2 raised → both addressed in <sha>; 0 outstanding.
**Tests:** apps/api affected suite green (`vitest run routes/foo.test.ts`, 14 passed); `tsc --noEmit` clean.
**Status:** review-clean, awaiting maintainer merge.If review surfaced nothing, say that explicitly ("0 findings") rather than omitting the line — a missing line reads as "didn't run it."
Report the PR number + a one-line summary to the orchestrator/user. Then stop.
The worker does NOT merge and does NOT close the issue. Merge (a bare gh pr merge <N>
into the merge queue, gated on green required checks; never --admin) and closure (after the reporter/user verifies)
are the user's judgment calls — see the merge/hold rules. The issue stays
open and assigned to you until then.
@me account is not poaching — work it; see step 1.)main too. Open-only is a blind spot.origin/main.| Rationalization | Reality |
|---|---|
| "A commit means it's done, close it." | A commit isn't verification. Reporter/user closes. |
| "Green CI means I can merge." | Merge is gated on the user's hold/judgment rules, not just CI. |
| "Aborting wastes the dispatch." | Aborting on a guard is the correct, cheap outcome. Guessing is expensive. |
| "Full suite is red so my change is broken." | The full API suite is flaky in parallel — verify via affected files single-fork. |
To work several issues at once, the in-session agent acts as orchestrator:
Decide the issue numbers BEFORE dispatch — never let multiple workers self-select in parallel. Each worker's step-0 selection ranks the backlog the same way and claims aren't visible at selection time, so parallel self-selecting agents converge on the same top issue and open duplicate PRs (observed: 3 agents → PRs #1917/#1918/#1919, all on #1896). Get a distinct set one of two ways:
gh issue edit <N> --add-assignee @me)
so the set is reserved. Only then dispatch.Any orchestrator-level eligibility pre-check has the same blind spot as the
worker's: gh pr list --state open won't reveal an already-merged fix, so
don't pre-declare an issue "eligible" on that basis — the worker's full guard
(comments + --state all + origin/main) is the real gate.
REQUIRED SUB-SKILL: superpowers:dispatching-parallel-agents — spawn one
issue-fixer agent per already-chosen number, each in its own worktree
(isolation prevents branch/DB collisions; see the worktree skill). Every agent
gets a concrete number — none self-selects.
Each agent runs this runbook independently and returns its PR number (or its
abort reason). A worker that finds its handed number already assigned to @me
(because the orchestrator pre-claimed it) treats that as eligible — that's the
reservation working, not a poach.
Collect the results into one summary table for the user. The orchestrator does not merge or close either — same boundary applies.
Do not auto-expand the list beyond what the user named. If you self-selected
from a label, log/state the cap and which issues were dropped.
Anti-pattern (do not do this): dispatching 2+
issue-fixeragents that each run step-0 selection, trusting a "skip already-claimed issues" instruction to keep them apart. Selection precedes any visible claim, so the guard can't see a sibling's pick — they collide. Distinctness is the orchestrator's job, settled before dispatch.
© LanternOps, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/issue-to-pr of LanternOps/breeze.
Open the folder on GitHubat commit 5a2d714
Issue To PR 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 |
|---|---|---|---|---|---|---|
| Issue To PR this skillLanternOps/breeze | 131 | — | ~3.5k | Automated safety check: Notes | AGPL-3.0 | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Diagnosing Superpowers Sessionsobra/superpowers | 296k | 3 repos | ~1.7k | Automated safety check: Pass | MIT | |
| GitHub Deep Researchbytedance/deer-flow | 83k | 5 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Greplooponyx-dot-app/onyx | 32k | 4 repos | ~3.3k | Automated safety check: Pass | MIT | |
| Update V8 Versionopeninterpreter/openinterpreter | 69k | 2 repos | ~845 | Automated safety check: Pass | Apache-2.0 |
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
obra/superpowers
Investigates a session where Superpowers went wrong, reads the transcripts on disk and produces an evidence-cited report, optionally prepared as a bug report for the maintainers.
bytedance/deer-flow
Researches a GitHub repository over four rounds using the GitHub API and web search, then writes a structured markdown report with timeline, metrics and Mermaid diagrams.
onyx-dot-app/onyx
Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.
openinterpreter/openinterpreter
Bumps the pinned v8 and rusty_v8 versions in Codex, validates the release-candidate path with the v8-canary check, and traces failures to upstream build changes.
mvanhorn/last30days-skill
Research what people actually say about any topic in the last 30 days.
LanternOps/breeze
Quick reference for the Breeze RMM Go agent architecture, commands, configuration, build process, and data flows.
LanternOps/breeze
A skill your agent uses when debugging agent issues, investigating agent errors, checking agent connectivity, or reviewing agent diagnostic logs.
LanternOps/breeze
Quick reference for the Breeze RMM AI Agent system architecture, MCP tools, streaming chat, cost tracking, guardrails, and MCP server.
LanternOps/breeze
Quick reference for the Breeze Helper Tauri desktop app — architecture, Rust backend commands, React frontend, config files, IPC with the Go agent, helper chat API routes, tool approval flow, and…
LanternOps/breeze
A skill your agent uses when running a broad manual/AI-driven end-to-end verification of Breeze RMM across many merged PRs or commits — "test everything since the last release", release-readiness…
LanternOps/breeze
A skill your agent uses when orchestrating Breeze implementation work from this seat — dispatching waves or issue fixes to background sessions, deciding whether an open PR gets merged, handling a…
Works with
A skill your agent uses when implementing a fix for a known GitHub issue end-to-end on the Breeze repo — "work on issue. Issue To PR is an agent skill from LanternOps/breeze.
Issue To PR fits situations like: implementing a fix for a known GitHub issue end-to-end on the Breeze repo — work on issue.
Run `npx skills add LanternOps/breeze --skill issue-to-pr -a claude-code`. Or copy the skill folder (.claude/skills/issue-to-pr in LanternOps/breeze) into .claude/skills/issue-to-pr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LanternOps/breeze --skill issue-to-pr -a codex`. Or copy the skill folder (.claude/skills/issue-to-pr in LanternOps/breeze) into .agents/skills/issue-to-pr 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 LanternOps/breeze --skill issue-to-pr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/issue-to-pr, .gemini/skills/issue-to-pr, .github/skills/issue-to-pr and .opencode/skills/issue-to-pr in your project.
Going by SKILL.md and its folder, Issue To PR needs the command-line tools its instructions call (gh, git, pnpm, npx and go). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use gh, git and npx, 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 notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Issue To PR is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Issue To PR: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Diagnosing Superpowers Sessions (obra/superpowers, 296k stars), GitHub Deep Research (bytedance/deer-flow, 83k stars) and Greploop (onyx-dot-app/onyx, 32k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LanternOps (a GitHub organization) maintains it in LanternOps/breeze, which has 131 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 8, 2026.
Source: LanternOps/breeze on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.