home / skills / hashicorp / agent-skills / new-terraform-provider
/terraform/provider-development/skills/new-terraform-provider
This skill scaffolds a new Terraform provider project using Plugin Framework, creating workspace, initializing modules, and validating with tests.
npx playbooks add skill hashicorp/agent-skills --skill new-terraform-providerReview the files below or copy the command above to add this skill to your agents.
---
name: new-terraform-provider
description: Use this when scaffolding a new Terraform provider.
license: MPL-2.0
metadata:
copyright: Copyright IBM Corp. 2026
version: "0.0.1"
---
To scaffold a new Terraform provider with Plugin Framework:
1. If I am already in a Terraform provider workspace, then confirm that I want
to create a new workspace. If I do not want to create a new workspace, then
skip all remaining steps.
1. Create a new workspace root directory. The root directory name should be
prefixed with "terraform-provider-". Perform all subsequent steps in this
new workspace.
1. Initialize a new Go module..
1. Run `go get -u github.com/hashicorp/terraform-plugin-framework@latest`.
1. Write a main.go file that follows [the example](assets/main.go).
1. Remove TODO comments from `main.go`
1. Run `go mod tidy`
1. Run `go build -o /dev/null`
1. Run `go test ./...`
This skill scaffolds a new Terraform provider using the HashiCorp Plugin Framework. It creates a clean workspace, initializes a Go module, installs the framework dependency, generates a ready-to-build main.go, and validates the build and tests. The workflow ensures a consistent starting point for provider development.
It interacts with your current shell workspace and, if needed, creates a new directory prefixed with "terraform-provider-". The skill runs Go module initialization, installs the plugin framework, writes a canonical main.go based on the provided example, cleans up TODOs, tidies dependencies, builds, and runs tests to verify the scaffold. If you are already in a provider workspace, it prompts to confirm creating a separate workspace and skips all steps if you decline.
Will this overwrite an existing directory?
No. The skill creates a new workspace directory and prompts if you are already inside a provider workspace. It avoids overwriting existing content by requiring confirmation.
Which Go version is required?
Use a recent Go version compatible with the latest terraform-plugin-framework; check the framework's release notes, but Go 1.18+ is typically required.