PR Babysitter
EveryInc/compound-engineering-plugin
Watches an open GitHub pull request over time, routing review comments and CI failures to other skills until the PR is ready to merge.
Watches a pull request's CI checks after creation, separates required from auxiliary failures, applies limited safe fixes and escalates anything semantic to you.
$ npx skills add modu-ai/moai-adk --skill hns-workflow-ci-loop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install modu-ai/moai-adk hns-workflow-ci-loop --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/modu-ai/moai-adk.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/hns-workflow-ci-loop .claude/skills/hns-workflow-ci-loop && 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 "hns-workflow-ci-loop" agent skill from https://github.com/modu-ai/moai-adk/tree/main/.claude/skills/hns-workflow-ci-loop into .claude/skills/hns-workflow-ci-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hns-workflow-ci-loop", 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/modu-ai/moai-adk/tree/main/.claude/skills/hns-workflow-ci-loopType 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 modu-ai/moai-adk --skill hns-workflow-ci-loop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install modu-ai/moai-adk hns-workflow-ci-loop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/modu-ai/moai-adk.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/hns-workflow-ci-loop .agents/skills/hns-workflow-ci-loop && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "hns-workflow-ci-loop" agent skill from https://github.com/modu-ai/moai-adk/tree/main/.claude/skills/hns-workflow-ci-loop into .agents/skills/hns-workflow-ci-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hns-workflow-ci-loop", 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 modu-ai/moai-adk --skill hns-workflow-ci-loop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install modu-ai/moai-adk hns-workflow-ci-loop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/modu-ai/moai-adk.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/hns-workflow-ci-loop .cursor/skills/hns-workflow-ci-loop && 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 "hns-workflow-ci-loop" agent skill from https://github.com/modu-ai/moai-adk/tree/main/.claude/skills/hns-workflow-ci-loop into .cursor/skills/hns-workflow-ci-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hns-workflow-ci-loop", 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/modu-ai/moai-adk.git --path .claude/skills/hns-workflow-ci-loop--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 modu-ai/moai-adk --skill hns-workflow-ci-loop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install modu-ai/moai-adk hns-workflow-ci-loop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/modu-ai/moai-adk.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/hns-workflow-ci-loop .gemini/skills/hns-workflow-ci-loop && 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 "hns-workflow-ci-loop" agent skill from https://github.com/modu-ai/moai-adk/tree/main/.claude/skills/hns-workflow-ci-loop into .gemini/skills/hns-workflow-ci-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hns-workflow-ci-loop", 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 modu-ai/moai-adk hns-workflow-ci-loopInstalls 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 modu-ai/moai-adk --skill hns-workflow-ci-loop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/modu-ai/moai-adk.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/hns-workflow-ci-loop .github/skills/hns-workflow-ci-loop && 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 "hns-workflow-ci-loop" agent skill from https://github.com/modu-ai/moai-adk/tree/main/.claude/skills/hns-workflow-ci-loop into .github/skills/hns-workflow-ci-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hns-workflow-ci-loop", 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 modu-ai/moai-adk --skill hns-workflow-ci-loop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install modu-ai/moai-adk hns-workflow-ci-loop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/modu-ai/moai-adk.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/hns-workflow-ci-loop .opencode/skills/hns-workflow-ci-loop && 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 "hns-workflow-ci-loop" agent skill from https://github.com/modu-ai/moai-adk/tree/main/.claude/skills/hns-workflow-ci-loop into .opencode/skills/hns-workflow-ci-loop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hns-workflow-ci-loop", 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.
hns-workflow-ci-loopWatches a pull request's CI checks after creation, separates required from auxiliary failures, applies limited safe fixes and escalates anything semantic to you.
After a PR is created through the MoAI sync workflow, the skill polls gh pr checks every 30 seconds, using .github/required-checks.yml to decide which checks are required and which are only auxiliary. Auxiliary failures never block readiness. It exits when required checks pass, when something fails, or after a 30-minute hard timeout, and the exit codes (0 pass, 1 fatal error, 2 required failure, 3 timeout) tell the orchestrator what to do next.
On a required failure it hands off JSON to an auto-fix phase that tries mechanical patches for at most three iterations, then asks you. Semantic failures such as races, deadlocks, panics and assertion failures are never patched automatically. Force-pushing is banned in every form, and files such as .env files, credentials, Claude settings, the required-checks file and the watch script are protected. A state file tracks the active watch, and moai pr watch --abort stops it.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2aab5f7. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ghshgitbashgoFrom 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.
Designed for Claude Code
From compatibility in the SKILL.md frontmatter.
CI Watch and Auto-Fix Loop loads about 2.4k tokens when it runs. Until then it costs about 86 tokens; SKILL.md has 932 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.
- Protected files: `.env*`, credentials, `.claude/settings*.json`, `.github/required-checks.yml`,- `**/.env`, `**/.env.*`allowed-tools: Bash, ReadAutomated 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 modu-ai/moai-adk at commit 2aab5f7, republished under its Apache-2.0 licence (© modu-ai). 932 words, ~2,415 tokens.
.claude/skills/hns-workflow-ci-loop/SKILL.md (or your agent's skills folder).hns-workflow-ci-loop)Unified CI watch + auto-fix loop. The orchestrator invokes this skill after /moai sync
Phase 4 (gh pr create) returns a PR number. The skill polls required checks, classifies
failures into mechanical vs semantic, attempts safe patches up to 3 iterations, and
escalates semantic failures via AskUserQuestion.
Trigger: /moai sync Phase 4 PR-create returns a PR number, or an existing PR needs
CI monitoring.
Two phases, one skill:
gh pr checks every 30s, classify required vs auxiliary via
.github/required-checks.yml SSoT; exit on green/fail/timeout.One-liner:
MOAI_CIWATCH_GH=gh sh scripts/ci-watch/run.sh <PR_NUMBER> <BRANCH>Exit codes:
0 — all required passed → ready-to-merge AskUserQuestion1 — fatal error → surface remediation2 — required failure → JSON handoff → auto-fix phase3 — 30-min hard timeout → blocker message, return controlHARD invariants:
manager-develop (cycle_type=autofix) subagent MUST NOT call it.--force, -f, --force-with-lease all banned)..env*, credentials, .claude/settings*.json, .github/required-checks.yml,
scripts/ci-watch/run.sh.Polling cadence: 30 seconds minimum (GitHub API rate-limit). Override via
CIWATCH_POLL_INTERVAL env, never below 30 in production. Test mode uses
MOAI_CIWATCH_NO_SLEEP=1 (single-tick exit).
30-minute hard timeout: CIWATCH_TIMEOUT_SECONDS=1800 default. On timeout, exit 3.
Do not auto-restart.
Required vs auxiliary: Required checks live in .github/required-checks.yml
branches.<pattern>.contexts. Auxiliary checks listed under auxiliary: MUST NOT block
ready-to-merge. Hardcoding check names in scripts is prohibited.
State file: .moai/state/ci-watch-active.flag (YAML). Tracks pr_number, started_at,
heartbeat_at, required_checks, abort_requested. Heartbeat staleness > 90s allows
takeover. Abort: moai pr watch --abort.
Background watch standardization: For long-running PRs (5+ min), use
gh pr checks <PR> --watch invoked via run_in_background: true. Sleep + poll loops are
prohibited — they block the orchestrator's main session.
Status report format (stderr, state-change ticks only, no ANSI):
[ci-watch] PR #<N>: required 4/6 pass, 2 pending; advisory 0 failHandoff schema on exit 2 — JSON with stable fields: prNumber, branch,
failedChecks[] (each entry {name, runId, logUrl}), auxiliaryFailCount,
totalRequired. Field stability: name, runId, logUrl are stable contract — do not
rename. Schema source: the CI-watch handoff struct.
Entry condition: ci-watch exit 2 + valid JSON handoff. State file:
.moai/state/ci-autofix-<PR>.json (PR-scoped, 24-hour staleness threshold).
OQ2 cadence matrix (single source of truth for iteration behavior):
"trivial" = whitespace, gofmt/goimports, import-order (matches classify.sh RX_TRIVIAL_*).
Patch commit rule: Every patch = new commit. Format:
fix(ci): auto-fix <classification> failure (iter <N>). After push, re-invoke
scripts/ci-watch/run.sh to restart the watch loop.
Iteration 4+ escalation (mandatory blocking, no silent timeout):
manager-develop (cycle_type=autofix) spawn prompt injects: handoff JSON, classification + sub_class,
failed CI log + PR diff, mode directive (mechanical → propose unified-diff patch;
semantic/unknown → return diagnosis only, no patch). HARD: no AskUserQuestion call from
the subagent — return Markdown only.
Audit log: .moai/logs/ci-autofix/<PR-NNN>-<YYYY-MM-DD>.md. Append-only. Each
iteration records classification, sub_class, action, patch_sha, escalation_reason.
**/.env, **/.env.***/credentials*, **/*_key.json, **/*secret*.claude/settings.json, .claude/settings.local.json.github/required-checks.yml (Wave 1 SSoT, read-only for Wave 2/3)scripts/ci-watch/run.sh (Wave 2 invariant)If the manager-develop (cycle_type=autofix) subagent proposes a patch touching any of these, reject and escalate.
Go helpers: the CI-watch classifier (required-vs-auxiliary), the handoff JSON-schema
struct, the watch state file, and the PR-watch report emitters (EmitReadyToMergeReport,
EmitFailureHandoff). Shell: scripts/ci-watch/run.sh (main
loop, mock via MOAI_CIWATCH_GH); scripts/ci-watch/lib/classify.sh (yq + grep
fallback); scripts/ci-autofix/log-fetch.sh (failure log + PR diff);
scripts/ci-autofix/classify.sh (mechanical vs semantic).
gh CLI compat: requires gh >= 2.50 for the workflow JSON field. On older gh,
classify.sh falls back to name-based heuristics from the required: list.
manager-develop (cycle_type=autofix) — failure diagnosis + patch proposal subagent
manager-git — commit/push of auto-fix patches
.claude/rules/local/ci-watch-protocol.md — HARD watch invocation contract (dev-only; governs scripts/ci-watch/)
.claude/rules/local/ci-autofix-protocol.md — HARD autofix invocation contract (dev-only; governs scripts/ci-autofix/)
Both are the dev-repo twins, not the distributed rules of the same basename. The
distributed .claude/rules/moai/workflow/ci-autofix-protocol.md is deliberately
script-free and governs the manager-develop autofix cycle instead; it does not
describe the scripts this skill runs. ci-watch-protocol.md is not distributed at all.
.github/required-checks.yml — Wave 1 SSoT
required-checks.yml to change classification.manager-develop (cycle_type=autofix) subagent calls AskUserQuestion (HARD: orchestrator-only)git push --force / -f / --force-with-lease anywhere in scriptsrequired-checks.yml modified without moai github init re-runbash scripts/ci-watch/test/run_test.sh passes all shell testsgo test ./internal/ciwatch/... ./internal/cli/pr/... -race passesinternal/ciwatch/ coverage >= 85%FormatStatusUpdate() outputEmitReadyToMergeReport first option carries (Recommended)grep -r 'push -f\|push --force' scripts/ci-autofix/ scripts/ci-watch/ returns no matches.moai/logs/ci-autofix/<PR>-<DATE>.md contains every iteration<!-- absorbed from moai-workflow-ci-watch + moai-workflow-ci-autofix per the skill consolidation policy -->
© modu-ai, 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
Just SKILL.md in .claude/skills/hns-workflow-ci-loop of modu-ai/moai-adk.
Open the folder on GitHubat commit 2aab5f7
CI Watch and Auto-Fix Loop 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 |
|---|---|---|---|---|---|---|
| CI Watch and Auto-Fix Loop this skillmodu-ai/moai-adk | 1.2k | — | ~2.4k | Automated safety check: Notes | Apache-2.0 | |
| PR BabysitterEveryInc/compound-engineering-plugin | 25k | — | ~2k | Automated safety check: Pass | MIT | |
| CIaiblueprinthq/ai-blueprint | 463 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Gh Actionlive-codes/livecodes | 1.5k | — | ~1.8k | Automated safety check: Pass | MIT | |
| GitHub Actions Hardeninggithub/awesome-copilot | 40k | 1 repos | ~2.4k | Automated safety check: Pass | MIT | |
| Michel Monitor Pull Request GitHub ActionsPackmindHub/packmind | 317 | — | ~2.6k | Automated safety check: Pass | Apache-2.0 |
EveryInc/compound-engineering-plugin
Watches an open GitHub pull request over time, routing review comments and CI failures to other skills until the PR is ready to merge.
aiblueprinthq/ai-blueprint
Set up or normalize one project Verify command and matching GitHub Actions checks while preserving existing CI, with an optional local pre-push hook.
live-codes/livecodes
Use the "Preview in LiveCodes" GitHub Action to generate preview playground links for pull request code changes.
github/awesome-copilot
Security hardening reviewer for GitHub Actions workflow files (.github/workflows/.yml).
PackmindHub/packmind
Diagnose a failed, stuck, or never-triggered CI run on a GitHub PR, apply a local fix if possible, push it, and document the result in a single running PR comment.
openJiuwen-ai/sciencediscovery
Read, diagnose, and change the CI pipeline: GitHub Actions on pull requests, the nightly schedule and the release tag.
modu-ai/moai-adk
Builds hand-editable SVG diagrams from computed layout coordinates, lints the source and renders a 2x PNG, with rules for when mermaid is the better choice.
modu-ai/moai-adk
Reference for MoAI-ADK's core development principles: TRUST 5 quality gates, SPEC-first domain-driven workflow, agent delegation and token budgeting.
modu-ai/moai-adk
Manages SPEC documents for MoAI-ADK development, with GEARS or EARS requirement notation, acceptance criteria and a link into the Plan-Run-Sync workflow.
modu-ai/moai-adk
Drives test-first development through the RED, GREEN, REFACTOR cycle, with a config switch that selects between TDD and a DDD workflow for existing code.
modu-ai/moai-adk
Gives each SPEC its own Git worktree with a registry of active workspaces, base-branch sync and cleanup of merged ones, inside the MoAI-ADK workflow.
modu-ai/moai-adk
Database guidance for PostgreSQL, MongoDB, Redis and Oracle plus Neon, Supabase and Firestore: schema design, indexing, query tuning and cloud database choice.
Works with
Categories
Watches a pull request's CI checks after creation, separates required from auxiliary failures, applies limited safe fixes and escalates anything semantic to you. yml to decide which checks are required and which are only auxiliary. Auxiliary failures never block readiness.
CI Watch and Auto-Fix Loop fits situations like: monitoring CI on a pull request that was just opened; letting an agent retry safe, mechanical CI fixes with a fixed iteration cap; distinguishing blocking required checks from optional ones; aborting or taking over a stalled CI watch.
Run `npx skills add modu-ai/moai-adk --skill hns-workflow-ci-loop -a claude-code`. Or copy the skill folder (.claude/skills/hns-workflow-ci-loop in modu-ai/moai-adk) into .claude/skills/hns-workflow-ci-loop in your project. Claude Code loads it when a task matches its description.
Run `npx skills add modu-ai/moai-adk --skill hns-workflow-ci-loop -a codex`. Or copy the skill folder (.claude/skills/hns-workflow-ci-loop in modu-ai/moai-adk) into .agents/skills/hns-workflow-ci-loop 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 modu-ai/moai-adk --skill hns-workflow-ci-loop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hns-workflow-ci-loop, .gemini/skills/hns-workflow-ci-loop, .github/skills/hns-workflow-ci-loop and .opencode/skills/hns-workflow-ci-loop in your project.
Going by SKILL.md and its folder, CI Watch and Auto-Fix Loop needs the command-line tools its instructions call (gh, sh, git, bash and go). Our summary lists: GitHub CLI (gh) authenticated to the repository; A .github/required-checks.yml file listing the required checks; The MoAI workflow that creates the PR. Its frontmatter pre-approves these tools: Bash, Read. Compatibility (from SKILL.md): Designed for Claude Code.
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 notes only (mentions a .env file; pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
CI Watch and Auto-Fix Loop 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 2.4k tokens (SKILL.md is roughly 9.7k 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 CI Watch and Auto-Fix Loop: PR Babysitter (EveryInc/compound-engineering-plugin, 25k stars), CI (aiblueprinthq/ai-blueprint, 463 stars), Gh Action (live-codes/livecodes, 1.5k stars) and GitHub Actions Hardening (github/awesome-copilot, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
modu-ai (a GitHub organization) maintains it in modu-ai/moai-adk, which has 1,232 GitHub stars. The repository holds 48 skills in this directory. The repository was last updated on October 9, 2026.
Source: modu-ai/moai-adk on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.