一键导入
updater
Analyzes Renovate PRs to find changelogs, assess codebase impact, and post a summary comment to the PR. Used when asked to review or analyze a Renovate PR.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Analyzes Renovate PRs to find changelogs, assess codebase impact, and post a summary comment to the PR. Used when asked to review or analyze a Renovate PR.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Watch demo videos linked in GitHub issue/PR comments. Downloads the video, transcribes audio with whisper and extracts frames. Use when encountering a video URL in a teamniteo or mayetrx repository.
Re(base) main — rebase the current branch on the repo's default branch (`origin/main`, or `origin/master` where that's the name) end-to-end — runs the git rebase, auto-resolves conflicts in the project's known auto-generated files, renames branch-added alembic migrations to today's date, regenerates the alembic chain when needed, and re-runs codegen plus the frontend build so generated artifacts reflect the rebased source. Use when the user says "re-main", "rebase on main", or "rebase my branch", or after working on a long-lived feature branch and wanting to pull in main. Full flow when the project has the generated files listed in the skill; otherwise a safe rebase with no auto-resolution.
Generate a weekly changelog entry and prepend it to documentation/changelog.md
Port a feature or fix from a PR in a sister project to the current project. Used when copying code between two similar codebases (e.g. two SaaS products that share patterns).
Find PRs merged in the last week in a sister project that haven't been ported to this project (and vice versa). Produces a checklist to paste into a tracking issue, then optionally hands off to the port skill.
| name | updater |
| description | Analyzes Renovate PRs to find changelogs, assess codebase impact, and post a summary comment to the PR. Used when asked to review or analyze a Renovate PR. |
| argument-hint | <owner>/<repo>#<PR number> or GitHub PR URL |
| allowed-tools | ["AskUserQuestion","Bash(cat *)","Bash(gh api*)","Bash(gh pr comment*)","Bash(gh pr diff*)","Bash(gh pr view*)","Bash(git diff*)","Bash(git log*)","Bash(git remote*)","Bash(grep *)","Bash(head *)","Bash(python3 *)","Glob","Grep","Read","WebFetch","WebSearch","Write"] |
Find changelogs for each updated package, check codebase impact, and print a summary for the PR.
Be concise. No filler, no preamble, no narration of what you are doing. Go straight to running the parser scripts and fetching changelogs. Only output the final formatted comment.
Parse $ARGUMENTS to extract owner, repo, and PR number. Accept:
https://github.com/<owner>/<repo>/pull/<number><owner>/<repo>#<number><number> — infer owner/repo from git remote get-url originIf $ARGUMENTS is empty or unparseable, use AskUserQuestion to ask for the PR URL or number.
Use gh for all GitHub reads. Pass --repo <owner>/<repo> explicitly so the commands work regardless of the current directory.
Fetch PR metadata:
gh pr view <number> --repo <owner>/<repo> --json title,body,state,url
List changed files and classify the ecosystem:
gh pr view <number> --repo <owner>/<repo> --json files --jq '.files[].path'
| Files changed | Ecosystem |
|---|---|
uv.lock | Python / uv |
flake.lock | Nix flakes |
package-lock.json, yarn.lock, bun.lock | Node.js |
A single PR may touch multiple ecosystems. Handle each.
Get the PR diff and pipe it straight into the appropriate parser. gh pr diff streams the raw unified diff to stdout, so no temp files or jq extraction are needed. Each parser in ~/.claude/skills/updater/utils/ reads raw diff text from stdin and outputs package old_version new_version per line.
Python / uv (uv.lock):
gh pr diff <number> --repo <owner>/<repo> | python3 ~/.claude/skills/updater/utils/parse_uv_diff.py
Nix flakes (flake.lock):
gh pr diff <number> --repo <owner>/<repo> | python3 ~/.claude/skills/updater/utils/parse_flake_diff.py
Node.js (package-lock.json / yarn.lock / bun.lock):
gh pr diff <number> --repo <owner>/<repo> | python3 ~/.claude/skills/updater/utils/parse_npm_diff.py
Then identify direct dependencies by reading the manifest file:
pyproject.toml — [project.dependencies], [dependency-groups]package.json — dependencies, devDependenciesflake.nix — all inputs in the inputs attrset are direct. Nested inputs (dependencies of inputs) are transitive.Only fetch changelogs for direct dependencies. Count transitive updates separately for the summary.
For each direct dependency update, find the changelog. Try in order:
PR body: Renovate often includes release notes and changelogs directly in the PR description (especially for GitHub Actions). Check the PR body first. If it already contains changelog entries for a package, use those instead of fetching externally.
GitHub Releases: Find the package's GitHub repo, then use WebFetch to read releases between old and new versions.
https://pypi.org/pypi/<package>/json → info.project_urlshttps://registry.npmjs.org/<package> → repository.urlnixpkgs): Don't just say "routine update". Do this:
flake.nix to find which packages are used (e.g., pkgs.python313, pkgs.nodejs, pkgs.postgresql)WebSearch for "nixpkgs <package> update" or check the NixOS discourse/release notes for notable changesWebFetch the GitHub comparison page and summarize actual changes. Don't just paste a link.CHANGELOG file: Read CHANGELOG.md, CHANGES.md, or HISTORY.md from the package repo with:
gh api repos/<owner>/<repo>/contents/<file> -H "Accept: application/vnd.github.raw"
Web search: WebSearch for "<package> changelog <new_version>".
Skip gracefully: Note "No changelog found" and move on.
CRITICAL: Only report changes BETWEEN the old and new versions. If updating from 23.0.0 → 25.0.0, only include entries for 23.0.1 through 25.0.0. A CVE patched in 22.0.0 is irrelevant when updating from 23.0.0. Verify every CVE or breaking change is actually in the version range. If you cannot confirm the version, do not mention it.
Look for and tag with:
[Breaking] — removed APIs, deprecated features, breaking behavior changes[Security] — CVEs, vulnerability fixes[Feature] — new capabilities, improvements[Fix] — bug fixes relevant to the codebaseOnly include changelog entries that are relevant to this codebase. Don't list every change — focus on what actually matters for this project.
Use ultrathink. Familiarize yourself with the codebase.
For each direct dependency with changelog findings:
Search the local codebase for usage:
Grep for import <pkg> or from <pkg>Grep for require('<pkg>'), from '<pkg>', import.*from '<pkg>'Cross-reference changelog entries with actual codebase usage:
In the output:
foo() in bar.py:42" or "new batch_process() could replace manual loop in handler.py")If the codebase is not checked out locally, skip and note it.
Write the formatted comment to a temp file, then post it to the PR:
gh pr comment <number> --repo <owner>/<repo> --body-file /tmp/renovate-comment.md
Group packages by the file they came from. Do not list the full path of the files. Use the format defined in ~/.claude/skills/updater/templates/FORMAT.md.
Focus the detailed sections on updates that matter: breaking changes, security fixes, and major new features.
For packages that only have minor/patch updates with no breaking changes, no security fixes, and no notable features: Only include them in the summary count.
At the end, write a 1-2 sentence summary of what actions we need to take. Style it in bold.
Quality guidelines:
namespace-profile-niteo Namespace cloud runners" not just "runs on CI").