From majestic-engineer
Polls GitHub PR CI checks at intervals until completion or timeout. Useful for checking CI status, waiting for passes, monitoring builds, or verifying PR green status.
npx claudepluginhub majesticlabs-dev/majestic-marketplace --plugin majestic-engineerThis skill uses the workspace's default tool permissions.
This skill provides automated monitoring of GitHub Pull Request CI checks. It polls PR check status at regular intervals and reports when checks pass, fail, or timeout, enabling continuous integration workflow automation.
Polls GitHub CI check status for current branch's PR, reports pass/fail/pending with logs and blocking reviews, surfaces PR comments even if green.
Monitors GitHub Actions CI runs for current HEAD or specified SHA/branch until completion, reporting pass/fail/timeout verdicts per run. Use after push, for PR checks, or on 'watch CI' keywords.
Detects GitHub Actions CI failures in PRs, analyzes logs with gh CLI, fixes code, commits and pushes changes, then re-verifies up to 3 retries until passing.
Share bugs, ideas, or general feedback.
This skill provides automated monitoring of GitHub Pull Request CI checks. It polls PR check status at regular intervals and reports when checks pass, fail, or timeout, enabling continuous integration workflow automation.
Trigger this skill when the user requests:
Run the check_ci.sh script to monitor PR checks:
bash scripts/check_ci.sh [PR_NUMBER] [INTERVAL] [TIMEOUT]
Parameters:
PR_NUMBER (optional): PR number to monitor. Auto-detects from current branch if not providedINTERVAL (optional, default: 15): Seconds between polling attemptsTIMEOUT (optional, default: 600): Maximum wait time in secondsExamples:
# Auto-detect PR from current branch
bash scripts/check_ci.sh
# Monitor specific PR #123
bash scripts/check_ci.sh 123
# Custom interval (30s) and timeout (15 min)
bash scripts/check_ci.sh 123 30 900
The script returns three possible outcomes:
✅ Success (exit code 0): All CI checks passed
❌ Failure (exit code 1): One or more CI checks failed
⏰ Timeout (exit code 2): Polling exceeded timeout limit
check_ci.sh [PR] [interval] [longer_timeout]Structure the response as follows:
## CI Polling Results for PR #[number]
### Final Status
[✅ All checks passed / ❌ Checks failed / ⏰ Polling timed out]
### Polling Summary
- Duration: [time]
- Final state: [description]
- Specific failures: [if applicable]
### Next Steps
[Specific actions based on results]
When checks fail, diagnose and fix by stack:
TECH_STACK = /majestic:config tech_stack generic
| Failure | Indicators | Fix |
|---|---|---|
| Test | FAILED, Error | Fix test or code |
| Rubocop | Offenses: | bundle exec rubocop -a |
| Types | TypeError | Add nil checks |
| Bundle | bundle install failed | Fix Gemfile |
Verify: bundle exec rspec && bundle exec rubocop
| Failure | Indicators | Fix |
|---|---|---|
| Test | FAIL, expected | Fix test or code |
| ESLint | rule names | npm run lint -- --fix |
| TypeScript | TS2xxx | Fix type errors |
| Deps | npm ERR! | Fix package.json |
Verify: npm test && npm run lint
| Failure | Indicators | Fix |
|---|---|---|
| Test | FAILED, AssertionError | Fix test or code |
| Ruff | Found x error(s) | ruff check --fix |
| Types | mypy | Fix type hints |
| Deps | ModuleNotFoundError | Update deps |
Verify: pytest && ruff check .
| Failure | Indicators | Fix |
|---|---|---|
| Test | --- FAIL: | Fix test or code |
| Lint | linter warnings | golangci-lint run --fix |
| Build | cannot find package | go mod tidy |
Verify: go test ./... && golangci-lint run
gh run view <RUN_ID> --log-failedFor PR auto-detection to work:
gh) must be authenticatedNo PR found:
gh pr viewGitHub CLI issues:
gh is installed and authenticatedThis skill complements:
Bash script that performs the actual CI polling. The script:
gh pr checks at configurable intervalsThe script can be executed directly without loading into context, making it token-efficient for repeated CI monitoring operations.