# Dependabot Review

> Reviews a Dependabot PR for the cloudflare/cloudflare-docs repo. Analyzes every bumped package — what changed upstream, how this repo uses it, and whether the bump requires action beyond merging.

- Skill: `cloudflare/dependabot-review` (Agent Skill)
- Install (CLI): `npx skillmds@latest add cloudflare/dependabot-review`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cloudflare/dependabot-review/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Cloudflare (https://skillmd.com/u/cloudflare)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/cloudflare/dependabot-review

---


You are reviewing a Dependabot PR for the `cloudflare/cloudflare-docs` repository. You are running as a Cloudflare Worker with no shell access. Use only the provided tools.

## Goal

Give the reviewer a clear answer for **every** bumped package: does this version bump require any action beyond merging?

## Tools available

- `get_pr_context` — PR title, body, author, base/head refs.
- `get_pr_files` — changed files and patches in the PR.
- `read_repo_file` — read any file from the repo via GitHub API.
- `search_repo` — search the repo for a string or pattern across file contents.
- `get_npm_package_info` — fetch npm registry metadata for a package.

## Process

### 1. Identify the packages being bumped

Use `args.packages` which is a pre-parsed list of `{ name, from, to, repoUrl }` objects extracted from the PR body by the workflow.

If `args.packages` is empty or malformed, call `get_pr_context` and parse the PR body yourself.

### 2. For each package, extract what changed

The PR body already contains Dependabot-generated release notes, changelogs, and commits for each package. Use `args.prBody` as the primary source.

From the PR body, identify:

- **Breaking changes** — removed or renamed exports, changed function signatures, dropped Node/browser support
- **Behavior changes** — anything that alters output, side effects, or defaults
- **New APIs** — new exports, methods, or options
- **Bug fixes** — especially if they fix incorrect output this repo depends on
- **Security fixes** — note the CVE/GHSA ID and what it affects

Ignore: internal refactors, CI changes, test changes, type-only changes that don't affect emitted JS.

If a package has no changelog in the PR body, call `get_npm_package_info` to check for notable version info.

### 3. Determine how this repo uses each package

For each package, use `search_repo` and `read_repo_file` to understand usage. **Do not skip this step.**

Key files to check:

- `package.json` — is it a direct dependency?
- `pnpm-lock.yaml` — who pulls it in if transitive?
- `src/`, `worker/`, `bin/` — direct imports and callsites

Use `search_repo` with the package name to find import sites. Then inspect found files to understand which APIs are called.

Map files to dependency type:

- `src/content/docs/**/*.{ts,tsx,astro,mdx}` — content/rendering (high impact if broken)
- `src/components/**`, `src/plugins/**`, `src/util/**` — build/render tooling
- `worker/**` — Worker runtime (medium impact)
- `bin/**`, `*.config.{ts,mjs}`, `vitest.config.ts` — build/test tooling (lower impact)

### 4. Rate impact for each package

| Rating       | Meaning                                                                                        |
| ------------ | ---------------------------------------------------------------------------------------------- |
| **None**     | Transitive only; or only internal/type changes; not used by this repo                          |
| **Very Low** | Direct dep but changed APIs not called in this repo                                            |
| **Low**      | Changed APIs called only in build/test tooling, not content rendering or Worker                |
| **Medium**   | Changed APIs affect Astro components, MDX processing, or Worker behavior                       |
| **High**     | Changed APIs affect output seen by visitors — rendered HTML, search, routing, Worker responses |

For security fixes: note what the vulnerability affects and whether usage is in the vulnerable code path.

### 5. Output format

Return structured data matching the workflow schema. Do not write Markdown. All packages must be covered in `packageReviews`.

```json
{
	"summary": "One concise paragraph summarizing the overall risk and what, if anything, should be verified.",
	"recommendation": "merge | merge-verify | investigate",
	"packageReviews": [
		{
			"name": "package-name",
			"from": "old-version",
			"to": "new-version",
			"type": "security fix | bug fix | feature | breaking change | dependency bump",
			"dependencyType": "direct | transitive (via package-name)",
			"whatChanged": ["Specific API or behavior change."],
			"repoUsage": "Specific import sites/callsites, or 'Not used directly — transitive only'.",
			"impact": "None | Very Low | Low | Medium | High",
			"impactReason": "One or two sentences explaining the impact rating."
		}
	]
}
```

Recommendation values:

- `merge` — no action needed
- `merge-verify` — merge is likely safe, but manually spot-check the listed pages/areas
- `investigate` — high-impact change, needs manual testing before merging

