一键导入
eia-github-pr-checks
Use when monitoring PR checks. Trigger with CI status, check verification, or PR readiness requests.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when monitoring PR checks. Trigger with CI status, check verification, or PR readiness requests.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Quality gate enforcement for PR integration. Use when verifying code through pre-review, review, pre-merge, or post-merge checkpoints. Trigger with /eia-enforce-gates.
Software release management and coordination. Use when creating releases, bumping versions, or rolling back deployments. Trigger with release tasks or /eia-create-release.
Use when managing team tasks through GitHub Projects V2 or synchronizing project state via GraphQL API. Trigger with /sync-projects or when updating project items.
Use when diagnosing CI/CD failures. Trigger with CI failure logs or pipeline errors.
Use when processing parallel PRs. Trigger with git worktree or parallel development requests.
Use when managing GitHub Issues including creation, labels, milestones, assignees, and comments using gh CLI. Trigger with create issue, set labels, assign milestone.
| name | eia-github-pr-checks |
| description | Use when monitoring PR checks. Trigger with CI status, check verification, or PR readiness requests. |
| license | Apache-2.0 |
| compatibility | Requires AI Maestro installed. |
| metadata | {"version":"1.0.0","author":"Emasoft","tags":"github, ci-cd, pull-requests, checks, automation","triggers":"verify PR check status, wait for CI to complete, check if PR is ready to merge, get failing check details, monitor check progress"} |
| agent | api-coordinator |
| context | fork |
| workflow-instruction | Step 21 |
| procedure | proc-evaluate-pr |
| user-invocable | false |
This skill enables agents to monitor, interpret, and wait for GitHub Pull Request check statuses. Use this skill when you need to:
| Output Type | Format | Contents |
|---|---|---|
| Check Status Report | JSON | Complete status of all PR checks including pass/fail counts, individual check conclusions, and required check status |
| Wait Completion Report | JSON | Final status after polling, including timeout status, total wait time, and checks summary |
| Check Details | JSON | Detailed information about a specific check including duration, logs URL, and failure output |
| Exit Code | Integer | Standardized exit code (0-6) indicating success, error type, or specific failure reason |
Follow these steps to monitor and manage GitHub PR checks:
Determine Your Objective
Select and Execute the Appropriate Script
eia_get_pr_checks.py for current status snapshotseia_wait_for_checks.py for polling until completioneia_get_check_details.py for investigating specific failuresParse the JSON Output
all_passing or final_status field for overall statusInterpret Check Conclusions
Take Appropriate Action
eia_get_check_details.pyeia_wait_for_checks.py with appropriate timeoutHandle Errors Gracefully
Copy this checklist and track your progress:
gh auth statuspython eia_get_pr_checks.py --pr <number>all_passing field in JSON outputpython eia_wait_for_checks.py --pr <number> --timeout <seconds>python eia_get_check_details.py --pr <number> --check "<name>"| Scenario | Script to Use |
|---|---|
| Get current status of all PR checks | eia_get_pr_checks.py |
| Wait for all checks to finish | eia_wait_for_checks.py |
| Investigate a specific failing check | eia_get_check_details.py |
| Quick check if PR is mergeable | eia_get_pr_checks.py --summary-only |
START: What do you need to know about PR checks?
│
├─► "What is the current status of all checks?"
│ └─► Use: eia_get_pr_checks.py --pr <number>
│ Returns: List of all checks with their conclusions
│
├─► "Are all required checks passing?"
│ └─► Use: eia_get_pr_checks.py --pr <number> --required-only
│ Returns: Status of only required checks
│
├─► "I need to wait until checks complete"
│ └─► Use: eia_wait_for_checks.py --pr <number> --timeout <seconds>
│ Returns: Final status after all checks complete or timeout
│
├─► "Why did a specific check fail?"
│ └─► Use: eia_get_check_details.py --pr <number> --check <name>
│ Returns: Detailed check info including logs URL
│
└─► "Is this PR ready to merge?"
└─► Use: eia_get_pr_checks.py --pr <number> --summary-only
Returns: Simple pass/fail summary
| Conclusion | Meaning | Action Required |
|---|---|---|
success | Check passed | None |
failure | Check failed | Investigate and fix |
pending | Check still running | Wait or investigate if stuck |
skipped | Check was skipped | Usually OK, verify skip condition |
cancelled | Check was cancelled | Re-run if needed |
timed_out | Check exceeded time limit | Optimize or increase timeout |
action_required | Manual action needed | Review check details |
neutral | Neither pass nor fail | Check is informational only |
stale | Check is outdated | Push new commit to trigger |
Purpose: Retrieve all check statuses for a Pull Request.
Usage:
# Get all checks for PR #123
python eia_get_pr_checks.py --pr 123
# Get only required checks
python eia_get_pr_checks.py --pr 123 --required-only
# Get summary only (pass/fail count)
python eia_get_pr_checks.py --pr 123 --summary-only
# Specify repository (if not in git directory)
python eia_get_pr_checks.py --pr 123 --repo owner/repo
Output Format:
{
"pr_number": 123,
"total_checks": 5,
"passing": 3,
"failing": 1,
"pending": 1,
"skipped": 0,
"all_passing": false,
"required_passing": false,
"checks": [
{
"name": "build",
"status": "completed",
"conclusion": "success",
"required": true
}
]
}
Purpose: Poll and wait for all PR checks to complete.
Usage:
# Wait up to 10 minutes for checks
python eia_wait_for_checks.py --pr 123 --timeout 600
# Wait only for required checks
python eia_wait_for_checks.py --pr 123 --required-only --timeout 300
# Custom polling interval (default 30s)
python eia_wait_for_checks.py --pr 123 --interval 60
Output Format:
{
"pr_number": 123,
"completed": true,
"timed_out": false,
"final_status": "all_passing",
"wait_time_seconds": 180,
"checks_summary": {
"passing": 5,
"failing": 0,
"pending": 0
}
}
Purpose: Get detailed information about a specific check.
Usage:
# Get details for a specific check
python eia_get_check_details.py --pr 123 --check "build"
# Include logs URL
python eia_get_check_details.py --pr 123 --check "test" --include-logs-url
Output Format:
{
"name": "build",
"status": "completed",
"conclusion": "failure",
"started_at": "2024-01-15T10:00:00Z",
"completed_at": "2024-01-15T10:05:30Z",
"duration_seconds": 330,
"details_url": "https://github.com/...",
"logs_url": "https://github.com/.../logs",
"output": {
"title": "Build failed",
"summary": "Compilation error in src/main.py"
}
}
For detailed guidance on interpreting check statuses, see ci-status-interpretation.md:
For guidance on waiting for checks, see polling-strategies.md:
# Get all check statuses for PR #123
python eia_get_pr_checks.py --pr 123
# If all_passing is true, proceed with merge
# If not, investigate failing checks
# Wait up to 10 minutes for all checks to complete
python eia_wait_for_checks.py --pr 456 --timeout 600
# If timed_out is true, check CI runner status
# If completed is true and final_status is all_passing, merge is safe
| Problem | Cause | Solution |
|---|---|---|
| "No checks found" | PR has no CI configured | Verify repository has CI workflows |
| Checks stuck in "pending" | CI runner unavailable | Check GitHub Actions status page |
| Required check missing | Branch protection misconfigured | Review repository settings |
| Timeout while waiting | CI taking too long | Increase timeout or check CI performance |
| Authentication error | gh CLI not logged in | Run gh auth login |
# Verify gh CLI authentication
gh auth status
# Check repository access
gh repo view owner/repo
# Manual check inspection
gh pr checks <number> --json name,status,conclusion
# View raw API response
gh api repos/owner/repo/commits/SHA/check-runs
gh auth login)All scripts use standardized exit codes for consistent error handling:
| Code | Meaning | Description |
|---|---|---|
| 0 | Success | Output is valid JSON with check data |
| 1 | Invalid parameters | Bad PR number, missing required args |
| 2 | Resource not found | PR or check does not exist |
| 3 | API error | Network, rate limit, timeout waiting for checks |
| 4 | Not authenticated | gh CLI not logged in |
| 5 | Idempotency skip | N/A for these scripts |
| 6 | Not mergeable | N/A for these scripts |
Note: eia_wait_for_checks.py returns exit code 3 on timeout. Check the JSON output's timed_out field for details.