About loop-on-ci
loop-on-ci is a skill for iterating on pull request CI failures until required checks pass. It uses `gh pr checks` to inspect and watch the complete set of PR-attached checks, then rechecks after each push.
Key features
- 01Resolve the pull request for a branch
- 02Inspect all PR-attached checks
- 03Watch pending checks with fail-fast
- 04Diagnose failures and recheck after pushes
- 05Report CI status, fixes, and PR URL
Use cases
- 01Check whether a pull request is ready to merge
- 02Find and address failures in required checks
- 03Monitor pending checks after pushing a fix
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ poteto/ plugins --skill loop-on-ciAfter installing, type/loop-on-ciin Claude Code to confirm it loaded.
Details
From the project READMELoop on CI
Trigger
Need to watch a branch or pull request and iterate on CI failures until all required checks are green.
Use gh pr checks as the source of truth. It includes all PR-attached checks, while gh run list only covers GitHub Actions.
Workflow
- Resolve the PR for the current branch.
- Inspect current PR checks before waiting.
- If checks already failed, diagnose those failures first.
- If checks are pending, watch with
gh pr checks --watch --fail-fast. - After each push, re-check the full PR check set and repeat until green.
Commands
# Resolve the active PR
gh pr view --json number,url,headRefName
# Inspect all attached checks
gh pr checks --json name,bucket,state,workflow,link
# Watch pending checks and fail fast
gh pr checks --watch --fail-fast
# GitHub Actions logs, when the failing check links to a GHA run
gh run view <run-id> --log-failed
Guardrails
- Keep each fix scoped to a single failure cause when possible.
- Do not bypass hooks (
--no-verify) to force progress. - If the failure is clearly unrelated to the PR and appears fixed on main, merge latest main instead of bloating the PR with unrelated fixes.
- If failures are flaky, retry once and report flake evidence.
- Re-run
gh pr checks --json name,bucket,state,workflow,linkafter every push; the check set can change.
Output
- Current CI status
- Failure summary and fixes applied
- PR URL once checks are green
Comments
Markdown supported