CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

provider-upgrade

Upgrade any Pulumi provider to a newer version and reconcile the resulting diff. Use when users want to upgrade or update a provider (including editing package.json, requirements.txt, pyproject.toml, go.mod, or Pulumi.yaml to bump a provider SDK), check for breaking changes before or during an upgrade, fix resources that broke after a provider upgrade, or resolve unexpected replacements, creates, or deletes in a post-upgrade preview, including pulumi-gcp v10 errors such as a missing gcp.notebooks or gcp.iap.Brand type or a required secretDataWoVersion. Applies to all providers (aws, azure-native, gcp, kubernetes, aws-native, cloudflare, datadog, etc.) — not just Tier 1. Do NOT use for querying which stacks use what package versions; use skill `package-usage` for cross-stack audits. Do NOT use for general infrastructure tasks.

75

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

85%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, mature skill body: an explicit validated workflow, copy-paste commands, and a principled split of generic methodology from provider-specific detail into well-signaled references. The main weakness is token efficiency — the delete-danger and evidence-citation rules are each stated three times, and the conceptual Principle section could be condensed by roughly half without losing guidance value.

Suggestions

State the 'a preview delete destroys real infrastructure' warning once (e.g., in the delete subsection) and reference it from the Hard Rules and final-preview gate instead of repeating the full explanation in three places.

Consolidate the evidence-citation requirement into a single rule (e.g., within 'After categorizing') and have the Category B bullet and the Upgrade Summary template point to it rather than restating it.

Compress 'The Principle' section to its actionable core — the translation framing and the 'zero diff = correct translation' invariant — cutting the layered restatement and the engine-explainer paragraph that Pulumi-experienced readers don't need.

DimensionReasoningScore

Conciseness

The body is mostly efficient and skill-specific (no generic Pulumi tutorials), but includes unnecessary repetition: the warning that a preview `delete` destroys real infrastructure appears in three places (the delete subsection, the "No delete or replace in the final preview" rule, and the Category A guidance), the evidence-citation requirement is stated three times (Category B, the Evidence requirement, and the Upgrade Summary), and the ~25-line "The Principle" section restates the state-vs-code comparison twice. This fits 'mostly efficient but includes some unnecessary explanation or could be tightened' better than the score-4 anchor's 'minor instances'.

3 / 5

Actionability

Guidance is fully executable: exact preview flags (`pulumi preview --refresh --run-program`), per-language dependency bump commands, `pulumi state delete '<urn>'` / `pulumi import` recovery steps, a runnable TypeScript import example, and a fill-in-the-blank Upgrade Summary template. The one placeholder ("import ID format varies by resource type") is explicitly flagged rather than hidden, and the common cases (bump, preview, categorize, fix, summarize) are all covered with copy-paste commands.

5 / 5

Workflow Clarity

The core loop is explicit (flowchart plus numbered steps) with a mandatory validation checkpoint after every preview, a completeness check for uncategorized resources, an explicit ordering rule (fix Category A before investigating B), feedback loops for error recovery ("New or different errors -> progress... Same error persists -> your fix didn't work"), and a hard gate that no delete/replace may remain before PR creation. Despite involving destructive operations, validation is pervasive — the strongest anchor.

5 / 5

Progressive Disclosure

The SKILL.md body carries the general methodology while provider-specific and tool-specific detail is correctly split into two real, one-level-deep reference files (both verified to exist). Each reference is well signaled with a read-when condition: step 1a routes to `references/gcp-v10.md` only for that provider/major, Category B routes to `references/diagnostic-toolbox.md`, and a closing References section summarizes both with their triggers. This matches 'clear overview with well-signaled one-level-deep references; content appropriately split'.

5 / 5

Total

18

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: concrete capabilities, dense natural-language triggers with synonyms and specific error signatures, an explicit 'Use when' clause, and clear negative boundaries against a sibling skill. The only conceivable critique is length, but every clause is a load-bearing trigger or capability, not padding.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "Upgrade any Pulumi provider to a newer version and reconcile the resulting diff", "fix resources that broke after a provider upgrade", "resolve unexpected replacements, creates, or deletes in a post-upgrade preview" — and even enumerates the concrete files edited ("package.json, requirements.txt, pyproject.toml, go.mod, or Pulumi.yaml") and concrete error signatures ("missing gcp.notebooks or gcp.iap.Brand type or a required secretDataWoVersion"). Coverage is comprehensive with no material gaps, matching the score-5 anchor rather than the score-4 anchor (which allows minor gaps).

5 / 5

Completeness

It explicitly answers both what ("Upgrade any Pulumi provider to a newer version and reconcile the resulting diff") and when ("Use when users want to upgrade or update a provider... check for breaking changes... fix resources that broke... resolve unexpected replacements, creates, or deletes"), with concrete trigger phrases throughout. This is a textbook match for the score-5 anchor, not 4 (where 'when' could be more explicit).

5 / 5

Trigger Term Quality

Natural user phrasings are comprehensively covered with synonyms: "upgrade or update a provider", "bump a provider SDK", "check for breaking changes", "fix resources that broke", "unexpected replacements, creates, or deletes", plus specific error names users would paste verbatim. Matches the anchor for comprehensive natural terms including synonyms and concrete identifiers.

5 / 5

Distinctiveness Conflict Risk

The niche is precise (Pulumi provider version upgrades and diff reconciliation) and it includes explicit disambiguation boundaries: "Do NOT use for querying which stacks use what package versions; use skill `package-usage` for cross-stack audits. Do NOT use for general infrastructure tasks." This actively prevents wrong-skill triggering, satisfying the minimal-conflict anchor rather than the score-4 'minor overlap risk' anchor.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

pulumi/agent-skills

Path

pulumi/skills/provider-upgrade/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.