Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/pulumi/agent-skillsnpx agentmods add skills/pulumi/agent-skills/pulumi-upgrade-providerWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/pulumi/agent-skills/pulumi-upgrade-provider)<a href="https://agentmods.dev/skills/pulumi/agent-skills/pulumi-upgrade-provider"><img src="https://agentmods.dev/badge/skills/pulumi/agent-skills/pulumi-upgrade-provider/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/pulumi/agent-skills/pulumi-upgrade-provider"><img src="https://agentmods.dev/badge/skills/pulumi/agent-skills/pulumi-upgrade-provider.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Socket pass
- Snyk warn
- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Tool Misuse · line 166 Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00054 | $0.02509 |
| Opus 5 | $0.00027 | $0.01255 |
| Sonnet 5 | $0.00011 | $0.00502 |
| Haiku 4.5 | $0.00005 | $0.00251 |
Grade A, and why
pulumi-upgrade-provider scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 215 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Pulumi Upgrade Provider
Overview
Run upgrade-provider --no-submit, fix known failures, and rerun until success. During the run loop, the tool owns branch and generated-commit state but does not push or mutate GitHub. After success, review and correct the local result before submitting it using the plan printed by the tool.
Preflight
- Record existing changes as the pre-upgrade baseline:
baseline_file="${TMPDIR:-/tmp}/upgrade-provider-$(basename "$PWD")-baseline.txt"
git status --short --untracked-files=all | tee "$baseline_file"
Existing changes do not block the upgrade, but the tool stages broadly and may include them in generated commits. If practical, isolate clearly unrelated work in another branch or worktree, move local-only files, or add untracked local artifacts to .git/info/exclude. Otherwise proceed and carry this baseline into the final review. Do not add a repository .gitignore rule unless the path should be ignored for all contributors.
- Keep the run log outside the repository so the tool cannot stage it.
Run Loop
- Run from repo root:
log_file="${TMPDIR:-/tmp}/upgrade-provider-$(basename "$PWD").log"
upgrade-provider $ORG/$REPO --repo-path . --no-submit > "$log_file" 2> /dev/null
Preserve --no-submit on every retry.
- Wait for completion (can take up to 10 minutes).
- Check for errors by scanning the log for lines starting with
error::
if command -v rg >/dev/null 2>&1; then
rg -n '^error: ' "$log_file" || true
else
grep -n '^error: ' "$log_file" || true
fi
- On a successful exit, first check whether the tool found that no upgrade was required:
if grep -Fq 'No actions needed' "$log_file"; then
echo 'No actions needed'
fi
If present, report that the provider is already current or the requested target is not an upgrade, then stop successfully. There is no local upgrade to review or submit.
- Otherwise, extract and read the complete local-completion report from the captured stdout:
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 215 lines · 54 tokens per session scan A 7dfc873f30ff
pulumi-upgrade-provider is a skill published in the GitHub repository pulumi/agent-skills (68 stars, last pushed yesterday), licensed Apache-2.0. It adds 54 tokens to every session and 2,509 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
infrastructure-as-code-guardian
Universal Infrastructure as Code (IaC) agent skill for authoring, securing, and managing cloud infrastructure across Terraform, Pulumi, CloudFormation, Ansible, and Bicep. Provides cross-tool security hardening, state management best practices, cost optimization, drift detection, and CI/CD integration. Covers AWS…
terraform-expert
Expert-level Terraform infrastructure as code, modules, state management, and production best practices. Use when the user mentions infrastructure as code, devops, or automation, or when the task involves Terraform Basics, Resource Management, Modules, or State Management.
arn-code-execute-task
This skill should be used when the user says "execute task N", "run task N", "implement task N", "re-run task N", "retry task N", "run single task", or wants to execute a single specific task from the task list with optional review. This is for ONE task only — for executing the full plan (all tasks), use…
arn-code-taskify
This skill should be used when the user says "taskify", "create task list", "create tasks", "convert plan to tasks", "generate tasks from plan", "create tasks from plan", "turn plan into tasks", "arness code taskify", or wants to convert a structured project plan's TASKS.md into an executable Claude Code task list…
terraform-docs
Terraform 1.15.x — configuration language, resources, variables, modules, state, backends, providers, functions.
infra-as-code
Manage infrastructure in version control so it's reviewable, reproducible, and rollback-able. Invoke when provisioning new infra or cleaning up ad-hoc resources.