Skip to content

chore: add dependabot-remediation agent skill#55

Open
cidrblock wants to merge 3 commits into
redhat-developer:mainfrom
cidrblock:chore/add-dependabot-remediation-skill
Open

chore: add dependabot-remediation agent skill#55
cidrblock wants to merge 3 commits into
redhat-developer:mainfrom
cidrblock:chore/add-dependabot-remediation-skill

Conversation

@cidrblock

Copy link
Copy Markdown
Collaborator

Summary

Adds a new agent skill (.agents/skills/dependabot-remediation/SKILL.md)
that provides a structured workflow for triaging and remediating Dependabot
security alerts.

What it does

Six-phase workflow:

  1. Triage -- fetch alerts, group by package, classify into batch/individual/allowlist lanes
  2. Plan -- analyze version constraints, breaking changes, peer deps
  3. Remediate -- apply updates with one commit per package for bisectability
  4. Validate -- run the full pr-readiness gate (audit, lint, test, build)
  5. Open PR -- conventional commits, PR templates, fork workflow support
  6. Babysit -- monitor CI, triage Copilot review comments
  7. Dismiss -- clean up Dependabot alerts after merge

Battle-tested

This skill was developed and refined while remediating all 29+ Dependabot
alerts across PRs #48-#53, covering:

  • Batch minor/patch updates (vitest, protobufjs, fast-uri, etc.)
  • Major version bumps (esbuild 0.28, uuid 11, vitest 4/vite 8)
  • Allowlisting unfixable transitive deps (qs, serialize-javascript, @ai-sdk)
  • Peer dependency resolution (vitest + @vitest/coverage-v8)
  • Fork workflow (origin -> upstream PRs)

Test plan

  • Skill validates against create-skill conventions (frontmatter, phases, references)
  • Successfully used end-to-end across 6 PRs resolving all alerts
  • CI passes (no code changes, skill file only)

Six-phase workflow for triaging and fixing Dependabot security alerts:
triage, plan, remediate, validate, open PR, and babysit CI. Supports
batch lanes for minor/patch updates, individual lanes for major bumps,
and allowlist lanes for unfixable transitive deps.

Includes guidance for fork workflows, multi-version packages, audit
gate bypass for pre-existing issues, and Dependabot alert dismissal.
Copilot AI review requested due to automatic review settings June 17, 2026 02:13

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new AI agent skill documenting a structured workflow for triaging and remediating Dependabot security alerts in the Abbenay monorepo, including validation gates and PR/CI follow-up steps.

Changes:

  • Introduces .agents/skills/dependabot-remediation/SKILL.md with a phased remediation workflow (triage → plan → remediate → validate → open PR → babysit → dismiss).
  • Documents suggested commands for alert grouping, dependency update strategy, validation gates, and Dependabot alert dismissal.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .agents/skills/dependabot-remediation/SKILL.md Outdated
Comment thread .agents/skills/dependabot-remediation/SKILL.md Outdated
Comment thread .agents/skills/dependabot-remediation/SKILL.md Outdated
- Add --paginate and sort_by before group_by in triage jq pipeline
- Make xvfb-run conditional (Linux-only) matching pr-readiness skill
- Number the dismiss section as Phase 7 for consistency
Copilot AI review requested due to automatic review settings June 24, 2026 13:06

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 3 comments.

Comment on lines +31 to +38
gh api repos/redhat-developer/abbenay/dependabot/alerts --paginate \
--jq '[.[] | select(.state == "open")] | sort_by(.security_vulnerability.package.name) | group_by(.security_vulnerability.package.name) | map({
package: .[0].security_vulnerability.package.name,
ecosystem: .[0].security_vulnerability.package.ecosystem,
count: length,
max_severity: (map(.security_advisory.severity) | if any(. == "critical") then "critical" elif any(. == "high") then "high" elif any(. == "medium") then "medium" else "low" end),
alerts: map({number, severity: .security_advisory.severity, summary: .security_advisory.summary, patched: .security_vulnerability.first_patched_version.identifier, range: .security_vulnerability.vulnerable_version_range})
}) | sort_by(if .max_severity == "critical" then 0 elif .max_severity == "high" then 1 elif .max_severity == "medium" then 2 else 3 end)'
Comment on lines +55 to +61
```
| # | Package | Alerts | Severity | Direct? | Runtime? | Patch available | Target |
|---|----------------|--------|----------|---------|----------|-----------------|-----------|
| 1 | vitest | 1 | critical | dev | dev-only | yes | >= 3.2.6 |
| 2 | protobufjs v7 | 8 | high | direct | runtime | yes | >= 7.5.8 |
| … |
```
Comment on lines +169 to +175
**Note:** `npm run audit:check` and the pre-commit audit hook may report
pre-existing vulnerabilities not yet in `.audit-allowlist`. If the only
failures are advisories unrelated to this PR's package, they are pre-existing
and do not block this PR. Verify by checking that the target package's GHSA
IDs are no longer in the output. When the pre-commit hook blocks a commit
solely due to pre-existing audit failures, use `--no-verify` to bypass it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants