一键导入
merge-dep-prs
Use this skill when merging dependency update PRs; fixes CI, handles changesets, never merges release PRs.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use this skill when merging dependency update PRs; fixes CI, handles changesets, never merges release PRs.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use this skill when deploying a static site to GitHub Pages — configures base path, Actions workflow, and Pages source.
Use this skill when a published-package change needs a changeset (monorepos supported).
Use this skill when auditing a SKILL.md for structure, quality, and security before installing or committing.
Use this skill when the user asks to create a new agent skill — scaffold, audit, and link into detected agents.
Use this skill when looking for curated skill recommendations from awesome lists, with exact install commands.
Use this skill when a PR fails security or vulnerability checks (audit, CVE, Dependabot, Snyk, or advisory blocks).
| name | merge-dep-prs |
| description | Use this skill when merging dependency update PRs; fixes CI, handles changesets, never merges release PRs. |
Work through open dependency-update PRs in one or more repositories: identify them, merge the ones that pass CI, fix the ones that fail, and skip anything that would trigger a release.
Covers Renovate, Dependabot, and manual bumps for packages, dev dependencies, and repo tooling. Use when asked to merge pending PRs, land dependency updates, process dep PRs, or clean up the PR queue.
git remote get-url origin
| Remote pattern | Platform | CLI tool |
|---|---|---|
github.com | GitHub | gh |
gitlab.com or self-hosted GitLab | GitLab | glab |
All examples below use gh. For GitLab, substitute glab mr for gh pr, glab ci for gh run.
GitHub:
gh pr list --repo <owner>/<repo> --state open \
--json number,title,headRefName,author,mergeStateStatus,statusCheckRollup \
--jq '.[] | {number, title, state: .mergeStateStatus}'
GitLab:
glab mr list --state opened
Keep (dependency updates):
chore(deps), fix(deps), bump X from, update X to, upgrade X, chore: upgrade <tool>, etc.renovate[bot], dependabot[bot], or a human doing a manual dep bumprenovate/*, dependabot/*, chore/upgrade-*Skip always — do not merge:
Any PR whose purpose is to trigger a release:
"Version Packages" (changesets)"Release X.Y.Z" or "chore(release): ..." (semantic-release)semantic-release-bot, release-please[bot], or similar release automationIf working across multiple repos, repeat for each repo before proceeding.
For each dep PR, note its CI result:
| Status | Action |
|---|---|
| All checks pass | Merge immediately (Step 3) |
| Pending | Wait or move on; revisit after other PRs |
| Failing | Diagnose (Step 4) |
| BEHIND base | Update branch first, then re-check CI |
| Obsolete (base already has the fix) | Close with a note (Step 8) |
Check if the base branch already contains the fix before spending time on a failing PR:
# Example: check if main already has a specific version
git show origin/main:package.json | grep '"packageName"'
GitHub:
gh pr merge <number> --repo <owner>/<repo> --squash
GitLab:
glab mr merge <number> --squash
If blocked by branch protection (mergeStateStatus = BLOCKED or BEHIND):
# Update branch first (GitHub)
gh api --method PUT repos/<owner>/<repo>/pulls/<number>/update-branch
# Then re-check CI; once passing:
gh pr merge <number> --repo <owner>/<repo> --squash
If the only blocker is a required check that already passed on an older commit, use --admin sparingly:
gh pr merge <number> --repo <owner>/<repo> --squash --admin
GitHub:
gh run list --repo <owner>/<repo> --branch <branch> --json databaseId,name,conclusion --jq '.[:3]'
gh run view <run-id> --repo <owner>/<repo> --log-failed 2>&1 | grep -v "##\[" | grep -E "(ERR|Error|error|FAIL|Cannot)" | head -30
GitLab:
glab ci list --branch <branch>
glab ci view <pipeline-id>
For more context:
gh run view <run-id> --repo <owner>/<repo> --log-failed 2>&1 | grep -v "##\[" | tail -60
The patterns below are common examples. For unfamiliar failures, read the full log and reason by analogy — identify what broke, check if the dep bump introduced a breaking change, and apply a targeted fix.
Symptom: [ERR_PNPM_IGNORED_BUILDS] Ignored build scripts: @parcel/watcher, esbuild, fsevents (pnpm 11+)
Fix: add the packages to onlyBuiltDependencies in pnpm-workspace.yaml:
onlyBuiltDependencies:
- '@parcel/watcher'
- esbuild
- fsevents
Check what other repos in the org use and match the pattern.
Symptom: version has an incorrect type, expected a string, but received null
Fix: find and fix all "version": null entries in test fixtures:
grep -rl '"version": null' . --include="package.json" | grep -v node_modules
# replace with "version": "0.0.0"
Symptom: Found 'pipeline' field instead of 'tasks'
Fix: In turbo.json, rename "pipeline" → "tasks" and update $schema:
{
"$schema": "https://turbo.build/schema.json",
"tasks": { ... }
}
Symptom: formatter or linter reports N errors after a version bump (e.g. Biome, ESLint, Prettier)
Fix:
<linter> check --fix . or <formatter> --write .git checkout -- '*.ext'Symptom: mergeStateStatus: DIRTY or CONFLICTING
Fix options:
git fetch origin
git checkout -b <fix-branch> origin/<pr-branch>
git rebase origin/main
# resolve conflicts, then push
git push origin <fix-branch>
Symptom: TS parse errors after upgrading a library that requires a newer TypeScript version
Fix: Upgrade TypeScript in the affected package. For monorepos, add a workspace override to unify versions:
# pnpm-workspace.yaml
overrides:
typescript: '~5.x.x'
Symptom: Module not found: Can't resolve 'react/jsx-runtime' + BREAKING CHANGE: The request failed to resolve only because it was resolved as fully specified
Fix: configure your bundler to disable fullySpecified resolution for .mjs files. Example for webpack:
config.module.rules.unshift({
test: /\.m?js/,
resolve: { fullySpecified: false }
})
Symptom: pushed fixes to a PR branch but the workflow never fires
Likely cause: The PR contains workflow file changes. GitHub may require a maintainer action to re-trigger.
Fix: Close and reopen the PR. If that doesn't work, create a fresh PR from a new branch (cherry-pick only the dep bump commit, excluding workflow file changes).
If CI reports a missing changeset check failure:
patch bump with summary "Update dependencies.")add-changeset or equivalent skill available, invoke itDo not add a changeset if:
After applying fixes:
git add <changed-files>
git commit -m "fix: <description of what was fixed>"
git push origin <branch>
Watch CI:
# GitHub
gh run list --repo <owner>/<repo> --branch <branch> --limit 3
gh run watch <run-id> --repo <owner>/<repo>
# GitLab
glab ci list --branch <branch>
Once CI passes, merge (Step 3). Then move on to the next PR in your list.
A PR is obsolete when the base branch already contains the intended change:
git show origin/main:package.json | grep '"packageName"'
GitHub:
gh pr close <number> --repo <owner>/<repo> \
--comment "main is already on <version>; closing as superseded."
GitLab:
glab mr close <number> --note "main is already on <version>; closing as superseded."