# provider-framework-migration

Guides per-resource migrations from Terraform Plugin SDKv2 to the Plugin Framework. Covers mux setup, schema translation, and state compatibility checks.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 913 installs · ★ 909
- Author: hashicorp
- License: MPL-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/hashicorp/agent-skills/tree/HEAD/plugins/terraform/skills/provider-framework-migration/SKILL.md
- Updated: 2026-10-05
- HTML: https://affpapa.org/en/nevibecode/skills/provider-framework-migration

## What it does

This skill walks through migrating Terraform resources and data sources one at a time while a mux serves SDKv2 and Framework implementations side by side. It covers setting up `terraform-plugin-mux` with `tf5to6server`, translating schema elements, and checking resource behavior before and after the port.

It calls out null-versus-zero differences, blocks, the `id` attribute, and reading state written by SDKv2. Before changing a resource, the workflow has you prepare acceptance tests and record how optional attributes behave. The protocol 6 setup requires Terraform CLI 1.0 or later; the documented protocol 5 route is for Terraform 0.12+ support. That choice matters because nested attributes require protocol 6.

## Requirements
- Works with: Terraform

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add hashicorp/agent-skills --skill provider-framework-migration -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/provider-framework-migration/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/provider-framework-migration/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add hashicorp/agent-skills --skill provider-framework-migration -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/provider-framework-migration/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add hashicorp/agent-skills --skill provider-framework-migration -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/provider-framework-migration/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install hashicorp/agent-skills provider-framework-migration
```

2. **Manually: put the files in place**
- File: `.github/skills/provider-framework-migration/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add hashicorp/agent-skills --skill provider-framework-migration -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/hashicorp/agent-skills --path plugins/terraform/skills/provider-framework-migration
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/provider-framework-migration/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add hashicorp/agent-skills --skill provider-framework-migration -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/hashicorp/agent-skills/tree/HEAD/plugins/terraform/skills/provider-framework-migration/SKILL.md

## When to use it
- Configure a mux for SDKv2 and Framework implementations
- Port one resource's schema and CRUD operations
- Map `ForceNew`, `Default`, and blocks to Framework schema
- Track plan changes caused by null and empty values
- Verify state compatibility after a resource migration

## Example prompts
- Set up a mux server for a provider using SDKv2 and the Plugin Framework.
- Help port this resource schema to the Plugin Framework while keeping its blocks and `id` attribute.
- Investigate the plan diff after migration, focusing on null handling and state.

## Similar
- [wizard](https://affpapa.org/en/nevibecode/skills/wizard.md) — skill · 553369 installs
- [hyperframes-cli](https://affpapa.org/en/nevibecode/skills/heygen-com-hyperframes-cli.md) — skill · 1300000 installs
- [setup-pre-commit](https://affpapa.org/en/nevibecode/skills/setup-pre-commit.md) — skill · 489289 installs
- [using-git-worktrees](https://affpapa.org/en/nevibecode/skills/using-git-worktrees.md) — skill · 217153 installs
- [finishing-a-development-branch](https://affpapa.org/en/nevibecode/skills/finishing-a-development-branch.md) — skill · 214439 installs
- [orca-cli](https://affpapa.org/en/nevibecode/skills/orca-cli.md) — skill · 353600 installs

From the same set: [hashicorp/agent-skills](https://affpapa.org/en/nevibecode/by/hashicorp/agent-skills.md) — 20 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
