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 asked to babysit, monitor, shepherd, or keep working on a GitHub pull request until it is green, review-ready, approved, mergeable, or ready to merge.
$ npx skills add getlago/lago-front --skill babysit -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install getlago/lago-front babysit --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/getlago/lago-front.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/babysit .claude/skills/babysit && 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 "babysit" agent skill from https://github.com/getlago/lago-front/tree/main/.agents/skills/babysit into .claude/skills/babysit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "babysit", 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/getlago/lago-front/tree/main/.agents/skills/babysitType 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 getlago/lago-front --skill babysit -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install getlago/lago-front babysit --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getlago/lago-front.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/babysit .agents/skills/babysit && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "babysit" agent skill from https://github.com/getlago/lago-front/tree/main/.agents/skills/babysit into .agents/skills/babysit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "babysit", 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 getlago/lago-front --skill babysit -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install getlago/lago-front babysit --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getlago/lago-front.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/babysit .cursor/skills/babysit && 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 "babysit" agent skill from https://github.com/getlago/lago-front/tree/main/.agents/skills/babysit into .cursor/skills/babysit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "babysit", 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/getlago/lago-front.git --path .agents/skills/babysit--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 getlago/lago-front --skill babysit -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install getlago/lago-front babysit --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getlago/lago-front.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/babysit .gemini/skills/babysit && 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 "babysit" agent skill from https://github.com/getlago/lago-front/tree/main/.agents/skills/babysit into .gemini/skills/babysit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "babysit", 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 getlago/lago-front babysitInstalls 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 getlago/lago-front --skill babysit -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/getlago/lago-front.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/babysit .github/skills/babysit && 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 "babysit" agent skill from https://github.com/getlago/lago-front/tree/main/.agents/skills/babysit into .github/skills/babysit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "babysit", 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 getlago/lago-front --skill babysit -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install getlago/lago-front babysit --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/getlago/lago-front.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/babysit .opencode/skills/babysit && 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 "babysit" agent skill from https://github.com/getlago/lago-front/tree/main/.agents/skills/babysit into .opencode/skills/babysit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "babysit", 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.
babysitA skill your agent uses when asked to babysit, monitor, shepherd, or keep working on a GitHub pull request until it is green, review-ready, approved, mergeable, or ready to merge.
Babysit is an agent skill from getlago/lago-front. Use when asked to babysit, monitor, shepherd, or keep working on a GitHub pull request until it is green, review-ready, approved, mergeable, or ready to merge. Reviews the PR first and reports findings, loops on CI and review feedback, announces the PR in
Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/ci-playbook.md`, `references/gh-cookbook.md` and `references/slack-format.md`).
It works with GitHub. The repository describes itself as: Open Source Metering and Usage Based Billing. The licence is AGPL-3.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d4cb9fe. 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:
ghgitpnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, git and pnpm, 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.
Babysit loads about 5.2k tokens when it runs, and up to ~7.9k if it reads all its reference files. Until then it costs about 66 tokens; SKILL.md has 2,505 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 getlago/lago-front at commit d4cb9fe, republished under its AGPL-3.0 licence (© getlago). 2,505 words, ~5,177 tokens.
.claude/skills/babysit/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Take a pull request from wherever it is to ready-to-merge, and keep it there.
Opens the PR if the branch has none, reviews it, gets CI green, answers reviewer and
bot comments, announces it in #frontend, then keeps watching until it is ready.
Never merge unless the user explicitly asks.
The Slack tools are deferred. Load them in one call before starting:
ToolSearch(query: "select:mcp__claude_ai_Slack__slack_search_public,mcp__claude_ai_Slack__slack_read_thread,mcp__claude_ai_Slack__slack_send_message,mcp__claude_ai_Slack__slack_search_channels")References, read on demand rather than up front:
references/gh-cookbook.md - every gh and GraphQL call used belowreferences/ci-playbook.md - CI check to local pnpm commandreferences/slack-format.md - #frontend announcement formatThese three describe babysit's own mechanics. No file in this skill restates a coding
rule. The repo's conventions live in CLAUDE.md, .agents/docs/ and the
lago-frontend-patterns skill, and the review points at those rather than copying them. A copy would drift, and a
stale copy enforced during review is worse than no review at all.
Babysit keeps no local state file. Both pieces of memory live in the systems of record, so any session on any machine resolves the same behaviour and teammates can see it.
#frontend is the mode switch. Its presence means the
review and the announce already happened.Never replace either with a file in the repo or in a scratch directory.
--review, which forces Phase 1 to run even in
follow-up mode; record it and remove it before touching gh. No number left over
-> find the current branch's PR with
gh pr view --json number,url,title,body,headRefName,....main, or there are no commits
ahead of the base.git push -u origin HEAD..github/pull_request_template.md, with Fixes LAGO-XXX filled in from the
branch name or commit trailers. Leave the placeholder alone when no ticket can be
found.main, unless the branch is visibly stacked on another open PR's head, in
which case base on that.headRefName.
In a Conductor worktree they often differ. Every push in this run must then use
git push origin HEAD:<headRefName>. Pushing the local branch name creates a stray
branch and leaves the PR stale.Before reviewing anything, look for a prior announcement in #frontend. See
references/slack-format.md for the query and the boundary check that stops
pull/402 from matching pull/4020.
| Announcement | Mode | Behaviour |
|---|---|---|
| Not found | First run | Phase 1 review, triage, loop, announce, then watch |
Found (keep its ts) | Follow-up | Skip Phase 1. Skip the announce. Straight into the loop and the watch |
Follow-up mode is the resume path: the earlier session was closed, ran out of context,
or /loop started a fresh one. Skipping the review is deliberate. It already ran and
the user already triaged it; re-running would re-litigate settled decisions.
/babysit <n> --review forces Phase 1 again when the PR has changed substantially.
First run only. Do not write a review from scratch here. Delegate to the built-in
/review, which takes a PR number.
Point it at the repo's conventions; never restate them. CLAUDE.md, .agents/docs/
and the lago-frontend-patterns skill are the single source of truth, and they are what coding
sessions already load. The review reads the same files, so a rule can never be enforced in
review while being absent from the guidance the code was written against.
Work out which docs the diff touches, then pass their paths:
| Diff touches | Also read |
|---|---|
| anything | CLAUDE.md |
tests, __tests__/, cypress/ | .agents/docs/testing-practices.md |
.graphql, fragments, src/generated/ | .agents/docs/graphql-fragments.md |
new files or directories under src/ | .agents/docs/folder-architecture.md |
| a new or unfamiliar library | .agents/docs/documentation.md |
| a list, table or paginated query | .agents/skills/lago-frontend-patterns/references/pagination.md |
| a drawer | .agents/skills/lago-frontend-patterns/references/drawers.md |
| a dialog, modal or confirmation prompt | .agents/skills/lago-frontend-patterns/references/dialogs.md |
| a form | .agents/skills/lago-frontend-patterns/references/forms.md |
| an org id or slug, or an identifier embedding one | .agents/skills/lago-frontend-patterns/references/organization-slug.md |
| a design-system or layout component | .agents/skills/lago-frontend-patterns/SKILL.md (and the reference its index row names, if any) |
CLAUDE.md already pulls in .agents/docs/typescript-conventions.md itself, and its own
sections still cover router imports, MUI imports and translations. The pagination, drawer,
dialog, form and organization-slug rules now live in lago-frontend-patterns, listed
above. Nothing in it needs repeating here.
Skill(skill: "review", args: `<n>
Review against this repo's conventions. Read these files and treat them as the
authority, in this order:
CLAUDE.md
<the .agents/docs and .agents/skills paths selected above>
Weight violations of those documented rules above generic code-review findings.
Do not report anything CI already catches: formatting, type errors, failing tests,
lint. Do not report pre-existing issues on lines this PR did not touch.`)If a listed path does not exist, say so in the run output rather than reviewing without it. A renamed doc should fail loudly, not silently narrow the review.
Then turn the findings into a triage list:
### Review - PR #4020 (title)
| # | Sev | File:line | Finding |
|---|------|----------------------|------------------------------------------|
| 1 | high | usePlanDrawer.tsx:42 | ref-based drawer, lago-frontend-patterns forbids |
| 2 | med | cache.ts | new list field not in queryFieldPolicies |
CI: 2 failing (Run linters, Tests shard 3/4) | Reviews: none | Mergeable: clean
Fix which before the loop starts? (all / 1 / none)Nothing is posted to GitHub in this phase. No findings -> say so and go straight to the loop. This is the one point in the run that waits for the user.
Each round:
git fetch origin, gh pr view --json ..., and the reviewThreads
GraphQL query.<!-- babysit:declined ... --> markers. Rebuilt from the PR each
round, so it survives restarts.The loop runs for hours. Halting on every decision would stall it on round one and leave the CI failure behind it undiscovered. So nothing in the loop is a blocking prompt. Each round sorts work into two piles.
Act now, no approval:
references/ci-playbook.md,
reproduce locally, fix, validate, commit, push. Never push a speculative fix.Queue and keep going:
|| to ?? is behavioural, not a
style nit.Queued items surface in every round summary and drain the moment the user answers, whether that is immediately or hours later. They never expire and are never silently dropped.
Round 4 | 14:22
CI : Run linters failed -> pnpm lint:fix, pushed 8f21ac
Bots : 1 declined (duplicate of a3f1c9), 1 mechanical applied (typo)
Pending : 2 awaiting you
[1] Copilot: || -> ?? in usePlanDrawer.tsx:42 (behavioural)
[2] Allan (Slack): reuse useFeatureDrawer instead
Next : re-checking in 20 min. Answer any time: "apply 1", "skip 2".pnpm code:style once before the final push of a round, not after every edit.Take every unresolved review thread from the reviewThreads query, then split it
by the login of its first comment. Both piles must be worked every round: a thread that
matches neither rule below has been dropped, which is a bug.
| First comment author | Pile | Handling |
|---|---|---|
copilot-pull-request-reviewer[bot], any *[bot] | Bot | Sections A to C below: dedup, then APPLY / DECLINE / ESCALATE |
| Anyone else | Human | Section D. Always queued, never declined, never auto-resolved |
This is what stops Copilot re-posting a comment already settled.
Fingerprint: first 6 hex of sha1(path + "|" + normalised_body), where the body is
lowercased, code fences and suggestion blocks stripped, and whitespace collapsed.
Do not strip digits. Line numbers live in the thread's own fields, not in the
comment body, and path is the only positional value hashed, so drift cannot move the
fingerprint anyway. Removing digits buys nothing and actively collides: "limit should
be 20" and "limit should be 50" on one file normalise to the same string, and the
second, genuinely new comment gets silently resolved as a duplicate without being read.
topic= slugs, of which there are
only ever a handful. Same file and same topic, just reworded -> duplicate. Resolve it
and record the new fingerprint as an alias so the next variant matches exactly.| Verdict | When | Action |
|---|---|---|
| APPLY | Real bug, or a concrete CLAUDE.md violation | Mechanical: apply and push. Otherwise queue |
| DECLINE | Contradicts CLAUDE.md, pre-existing, a linter or typechecker concern, a nitpick, or wrong about the code | Reply with reasoning and marker, resolve |
| ESCALATE | Product-sensitive, ambiguous, or a judgment call about intent | Queue for the user, leave the thread open |
DECLINE needs evidence, not an opinion: cite the CLAUDE.md rule, the file:line, or the
git history that makes the comment wrong. A comment that is merely tedious to handle is
an ESCALATE, not a DECLINE.
Not applying: <one or two sentences of concrete reasoning, citing a rule or file:line>.
<!-- babysit:declined v1 fp=a3f1c9 path=src/foo/useBar.tsx topic="ref-drawer-pattern" -->Then resolve the thread. The marker does not render in GitHub's UI but is present in the API body, which is what makes the ledger work.
Every unresolved thread from a non-bot author becomes a pending queue item, one per
thread, carrying the reviewer's login, the path, and the comment text. Nothing here
is ever auto-applied, auto-declined, or auto-resolved, however mechanical it looks: a
human comment can carry intent the diff does not show.
A reviewer leaving "changes requested" must therefore always show up in the round
summary. If a round reports an empty queue while reviewDecision is
CHANGES_REQUESTED, the split above was not applied. Treat that as a bug in the run,
not as a quiet PR.
Reaching this point means the babysitting worked. That is when the PR should reach the team.
Gate, all of which must hold:
Compose per references/slack-format.md and post to C04DJLU0KHD with
slack_send_message. No confirmation prompt. Print the message and its permalink so
the run's output shows exactly what went out. Keep the returned ts as the thread
anchor.
Gate not met -> skip the announce, say which condition failed, and carry on watching. The gate is re-evaluated every Phase 5 round until the PR is announced, so the common case of arriving here while Run Test E2E is still pending resolves itself the moment it goes green. Announcing is not a one-shot checkpoint.
Announcing is not the end. Keep looping until the PR is ready to merge, now on a 20 minute interval, because it is waiting on humans rather than CI.
Each round is a delta check, not a full re-read. Compare head sha, check conclusions,
review-thread count, and the Slack thread's latest reply ts against the previous
round. Nothing changed and nothing pending -> one line, back to waiting. If the PR
is not yet announced, re-run the Phase 4 gate as part of every round.
Foreground sleep is blocked by the harness, so pick the waiting tool by how many
notifications the wait produces. Do not mix the two idioms.
What wakes a round. Monitor runs bash, so it can poll GitHub but cannot call
the Slack tools. A reply in the announcement thread therefore does not wake anything
by itself. Two things close that gap:
So Slack feedback is always acted on, but a Slack-only reply during an active watch can
sit up to an hour before it is seen. Follow-up mode has no such lag: a fresh
/babysit <n> reads the thread immediately.
Monitor for a stream of one event per change. Give it a poll loop that prints a
line only when something moved, plus the heartbeat, so quiet rounds stay cheap:
prev=""; quiet=0
while true; do
cur=$(gh pr view <n> --json headRefOid,state,mergeStateStatus,reviewDecision \
--jq '"\(.headRefOid[0:8]) \(.state) \(.mergeStateStatus) \(.reviewDecision)"' 2>/dev/null || true)
if [ -n "$cur" ]; then
if [ -z "$prev" ]; then echo "ARMED: $cur"
elif [ "$cur" != "$prev" ]; then echo "CHANGED: $cur"; quiet=0
else quiet=$((quiet+1)); [ $((quiet % 3)) -eq 0 ] && echo "QUIET x$quiet: $cur"
fi
prev=$cur
fi
sleep 1200
doneSet persistent: true; the watch is session-length. Guard the gh calls with
|| true so one flaky request does not kill the monitor.
Bash with run_in_background for a single wake, using an until loop that
exits once the condition holds. One notification, then done.
An until loop handed to Monitor prints nothing and so notifies nothing: it sits
armed until timeout while the round never fires. That is the failure to avoid.
gh pr checks <n> --watch --interval 30 still covers the short CI waits inside a
round.
Read the announcement thread with slack_read_thread(C04DJLU0KHD, ts) on every wake,
heartbeat rounds included, since no Slack reply can wake the monitor on its own.
Replies are humans, so they follow the human rules exactly: always queued, never
auto-applied, and disagreement escalates. Anything newer than babysit's own last reply
is new.
After fixes land, post one batched reply in the thread with the commit sha. One per round, not one per comment.
Feedback this round:
GitHub threads : 1 new (copilot, duplicate of a3f1c9, resolved)
Slack thread : 2 new (Allan, Mimmo)Always print the resume command on the way out.
/loop 20m /babysit <n>, which does the same watch
unattended without holding a session open./loop command, rather than degrading mid-round.© getlago, 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
SKILL.md and 3 other files (references) in .agents/skills/babysit of getlago/lago-front.
Open the folder on GitHubat commit d4cb9fe
Babysit 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 |
|---|---|---|---|---|---|---|
| Babysit this skillgetlago/lago-front | 163 | — | ~5.2k | Automated safety check: Pass | 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.
getlago/lago-front
Triage a CVE / Dependabot alert in a JS/TS project and recommend the least-invasive fix.
getlago/lago-front
Extract a Formik form section into a TanStack Form drawer with Zod validation, following the plan form migration pattern.
getlago/lago-front
Phase 2 of the loop pipeline for lago-front. An agent skill from getlago/lago-front.
getlago/lago-front
Cleanup phase of the loop pipeline for lago-front, for the worktree layout only.
getlago/lago-front
You are an advanced Docker containerization expert with comprehensive, practical knowledge of container optimization, security hardening, multi-stage builds, orchestration patterns, and production…
getlago/lago-front
Harvest phase of the loop pipeline for lago-front. An agent skill from getlago/lago-front.
Works with
A skill your agent uses when asked to babysit, monitor, shepherd, or keep working on a GitHub pull request until it is green, review-ready, approved, mergeable, or ready to merge. Babysit is an agent skill from getlago/lago-front. Use when asked to babysit, monitor, shepherd, or keep working on a GitHub pull request until it is green, review-ready, approved, mergeable, or ready to merge.
Babysit fits situations like: asked to babysit; keep working on a GitHub pull request until it is green.
Run `npx skills add getlago/lago-front --skill babysit -a claude-code`. Or copy the skill folder (.agents/skills/babysit in getlago/lago-front) into .claude/skills/babysit in your project. Claude Code loads it when a task matches its description.
Run `npx skills add getlago/lago-front --skill babysit -a codex`. Or copy the skill folder (.agents/skills/babysit in getlago/lago-front) into .agents/skills/babysit 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 getlago/lago-front --skill babysit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/babysit, .gemini/skills/babysit, .github/skills/babysit and .opencode/skills/babysit in your project.
Going by SKILL.md and its folder, Babysit needs the command-line tools its instructions call (gh, git and pnpm).
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. Review the folder before installing.
Babysit 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 5.2k tokens (SKILL.md is roughly 21k 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 2.7k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Babysit: 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.
getlago (a GitHub organization) maintains it in getlago/lago-front, which has 163 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 8, 2026.
Source: getlago/lago-front on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.