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.
Diagnose the failing checks on a pull request and fix them. An agent skill from tbhb/vale-ai-tells.
$ npx skills add tbhb/vale-ai-tells --skill fix-pr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tbhb/vale-ai-tells fix-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/tbhb/vale-ai-tells.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/fix-pr .claude/skills/fix-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 "fix-pr" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/fix-pr into .claude/skills/fix-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-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/tbhb/vale-ai-tells/tree/main/.claude/skills/fix-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 tbhb/vale-ai-tells --skill fix-pr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tbhb/vale-ai-tells fix-pr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/fix-pr .agents/skills/fix-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 "fix-pr" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/fix-pr into .agents/skills/fix-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-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 tbhb/vale-ai-tells --skill fix-pr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tbhb/vale-ai-tells fix-pr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/fix-pr .cursor/skills/fix-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 "fix-pr" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/fix-pr into .cursor/skills/fix-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-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/tbhb/vale-ai-tells.git --path .claude/skills/fix-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 tbhb/vale-ai-tells --skill fix-pr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tbhb/vale-ai-tells fix-pr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/fix-pr .gemini/skills/fix-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 "fix-pr" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/fix-pr into .gemini/skills/fix-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-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 tbhb/vale-ai-tells fix-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 tbhb/vale-ai-tells --skill fix-pr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/fix-pr .github/skills/fix-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 "fix-pr" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/fix-pr into .github/skills/fix-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-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 tbhb/vale-ai-tells --skill fix-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 tbhb/vale-ai-tells fix-pr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/fix-pr .opencode/skills/fix-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 "fix-pr" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/fix-pr into .opencode/skills/fix-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-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.
fix-prDiagnose the failing checks on a pull request and fix them. An agent skill from tbhb/vale-ai-tells.
Fix PR is an agent skill from tbhb/vale-ai-tells. Diagnose the failing checks on a pull request and fix them. One call reads the failing logs and names the local task that reproduces each failure, so the work starts from a reproduction rather than a guess. The correction goes through the commit skill. Use this whenever a pull request is red, whenever the user asks to fix CI, and whenever watch-pr comes back with failures.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts (for example `scripts/diagnose.sh`, `scripts/guard-fix.sh` and `scripts/populate-description.sh`).
It sits in Development, covering Pull requests and Failing and flaky tests. The repository describes itself as: In today's rapidly evolving landscape, vale-ai-tells is a comprehensive, cutting-edge Vale style package that empowers writers to seamlessly delve into the rich tapestry of AI…. The licence is Apache-2.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4c7abc9. 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.
Ships 3 files in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
ghgitbashFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh and git, 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.
Fix PR loads about 2k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 1,143 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); the scripts in this folder are not scanned.
The full file from tbhb/vale-ai-tells at commit 4c7abc9, republished under its Apache-2.0 licence (© tbhb). 1,143 words, ~1,951 tokens.
.claude/skills/fix-pr/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Take a red pull request and make the checks pass. This skill ends after you commit a fix to the branch and push it. Confirming the result belongs to watch-pr, and merging belongs to merge-pr.
A guard hook runs alongside. It refuses a log sweep that goes around the diagnosis below, while leaving one job's full log open to read, because that's the real next step once the printed tail runs short.
$ARGUMENTS names the pull request number when the caller knows it. An empty value means whatever is open for the current branch.
Track these steps with the session's task-list tools where it carries them. Newer harnesses leave those tools out by default, and a session without them works the list in order as written.
bash .claude/skills/fix-pr/scripts/diagnose.sh <number>One call gets the failing jobs, the tail of each failing step's log, and the local task the script maps each job to. Read that output before running anything else. Going straight to gh run view repeats work the script already did.
The script also compares the local checkout against the commit CI tested. Stop when it reports a mismatch. The logs then describe code this worktree no longer carries, so a fix aimed at them reaches the wrong revision. Check out the branch the pull request names, or pull it forward, and diagnose again.
Run the task the script named for each failure. Reproducing first is what separates a fix from a guess.
The mapping from job name to task is a guess, so treat a task that passes locally as a signal rather than a contradiction. Look for the explanation among these:
rebase skill and diagnose again.Say which one applies rather than editing until the symptom moves.
Recognizing that last shape matters, because it produces a failure no commit on the branch caused. The base added a gate and the branch added something that gate rejects, so neither side was red alone. Running the gates against the combined tree is what the rebase skill's verification step is for.
Change what made the check fail, and nothing else. A red pull request is a poor moment for adjacent cleanup: it widens the diff a reviewer already has questions about, and it hides the fix inside unrelated edits.
Where a lint gate failed, the finding names the file and the line, and often the replacement too. Apply it exactly. Where a test failed, read the assertion before changing either side, because a test that caught a real defect deserves the fix on the other side.
Never silence a gate to make it pass. Excluding a path changes the project's standards, and so does a new rule exception or a lowered threshold. Any of those goes to the operator as a proposal rather than into the commit.
Re-run the reproducer until it passes.
The caller decides how the fix reaches the branch. $ARGUMENTS holds that answer when pr routed here, and where it doesn't, ask before committing with AskUserQuestion: question set to How should this fix land?, header set to Fixes, multiSelect set to false, and these options:
| Label | Description |
|---|---|
Separate commit | The fix lands as its own commit. History keeps the record of what broke. |
Amend and force-push | The fix folds into the commit that caused it, pushed with --force-with-lease. |
Either way, the commit skill takes it from there, and it writes the message and runs the review and the gates exactly as it always does. One thing changes for an amend: pass --amend after the repository root when invoking review-commit-message, so it reads git diff --cached HEAD~1 rather than the staged delta. Skip that and the reviewer judges a whole message against a partial diff, returning findings that look certain and are wrong. Where the fix splits into unrelated groups the commit skill says so and takes them one at a time, which suits a separate commit better than an amend.
The description is on GitHub at this point, and often nothing sits on disk. Fetch it back before revising it:
bash .claude/skills/fix-pr/scripts/populate-description.sh <number>That rebuilds PR_AGENTDESC.md from what the pull request currently says, reassembling the frontmatter from the properties set on the pull request. It refuses to overwrite an existing draft without --force, because a pr workflow further up the stack may have one in flight.
A fix changes what the branch does, so the published description now describes a branch that has moved. Where the change is worth a reader's attention, invoke write-pr-description with the repository root and a note saying which commits arrived since the last publish.
Then invoke review-pr-description and loop on its verdict the same way the pr skill does, bounded at three rounds. Publish the result with bash .claude/skills/pr/scripts/create-pr.sh, which updates the open pull request rather than opening another.
Skip this where the fix left the description accurate. A typo in a lint rule rarely changes what the branch is for. Say which way you judged it.
Don't edit PR_AGENTDESC.md here. A guard hook refuses it, and the writer owes the validator a clean run that hand-editing skips.
A separate commit pushes normally:
git push origin HEADAn amend rewrote the branch, so it needs the lease:
git push --force-with-lease origin HEADNever a bare --force. A guard hook refuses it, because the lease is the difference between replacing your own commit and discarding whatever arrived while you worked.
Report what failed, what caused it, and what the fix changed. Then say the checks are running again.
Where the caller asked for a fix and nothing more, stop here. Where the caller asked to see it through, invoke watch-pr with the same number and repeat from step 1 on a fresh failure.
Bound the loop. After three rounds on the same check, stop, then report what each attempt changed and why the check still fails. A fourth attempt at the same shape of fix is rarely the one that works.
gh installed and authenticatedcommit skill deployed alongside this one© tbhb, 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 4 other files (scripts) in .claude/skills/fix-pr of tbhb/vale-ai-tells.
Open the folder on GitHubat commit 4c7abc9
Fix 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 |
|---|---|---|---|---|---|---|
| Fix PR this skilltbhb/vale-ai-tells | 115 | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Iterate PRmeshery/meshery-operator | 151 | 8 repos | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Exposed Bug Fix WorkflowJetBrains/Exposed | 9.3k | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| SkillhoneTencent/SkillHone | 168 | 1 repos | ~3.4k | Automated safety check: Pass | Custom licence | |
| PlotJuggler Ship CheckPlotJuggler/PlotJuggler | 6.2k | — | ~1.3k | Automated safety check: Pass | MPL-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.
meshery/meshery-operator
Iterate on a PR until CI passes. An agent skill from meshery/meshery-operator.
JetBrains/Exposed
Takes a GitHub or YouTrack issue for the Exposed project through reproduction, a failing test, a fix, validation and a pull request.
Tencent/SkillHone
Local Issue, pull-request, and Wiki workbench for agent skills.
PlotJuggler/PlotJuggler
Runs a gated finish-line checklist before committing a PlotJuggler PJ4 change: build proof, red-test triage, hooks, docs freshness and a diff self-review.
wysaid/android-gpuimage-plus
Address review comments and CI failures for the current branch's PR
tbhb/vale-ai-tells
Query a Claude Code transcript without reading it into context, then write the retrospective to disk so it remains available after the session ends.
tbhb/vale-ai-tells
Query a Codex transcript without reading it into context, then write the retrospective to disk so it remains available after the session ends.
tbhb/vale-ai-tells
Diagnose failing pull request checks, reproduce them locally, make focused fixes, commit them through codex-commit, and refresh the published description when needed.
tbhb/vale-ai-tells
Squash merge a pull request. An agent skill from tbhb/vale-ai-tells.
tbhb/vale-ai-tells
Open or update a pull request for the current branch with an independently drafted and reviewed PRAGENTDESC.md.
tbhb/vale-ai-tells
Replay the current branch onto its base and establish that the result is sound.
Categories
Diagnose the failing checks on a pull request and fix them. An agent skill from tbhb/vale-ai-tells. Fix PR is an agent skill from tbhb/vale-ai-tells. Diagnose the failing checks on a pull request and fix them.
Fix PR fits situations like: whenever watch-pr comes back with failures; tasks that involve Pull requests; tasks that involve Failing and flaky tests.
Run `npx skills add tbhb/vale-ai-tells --skill fix-pr -a claude-code`. Or copy the skill folder (.claude/skills/fix-pr in tbhb/vale-ai-tells) into .claude/skills/fix-pr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tbhb/vale-ai-tells --skill fix-pr -a codex`. Or copy the skill folder (.claude/skills/fix-pr in tbhb/vale-ai-tells) into .agents/skills/fix-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 tbhb/vale-ai-tells --skill fix-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/fix-pr, .gemini/skills/fix-pr, .github/skills/fix-pr and .opencode/skills/fix-pr in your project.
Going by SKILL.md and its folder, Fix PR needs a shell for the scripts in its folder and the command-line tools its instructions call (gh, git and bash). Our summary lists: A Bash shell.
SKILL.md contains no URLs. Its commands use gh and git, 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Fix PR is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.8k 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 Fix PR: PR Babysitter (openinterpreter/openinterpreter, 69k stars), Iterate PR (meshery/meshery-operator, 151 stars), Exposed Bug Fix Workflow (JetBrains/Exposed, 9.3k stars) and Skillhone (Tencent/SkillHone, 168 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tbhb (a GitHub user) maintains it in tbhb/vale-ai-tells, which has 115 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 7, 2026.
Source: tbhb/vale-ai-tells on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.