Medox pr-status
Fetch and display the full status of the current PR — CI checks, GitHub Actions runs, reviews, and code comments — using GitHub MCP tools. Invoke manually with /pr-status.
install
source · Clone the upstream repo
git clone https://github.com/spideystreet/medox
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/spideystreet/medox "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/pr-status" ~/.claude/skills/spideystreet-medox-pr-status && rm -rf "$T"
manifest:
.claude/skills/pr-status/SKILL.mdsource content
Skill: PR Status
Display a complete dashboard of the current PR's remote state.
Steps
1. Identify the current PR
Run
git branch --show-current to get the branch name, then use git log --oneline -1 to get the HEAD SHA.
Use
mcp__github__list_pull_requests with head: "spideystreet:<branch>" and state: "open" to find the PR number.
If no open PR is found, report: "No open PR found for branch
<branch>."
2. Fetch all PR data (in parallel)
Call all MCP tools + Actions run in a single parallel batch:
| Tool | Data |
|---|---|
| Title, state, author, base/head, mergeable, draft |
| Commit statuses (if any) |
| Reviews (author, state, body) |
| Code review comments (path, line, body, diff_hunk) |
| GitHub Actions workflow runs |
Note: GitHub MCP does not expose Actions runs, so use
gh run list as a necessary exception for this data only.
2b. Fetch failed job logs (conditional)
If any Actions run has
conclusion: "failure", fetch the logs for the most recent failed run:
gh run view <run_id> --log-failed 2>&1 | tail -60
Parse the output to extract the failing job name, step, and error message.
3. Format and display
Output a single formatted dashboard:
## PR #<number>: <title> **State**: <open/closed/merged> | **Mergeable**: <mergeable_state> | **Branch**: <head> → <base> | **Author**: @<login> ### GitHub Actions | Workflow | Status | Conclusion | SHA | |----------|--------|------------|-----| | <name> | <status> | <conclusion> | <sha[:7]> | ### Commit Statuses | Context | State | |---------|-------| | <context> | <state> | (or "None" if empty) ### Reviews - @<reviewer>: <state> (APPROVED / CHANGES_REQUESTED / COMMENTED) > <body excerpt if any> ### Code Comments - @<author> `<path>#<line>`: ```diff <diff_hunk>
<body>
If a section has no items, show "None" instead of the table/list. **Merge conflicts**: Check `mergeable` and `mergeable_state` from `get_pull_request`. If `mergeable` is `false` or `mergeable_state` is `"dirty"`, display a prominent warning:
⚠ CONFLICTS — This branch has conflicts with
main that must be resolved before merging.
If CI failed, add a **Failure Logs** section after GitHub Actions:
Failure Logs (run <run_id>)
Job: <job_name> | Step: <step_name>
``` <last ~40 lines of error output> ```
## Rules - **Always use GitHub MCP tools** for PR data — never fall back to `gh` CLI - Exception: use `gh run list` for GitHub Actions runs (no MCP equivalent) - Use `git` CLI only for local branch detection - Call all tools in parallel to minimize latency - Do not modify any files or state — this is a read-only skill - Owner and repo are always `spideystreet` / `medox`