# provider-resources

This skill guides Terraform resource and data source work with the Plugin Framework. Use it when adding resources, handling drift, or reviewing provider code.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 4100 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-resources/SKILL.md
- Updated: 2026-10-05
- HTML: https://affpapa.org/en/nevibecode/skills/provider-resources

## What it does

The skill covers Terraform resources and data sources: CRUD methods, attribute schemas, validators, plan modifiers, import handling, and out-of-band deletion. It also explains how to connect a resource to the provider client and wait until an eventually consistent API makes the object usable.

Its guidance includes provider file layout, resource and data source design, error handling, and required acceptance tests. For new resources, it points to the Plugin Framework; SDKv2 is kept for existing implementations. That distinction matters before a migration, since null and zero values can behave differently.

The examples use Go provider code with resource and test files, plus documentation generated by `tfplugindocs`. The provider must supply a configured API client for resource operations.

## Requirements
- Works with: Terraform

## Install

### Claude Code (native platform)

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

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

### Codex

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

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

### Cursor

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

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

### GitHub Copilot

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

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

### Gemini CLI

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

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

### Windsurf (Devin Desktop)

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

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add hashicorp/agent-skills --skill provider-resources -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-resources/SKILL.md

## When to use it
- create a Terraform resource with CRUD methods
- design attributes with validators and plan modifiers
- handle a resource deleted outside Terraform
- wait for an eventually consistent API
- cover a resource with acceptance tests

## Example prompts
- Implement a new Terraform resource for this API with the Plugin Framework and connect it to the provider's configured client.
- Review this resource for schema issues, plan modifiers, not-found handling, import support, and acceptance-test coverage.
- Assess the migration from an SDKv2 resource to the Plugin Framework and flag null-versus-zero behavior risks.

## Similar
- [terraform-azurerm-set-diff-analyzer](https://affpapa.org/en/nevibecode/skills/terraform-azurerm-set-diff-analyzer.md) — skill · 8900 installs
- [terraform-skill](https://affpapa.org/en/nevibecode/skills/terraform-skill.md) — skill · 7400 installs
- [synthetic-monitoring-checks](https://affpapa.org/en/nevibecode/skills/synthetic-monitoring-checks.md) — skill · 2300 installs
- [terraform-patterns](https://affpapa.org/en/nevibecode/skills/terraform-patterns.md) — skill · 617 installs
- [aws-well-architected-review](https://affpapa.org/en/nevibecode/skills/aws-well-architected-review.md) — skill · 84 installs
- [bigquery-basics](https://affpapa.org/en/nevibecode/skills/bigquery-basics.md) — skill · 17678 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
