Best for
- Use when the user wants to review dependency PRs, check which are mergeable, fix failing CI on dependency updates, or clean up a backlog of automated dependency PRs.
jackchuka/skills/gh-dep-pr-triage/SKILL.md
Triage and fix dependency update PRs (Renovate, Dependabot, etc.). Use when the user wants to review dependency PRs, check which are mergeable, fix failing CI on dependency updates, or clean up a backlog of automated dependency PRs. Also triggers when the user mentions "renovate PRs", "dependabot PRs", "dependency updates", "dep PRs".
Decision brief
End-to-end workflow for triaging dependency update PRs: list them, assess merge safety, and fix CI failures — all with maximum parallelism. Do NOT merge PRs unless the user explicitly asks.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/jackchuka/skills --skill "gh-dep-pr-triage"Inspect the Agent Skill "gh-dep-pr-triage" from https://github.com/jackchuka/skills/blob/93358a1cb4bafddb4dd90a4bae56422315e9922f/gh-dep-pr-triage/SKILL.md at commit 93358a1cb4bafddb4dd90a4bae56422315e9922f. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
List all open dependency update PRs. Detect the bot automatically (Renovate, Dependabot, etc.).
gh search prs --author app/renovate --author app/dependabot --state open --owner \ --archived=false --json repository,number,title,updatedAt --limit 100
gh pr list --repo --search "author:app/renovate OR author:app/dependabot" \ --json number,title,mergeable,mergeStateStatus,statusCheckRollup
For each CLEAN PR, run investigations in parallel to assess merge safety.
Only proceed if the user confirms. For each failing PR, fix it in its own git worktree so fixes run in parallel without interfering with each other or the main working directory.
Permission review
The documentation asks the agent to run terminal commands or scripts.
git worktree listThe documentation asks the agent to run terminal commands or scripts.
git worktree remove <worktree-path>Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 95/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 15 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
End-to-end workflow for triaging dependency update PRs: list them, assess merge safety, and fix CI failures — all with maximum parallelism. Do NOT merge PRs unless the user explicitly asks.
List all open dependency update PRs. Detect the bot automatically (Renovate, Dependabot, etc.).
gh pr list --repo <owner/repo> --search "author:app/renovate OR author:app/dependabot" \
--json number,title,author,mergeable,mergeStateStatus,statusCheckRollup,labels,updatedAt
When the user specifies an org (or says "all my repos"), search across all repos first, filter out archived repos, then fetch detailed status per repo in parallel:
# Step 1: Discover all open dep PRs across the org (excluding archived repos)
gh search prs --author app/renovate --author app/dependabot --state open --owner <org> \
--archived=false --json repository,number,title,updatedAt --limit 100
# Step 2: For each unique repo found, fetch detailed PR status in parallel
gh pr list --repo <owner/repo> --search "author:app/renovate OR author:app/dependabot" \
--json number,title,mergeable,mergeStateStatus,statusCheckRollup
Classify each PR into one of these buckets:
| Bucket | Criteria | Next step |
|---|---|---|
| CLEAN | mergeStateStatus=CLEAN, all checks pass | Investigate for merge safety (Phase 2) |
| FAILING | One or more checks failing | Fix CI (Phase 3) |
| CONFLICTING | mergeable=CONFLICTING or mergeStateStatus=DIRTY | Resolve conflicts (Phase 3) |
Present the full table to the user and ask how they'd like to proceed before moving to the next phase. Do not automatically start investigating or fixing.
For each CLEAN PR, run investigations in parallel to assess merge safety.
When the same dependency appears across multiple repos (e.g., oxlint bumped in 3 repos), investigate it once and apply the verdict to all. Dispatch investigation agents by dependency group:
Report back a structured summary per dependency:
After presenting the investigation summary, ask the user if they want to proceed with fixing failing PRs.
Only proceed if the user confirms. For each failing PR, fix it in its own git worktree so fixes run in parallel without interfering with each other or the main working directory.
Lint/format failures — Run the project's lint and format commands. Often the dependency update changes generated files or type signatures that need reformatting.
Lockfile conflicts — Accept main's lockfile version, then regenerate with the project's package manager.
Merge conflicts — Merge main into the PR branch, resolve conflicts, then verify all checks pass.
1. git worktree add <worktree-path> <pr-branch>
2. cd <worktree-path>
3. Merge origin/main if behind
4. Install dependencies
5. Run lint → fix issues
6. Run format → apply fixes
7. Run typecheck → fix type errors
8. Run doc/code generation if applicable
9. Verify all checks pass locally
10. Commit and push
Always run all project checks before pushing, not just the one that was failing — dependency updates can cause cascading issues.
After all fixes are pushed and CI is passing, clean up local worktrees and branches created during the process.
# List worktrees to see what was created
git worktree list
# Remove each worktree
git worktree remove <worktree-path>
# Or if directories were already deleted:
git worktree prune
# Only delete branches that were created by worktree agents during this session
# Track which branches you create and delete only those specific ones
git branch -D <branch-1> <branch-2> ...
Always clean up before finishing — worktrees and local branches accumulate fast when fixing many PRs in parallel.
Only proceed with merging if the user explicitly asks. Never auto-merge.
When merging multiple dependency PRs, each merge can create conflicts in remaining PRs (especially in lockfiles and generated files).
Submit an approving review on each PR before merging it — never merge an unreviewed PR. The approval is the record that the PR was triaged and judged safe; merging without it skips that record.
Ask the user first. Approving is a distinct action from merging — do not auto-approve. After Phase 2, ask whether to approve the PRs (and which ones). Only approve the PRs the user confirms.
Approve with a comment carrying the investigation findings. Use --body to attach the Phase 2 verdict for that PR's dependency — version change, key changelog notes, and the safe-to-merge reasoning — so the approval is self-documenting. Approve in parallel across repos with error isolation, then verify the review landed:
# Approve each PR with the investigation summary as the review comment
gh pr review <number> --repo <owner/repo> --approve \
--body "esbuild 0.28.0 → 0.28.1 (patch, dev-only). Security + bug fixes only, no breaking changes. Safe to merge." 2>&1 || true
# Verify the approval was recorded
gh pr view <number> --repo <owner/repo> --json reviews \
--jq '.reviews[] | "\(.author.login): \(.state)"'
If you merged before approving, GitHub still accepts a retroactive --approve on a merged PR — submit it and verify, but treat this as a mistake to avoid, not the normal path.
Parallel across repos, sequential within a repo. PRs in different repos are independent and can be merged simultaneously. PRs in the same repo must be merged one at a time because each merge can dirty the next PR's lockfile.
gh pr merge returns exit code 1 on failure, which cancels all parallel tool calls. Always append || true when merging in parallel to prevent one failure from cancelling the rest:
# DO: merge across repos in parallel with error isolation
gh pr merge 42 --repo owner/repo-a --squash 2>&1 || true
gh pr merge 13 --repo owner/repo-b --squash 2>&1 || true
# DON'T: bare gh pr merge in parallel (one failure cancels all)
gh pr merge 42 --repo owner/repo-a --squash
gh pr merge can return "Pull Request is not mergeable" even when the merge actually succeeded. If a merge reports failure, verify the actual PR state before assuming it failed:
gh pr view <number> --repo <owner/repo> --json state --jq .state
mergeStateStatus)gh pr merge <number> --repo <owner/repo> --squash 2>&1 || true
After all merges complete, do a final scan for new PRs that appeared during the session. Merging dependency updates can trigger Renovate/Dependabot to open additional PRs (e.g., transitive dependency bumps). Report any new PRs to the user.
gh search prs --author app/renovate --author app/dependabot --state open --owner <org> \
--json repository,number,title --limit 100
|| true on parallel merge commands to prevent one failure from cancelling the restgh pr merge can report false errors; always check actual PR stateFrequently asked questions
End-to-end workflow for triaging dependency update PRs: list them, assess merge safety, and fix CI failures — all with maximum parallelism. Do NOT merge PRs unless the user explicitly asks.
The source record exposes this install command: npx skills add https://github.com/jackchuka/skills --skill "gh-dep-pr-triage". Inspect the command and pinned source before running it.
Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.
Alternatives
garrytan/gbrain
End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
wanshuiyin/Auto-claude-code-research-in-sleep
Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.
prowler-cloud/prowler
PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance