dependency-audit
Audit dependency health via dependency graph and Dependabot PRs. Use when asked about dependencies, outdated packages, dependency vulnerabilities, or Dependabot PR backlog.
From github-repo-managernpx claudepluginhub l3digitalnet/claude-code-plugins --plugin github-repo-managerThis skill uses the workspace's default tool permissions.
Dependency Audit Module โ Skill
Purpose
Review dependency health beyond just security alerts. Summarize the dependency graph, audit the Dependabot PR backlog, identify outdated dependencies, and recommend batch-merge strategies for low-risk bumps.
Applicability and Tier Behavior
- Tier 4 (Public, Releases): Full assessment with full ceremony. Batch-merge candidates are presented for individual review before merging; each merge triggers CI and is visible to repo watchers. Major version bumps require extra scrutiny โ they can break external users.
- Tier 3 (Public, No Releases): Same as Tier 4. Public visibility applies to all merges.
- Tier 2 (Private, Code): Full assessment. Batch approval acceptable for patch/minor Dependabot PRs with CI passing.
- Tier 1 (Private, Docs): Skip dependency audit โ docs repos typically don't have meaningful dependency graphs.
Execution Order
Runs as module #6 during full assessments (after Issue Triage). Defers Dependabot security alerts to the Security module โ this module focuses on the broader dependency picture.
Helper Commands
# Dependency graph summary (SBOM)
gh-manager deps graph --repo owner/name
# Open Dependabot PRs with age, severity, package info
gh-manager deps dependabot-prs --repo owner/name
Full assessment mode: Do not output the ๐ Dependency Audit banner during a full assessment. Collect findings and feed them into the unified ๐ view. Use the per-module banner format only for narrow dependency checks.
Assessment Flow
Step 1: Dependency Graph Overview
gh-manager deps graph --repo owner/name
If the dependency graph is not enabled (enabled: false), note it:
Dependency graph is not enabled on this repo. Without it, GitHub can't track dependencies or generate Dependabot alerts. You can enable it in Settings โ Security โ Dependency graph.
If enabled, summarize:
๐ Dependency Graph โ ha-light-controller Total packages: 142 By ecosystem: npm (128), pip (14)
Step 2: Dependabot PR Backlog
gh-manager deps dependabot-prs --repo owner/name
This is the core of the dependency audit. Evaluate:
Backlog age: How old are the oldest unmerged Dependabot PRs? A growing backlog suggests the owner isn't keeping up with updates.
Security vs. non-security: Separate security fixes (which the Security module already flagged) from routine version bumps.
Batch-merge candidates: Non-security PRs that are mergeable, CI-passing, and have small diffs are candidates for batch merging.
Step 3: Present Findings
๐ Dependency Audit โ ha-light-controller
Dependabot PR Backlog: 8 open PRs โข 2 security fixes (already covered in Security findings) โข 6 routine version bumps โข Average age: 12 days, oldest: 28 days
Batch-merge candidates (4): โข PR #68 โ Bump @types/node from 18.15.0 to 18.16.0 (1 day old, 2 files) โข PR #69 โ Bump eslint from 8.40.0 to 8.41.0 (3 days old, 2 files) โข PR #70 โ Bump prettier from 2.8.7 to 2.8.8 (5 days old, 2 files) โข PR #71 โ Bump typescript from 5.0.3 to 5.0.4 (7 days old, 2 files)
Not ready to merge (2): โข PR #65 โ Bump webpack from 5.80 to 5.82 (CI failing, 14 days old) โข PR #60 โ Bump react from 17 to 18 (major version bump, 28 days old)
The 4 batch-merge candidates are all patch/minor bumps with passing CI. Want me to merge them?
Step 4: Batch Merge (Owner Approval Required)
โ ๏ธ Batch merging implications: Merging multiple PRs in sequence triggers a separate CI run for each. On repos with slow CI, this can queue many builds simultaneously. If one PR's tests fail mid-batch, subsequent merges may inherit the broken state. For Tier 3/4 repos, each merge is also visible to contributors and watcher subscribers.
After presenting the candidates, use AskUserQuestion:
- "Merge all N candidates" (recommended if CI passing for all)
- "Let me review each PR first" โ skip batch merge, owner handles manually
- "Skip dependency merges for now"
On approval, merge each candidate (squash by default for Dependabot PRs):
gh-manager prs merge --repo owner/name --pr 68 --method squash
gh-manager prs merge --repo owner/name --pr 69 --method squash
gh-manager prs merge --repo owner/name --pr 70 --method squash
gh-manager prs merge --repo owner/name --pr 71 --method squash
Partial approval: If the owner specifies a subset (e.g., "merge 68 and 69 but skip 70"), merge only those. List skipped PRs briefly:
โ
Merged: PR #68, #69
โญ Skipped: PR #70 (owner decision), #71 (owner decision)
Report results:
โ Merged 4 Dependabot PRs: โข PR #68 โ @types/node 18.15.0 โ 18.16.0 โข PR #69 โ eslint 8.40.0 โ 8.41.0 โข PR #70 โ prettier 2.8.7 โ 2.8.8 โข PR #71 โ typescript 5.0.3 โ 5.0.4
2 PRs remain: webpack (CI failing) and react (major version โ needs manual review).
Batch-Merge Criteria
A Dependabot PR is a batch-merge candidate when ALL of these are true:
- Not a security fix (those are handled by Security module with higher urgency)
- Patch or minor version bump (not a major version change)
- CI passing (mergeable + checks passing)
- Small diff (typically โค 5 files changed for dependency bumps)
- No
do-not-closeorlong-runninglabel
Major version bumps are flagged separately:
โ ๏ธ PR #60 bumps react from 17 to 18 โ that's a major version change that may require code updates. This needs manual review.
Cross-Module Interactions
With Security
- Security module owns Dependabot vulnerability alerts
- Dependency Audit skips security-flagged Dependabot PRs during full assessment
- During narrow dependency check, include everything
With PR Management
- Dependabot PRs are also open PRs. During full assessment, they appear here (for non-security bumps) and in Security (for security fixes), not in PR Management
- During narrow PR check, PR Management includes all PRs including Dependabot
Error Handling
| Error | Response |
|---|---|
| 404 on SBOM | "Dependency graph isn't enabled. I can still check for Dependabot PRs." |
| 403 on SBOM | "I can't access the dependency graph โ PAT may need additional permissions." |
| No Dependabot PRs | "No open Dependabot PRs โ dependencies look current." |
Presenting Findings (for Reports)
| Module | Status | Findings | Actions Taken |
|---|---|---|---|
| Dependencies | โ ๏ธ Behind | 4 Dependabot PRs | 2 merged (batch), 2 deferred |