Analyze and upgrade dependencies with breaking change detection. Use when updating frontend (pnpm) or backend (uv) dependencies.
From dev-toolkitnpx claudepluginhub casper-studios/casper-marketplace --plugin dev-toolkitThis skill uses the workspace's default tool permissions.
assets/pull-request-template.mdreferences/pnpm.mdreferences/uv.mdGuides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Details PluginEval's skill quality evaluation: 3 layers (static, LLM judge), 10 dimensions, rubrics, formulas, anti-patterns, badges. Use to interpret scores, improve triggering, calibrate thresholds.
Analyze outdated dependencies and safely upgrade them with breaking change detection.
Detect package manager based on current directory:
frontend/ directory or working with TypeScript/JavaScript: use pnpm referencebackend/ directory or working with Python: use uv referenceList outdated dependencies using the package manager-specific command from the reference
Spawn background analysis tasks for EACH notable upgrade:
CRITICAL: You MUST spawn the package-upgrade-analyzer sub-agent as a background Task for EACH and EVERY notable upgrade. Do NOT take shortcuts.
Task(
subagent_type="package-upgrade-analyzer",
run_in_background=true,
prompt="Analyze upgrade for {package_name} from {old_version} to {new_version}. GitHub: {repo_url}"
)
Notable upgrades include:
Spawn ALL tasks in a single message with multiple tool calls for maximum parallelism.
Wait for all background tasks to complete:
TaskOutput to retrieve results from each background taskPlan tool and its sub-agents to strategically address the breaking changesAsk clarifying questions:
Generate PR summary document:
Write a .claude/scratchpad/PR.md file using the PR template.
Ensure that all package identifiers are properly wrapped in backticks for readability.
Create PR (user confirmation required):
After generating .claude/scratchpad/PR.md, use AskUserQuestion to confirm:
AskUserQuestion(
question="Ready to create the PR? You can edit .claude/scratchpad/PR.md first if needed.",
header="Create PR?",
options=[
{ label: "Create PR", description: "Create the PR with current PR.md content" },
{ label: "Let me edit first", description: "I'll edit PR.md and confirm when ready" }
]
)
Once the user confirms, derive PR_TITLE and create the PR:
Deriving PR_TITLE:
app for frontend (pnpm), api for backend (uv)react-query to v5, next to v15"sqlalchemy to v2 (+4 packages)"PR_TITLE="deps(app): bump react-query to v5, next to v15"
gh pr create --base dev --head "$(git rev-parse --abbrev-ref HEAD)" --title "$PR_TITLE" --body-file .claude/scratchpad/PR.md
After successful PR creation:
# Clean up the scratchpad file
rm .claude/scratchpad/PR.md
Return the PR URL to the user.
The remaining instructions are behavior overrides by the user.
<user-guidelines>$ARGUMENTS
</user-guidelines>