provider-upgrade-analysis
Skill15 starsChanged 9 months agoMITView on GitHub
Use when analyzing Terraform provider or module upgrades for breaking changes, deprecations, and migration requirements.
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 4 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 73
Search for affected resources/attributes:
- Distinctive: line 196
Check upgrade guide thoroughly
- Distinctive: line 198
Test in non-prod first
- Distinctive: line 203
Check for deprecation warnings
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Provider Upgrade Analysis
Overview
Analyze the impact of upgrading Terraform providers or modules before making changes. Identify breaking changes, deprecations, and required code modifications.
Announce at start: "I'm using the provider-upgrade-analysis skill to assess this upgrade."
Process
Step 1: Identify Current State
# Current Terraform version
terraform version
# Current provider versions
terraform providers
# Lock file details
cat .terraform.lock.hclStep 2: Identify Target Version
Determine what version to upgrade to:
- Latest stable
- Specific version requested
- Next major/minor version
Step 3: Research Breaking Changes
For each provider/module upgrade:
AWS Provider Example
# Check CHANGELOG
# https://github.com/hashicorp/terraform-provider-aws/blob/main/CHANGELOG.md
# Check UPGRADE guide for major versions
# https://registry.terraform.io/providers/hashicorp/aws/latest/docs/guides/version-5-upgradeKey Sources
| Provider | Changelog Location | Upgrade Guide |
| AWS | GitHub CHANGELOG.md | /docs/guides/version-X-upgrade |
| Azure | GitHub CHANGELOG.md | /docs/guides/X.0-upgrade-guide |
| GitHub CHANGELOG.md | /docs/guides/version_X_upgrade |
Step 4: Analyze Impact
Breaking Changes Categories
| Category | Impact | Example |
| Removed Resources | HIGH | Resource type no longer exists |
| Removed Arguments | HIGH | Required attribute removed |
| Changed Defaults | MEDIUM | Default value changed |
| Renamed Resources | MEDIUM | Resource renamed, state migration needed |
| New Required Args | MEDIUM | New required argument added |
| Deprecations | LOW | Will be removed in future |
Code Scan
Search for affected resources/attributes:
# Find usage of deprecated resource
grep -r "aws_deprecated_resource" --include="*.tf"
# Find usage of removed argument
grep -r "removed_argument" --include="*.tf"Step 5: Check Memory
Query memory/global/provider-issues.json for:
- Known issues with target version
- Past upgrade experiences
- Workarounds needed
Step 6: Generate Report
## Provider Upgrade Analysis
### Summary
| Provider | Current | Target | Risk Level |
|----------|---------|--------|------------|
| aws | 4.67.0 | 5.0.0 | HIGH |
### Breaking Changes
#### 1. [Change Name]
- **Type:** Removed Argument
- **Affected Resource:** `aws_instance`
- **Attribute:** `ebs_optimized` default changed
- **Impact:** Instances may change on next apply
- **Required Action:** Explicitly set `ebs_optimized = true`
- **Files Affected:**
- `modules/compute/main.tf:45`
- `environments/prod/instances.tf:23`
#### 2. [Change Name]
...
### Deprecations (Future Concern)
| Resource/Attribute | Deprecated In | Removed In | Replacement |
|-------------------|---------------|------------|-------------|
| `aws_old_thing` | 4.50.0 | 5.0.0 | `aws_new_thing` |
### State Migration Required
- [ ] Resource `aws_old` → `aws_new` requires state mv
- [ ] [Other migrations]
### Recommended Upgrade Path
1. **Backup state**
```bash
terraform state pull > backup-$(date +%Y%m%d).tfstate- Update version constraint
terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } } } - Run init
terraform init -upgrade - Apply code changes [List of required changes]
- Run plan
terraform plan - Review and apply [After careful review]
Risk Assessment
| Factor | Assessment |
| Breaking changes | X items |
| State migrations | Y required |
| Code changes | Z files |
| Estimated effort | [Low/Medium/High] |
| Recommended timing | [Now/After testing/Wait] |
Known Issues
[From memory or research]
### Step 7: Update Memory
Store findings in `memory/global/provider-issues.json`:
```json
{
"aws": {
"5.0.0": {
"known_issues": [...],
"upgrade_notes": [...],
"last_updated": "2024-01-15"
}
}
}Common Upgrade Patterns
Major Version Upgrades (e.g., 4.x → 5.x)
- Usually have breaking changes
- Check upgrade guide thoroughly
- Plan for state migrations
- Test in non-prod first
Minor Version Upgrades (e.g., 5.1 → 5.2)
- Usually backward compatible
- Check for deprecation warnings
- Review CHANGELOG for new features
Patch Version Upgrades (e.g., 5.1.0 → 5.1.1)
- Bug fixes only
- Generally safe to apply
- Still review CHANGELOG
Safety Checklist
Before recommending upgrade:
- Breaking changes documented
- Code changes identified
- State migrations planned
- Rollback procedure defined
- Test environment validated
- User informed of risks
In this repository20 other files it gives its agents.
- auto-documentationSkill
- aws-profile-managementSkill
- brainstormingSkill
- dispatching-parallel-agentsSkill
- executing-plansSkill
- finishing-a-development-branchSkill
- historical-pattern-analysisSkill
- receiving-code-reviewSkill
- requesting-code-reviewSkill
- subagent-driven-developmentSkill
- systematic-debuggingSkill
- terraform-drift-detectionSkill
- terraform-plan-reviewSkill
- terraform-state-operationsSkill
- test-driven-developmentSkill
- using-devops-skillsSkill
- using-git-worktreesSkill
- verification-before-completionSkill
- writing-plansSkill
- writing-skillsSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

