用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/mlflow/dev --skill pr-review命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
Add a review comment to a GitHub pull request.
Fetch PR diff with filtering and line numbers for code review.
Review a GitHub PR's UI/UX changes by launching the MLflow web app, driving a headless agent-browser over the changed surfaces, and writing a Markdown UI-review comment body (findings + screenshots) for the workflow to post.
| name | pr-review |
| description | Review a pull request and emit a validated review payload. |
| disable-model-invocation | true |
| argument-hint | <pr_url> <payload_path> <media_dir> |
| arguments | ["pr_url","payload_path","media_dir"] |
Review $pr_url and write a JSON review payload to $payload_path. Do not post anything: writing that payload is the whole job.
The commands below take <pr_url> from the PR URL above, and <owner>, <repo>, and
<pr_number> from its parts.
These reads are independent. Issue them as parallel tool calls in a single turn, not sequentially.
PR title and description
gh pr view <pr_url> --json title,body
PR diff hunks via the fetch-diff skill:
uv run --package skills skills fetch-diff <pr_url>
Its annotated output gives you the line and side to anchor each comment on.
Existing review threads, so you can avoid duplicating prior feedback. Up to 100 threads (open, resolved, and outdated) with up to 20 comments each:
gh api graphql -F owner=<owner> -F repo=<repo> -F pr=<pr_number> \
--jq '.data.repository.pullRequest.reviewThreads.nodes | map(.comments = .comments.nodes)' \
-f query='
query($owner: String!, $repo: String!, $pr: Int!) {
repository(owner: $owner, name: $repo) {
pullRequest(number: $pr) {
reviewThreads(first: 100) {
nodes {
isResolved
isOutdated
path
line
comments(first: 20) {
nodes { author { login } body }
}
}
}
}
}
}'
Load the repository style rules applicable to the changed files:
git diff --name-only HEAD^1 | uv run --package skills skills load-rules
The working tree holds the PR merged into the base (refs/pull/<pr_number>/merge), so file contents
reflect the post-merge state. Explore it for context beyond the diff (existing patterns, call sites
of changed symbols, file conventions).
The merge ref's base parent is reachable as HEAD^1. When the diff doesn't show enough (verifying
a refactor preserved behavior, reading a masked deleted file, or seeing the pre-change version of a
heavily modified one), use git show HEAD^1:<path> rather than re-fetching the file over the API.
The checkout is shallow, so nothing older than HEAD^1 exists: git log and git blame stop at
the shallow boundary rather than reaching the commit that actually introduced a line. Neither
errors, so don't trust them for pre-change history.
Verify rather than infer. A grep through the installed package, a uv run python -c '...', or a
quick search and fetch of the upstream docs will settle most questions in seconds, and an unverified
finding should be dropped rather than hedged. When the cheap checks don't settle it, escalate to the
expensive ones: build the docs site, build and boot the UI, start the backend, run the affected
tests.
Node and agent-browser are on PATH for docs and UI changes. Capture to an absolute path named for
what it shows: agent-browser screenshot --full $media_dir/example.png, and cite that same
path in a finding.
Evaluate the changed code across these dimensions:
Classify each finding that survives those exclusions:
Read review-payload.schema.json, then write
$payload_path matching it. It defines the severity prefix each comment body carries
and derives event from those prefixes.
Authoring rules not captured by the schema:
path:line in the body.```suggestion and preserve original
indentation.$media_dir and cite it by the absolute path you wrote it to:
 to embed, or [desc]($media_dir/name.png)
to link. A later workflow step uploads it and rewrites the reference to a URL. Do not
upload anything yourself. Skip this unless a visual genuinely beats prose; most reviews
need none..mp4, .mov, .webm) on a line of its own. GitHub renders a
player only for a bare URL in its own paragraph, so a video cited mid-sentence falls back
to a plain link.Validate before finishing, then fix any errors and re-emit until both of these pass:
uv run --package skills skills validate-review $payload_path
# only when you wrote a file into $media_dir
uv run --package skills skills embed-media --check --dir $media_dir --target $payload_path
Do not post the review: no gh pr review, no review/comment APIs, no other skills. Stop
after writing and validating $payload_path.