provider-resources
작성자 hashicorpprovider-resources는 Plugin Framework를 사용해 리소스와 데이터 소스를 구현하는 Terraform Provider 개발 스킬입니다. 백엔드 개발 워크플로에서 CRUD 작업, 스키마 설계, 상태 관리, 승인 테스트에 활용하기 좋습니다.
이 스킬은 78/100점으로, Terraform provider resources와 data sources를 구축하는 사용자에게 적합한 디렉터리 후보입니다. 저장소에는 에이전트가 스킬을 올바르게 트리거하고 실제 워크플로를 따라가기에 충분한 구현 안내가 담겨 있습니다. 다만 패키징과 설치 가능성에 관한 세부는 아직 다소 다듬어질 여지가 있어, 사용자는 일부 부족한 부분을 감안해야 합니다.
- 명확한 사용 사례: CRUD, schema design, state management, acceptance testing을 포함한 Terraform Provider resources 및 data sources 구현.
- 충분한 절차형 콘텐츠: 많은 heading, workflow 섹션, code fence가 포함된 긴 SKILL.md로 추측 부담을 줄여줌.
- 좋은 디렉터리 명확성: frontmatter가 유효하고 설명이 구체적이며, placeholder marker나 experimental flag가 없음.
- 설치 명령이나 보조 리소스가 제공되지 않아, 보다 안내된 설정 대신 SKILL.md를 직접 읽고 도입해야 합니다.
- 증거상 지원 파일이나 references bundle이 없어 신뢰 확보가 제한될 수 있고, 예외적인 구현 세부를 검증하기도 더 어려울 수 있습니다.
provider-resources 개요
provider-resources는 Terraform Plugin Framework로 리소스와 데이터 소스를 구현할 때 쓰는 Terraform Provider 개발 skill입니다. CRUD 기반 provider 엔드포인트를 만드는 백엔드 엔지니어, schema와 state를 설계하는 사람, 또는 generic prompt보다 시행착오를 줄인 상태로 acceptance test를 추가하고 싶은 사람에게 가장 잘 맞습니다.
핵심은 추상적으로 “Terraform 코드를 작성하는 것”이 아닙니다. HashiCorp 관례에 맞게 provider 기능을 구조화하고, 원격 API에 깔끔하게 매핑되며, 배포 전에 테스트 가능한 형태로 만드는 데 있습니다. 그래서 provider-resources skill은 이미 대상 API의 형태를 알고 있고 구현 가이드가 필요한 경우에 가장 유용하며, provider가 무엇을 노출해야 하는지 아직 결정 중인 단계에는 덜 맞습니다.
provider-resources가 다루는 범위
이 skill은 리소스와 데이터 소스 구현 패턴, 파일 배치, schema 구성, state 처리, acceptance test 워크플로우에 초점을 맞춥니다. 백엔드 API가 source of truth이고 Terraform이 그 state를 정확히 맞춰야 하는 provider-resources for Backend Development 작업에 특히 잘 맞습니다.
이 skill이 잘 맞는 경우
리소스 CRUD, importer 동작, computed 및 optional attribute, 중첩 schema 설계, provider repository의 패키지 구조를 도와야 할 때 provider-resources를 사용하세요. 여러 예제를 뒤섞어 패턴을 억지로 조합하기보다, 새 endpoint에 대해 일관된 구현 경로가 필요할 때도 유용합니다.
설치 전에 확인할 점
이 skill은 Terraform provider 작업과 Plugin Framework를 전제로 합니다. modules, registry publishing, 또는 처음부터 provider scaffolding이 필요하다면 초점이 맞지 않습니다. 또한 제품별 API 지식을 대신해 주지도 않습니다. endpoint contract, error mode, identity 규칙은 여전히 직접 알아야 합니다.
provider-resources skill 사용법
provider-resources를 skill 세트에 설치하기
repo의 install 흐름으로 skill을 추가한 뒤, 특정 provider 작업 맥락에서 참조하세요:
npx skills add hashicorp/agent-skills --skill provider-resources
환경에서 다른 skill loader를 쓴다면, skill 이름은 그대로 유지하고 terraform/provider-development/skills/provider-resources 경로를 가리키면 됩니다.
올바른 source file부터 시작하기
먼저 SKILL.md를 읽고, 구현 형태와 관례를 정의한 섹션을 살펴보세요. 이 repository에서는 코드 생성으로 바로 뛰어들기보다 overview와 file-structure guidance에 먼저 주목하는 것이 중요합니다. 로컬 복사본에 추가 provider template나 인접 skill이 있다면, 이 skill의 resource workflow를 이해한 뒤에 비교하세요.
완전한 task brief를 주기
provider-resources usage는 remote object type, 필요한 identifier, CRUD behavior, 특수한 state 규칙을 구체적으로 줄 때 가장 잘 동작합니다. 약한 prompt는 “resource를 만들어 달라” 정도입니다. 더 강한 prompt는 다음을 포함합니다.
- API object와 endpoint
- 어떤 필드가 required, optional, computed, ForceNew인지
- drift를 어떻게 감지할지
- update를 어떻게 적용할지
- read가 eventually consistent인지
- acceptance test가 무엇을 증명해야 하는지
이 정보가 있어야 skill이 임의 가정 없이 backend에 맞는 코드와 가이드를 만들 수 있습니다.
repository-first 워크플로우를 사용하기
가장 좋은 결과를 내려면 먼저 기존 provider 레이아웃에 이 resource를 어떻게 넣을지 계획을 요청하고, 그다음 schema, create/read/update/delete, importer, tests 순서로 하나씩 구현하세요. repository에 이미 비슷한 resource가 있다면, 구체적으로 그 대상을 가리켜 local pattern을 재사용하도록 하세요. 그래야 skill이 generic example이 아니라 실제 repo의 방식에 맞춰 답할 수 있습니다.
provider-resources skill FAQ
provider-resources는 새 resource에만 쓰나요?
아닙니다. refactor, 기존 resource 옆에 data source를 추가하는 작업, 이미 만들어진 provider의 state와 test 문제를 고치는 일에도 충분히 유용합니다. API는 이미 있고, 그걸 Terraform에 깔끔하게 표현하는 일이 핵심일 때 특히 강합니다.
Plugin Framework 경험이 먼저 필요한가요?
반드시 그렇지는 않습니다. 이 skill은 초보자도 올바른 구조를 따라가도록 도와줄 수 있지만, API와 provider 동작을 명확하게 설명할 수 있을 때 가장 잘 작동합니다. identity, lifecycle, update semantics를 설명하기 어렵다면 먼저 그 정보를 정리하거나, 첫 결과물이 거칠 수 있다고 예상하세요.
일반 prompt와 무엇이 다른가요?
일반 prompt는 로컬 관례나 test discipline 없이도 그럴듯한 provider 코드를 내놓는 경우가 많습니다. 반면 provider-resources는 Terraform-native layout, resource/documentation pairing, acceptance-test 사고방식으로 이끌기 때문에 review 과정에서 rework를 줄이는 데 더 유용합니다.
언제 이 skill을 쓰지 말아야 하나요?
관련 없는 backend CRUD app, 일반 Go architecture, Terraform module 작성에는 쓰지 마세요. 작업의 중심이 packaging, release automation, registry docs라면 그 주제에 맞는 skill을 고르는 편이 낫습니다.
provider-resources skill 개선하기
기능 이름만 말하지 말고 API 사실을 알려주세요
provider-resources 결과를 가장 빨리 개선하는 방법은 object contract를 정확히 설명하는 것입니다. ID, create input, read shape, mutable field, delete semantics를 구체적으로 적으세요. API에 async creation, partial update, server-generated name 같은 특이점이 있다면 초반에 꼭 밝혀야 합니다. 이런 세부사항이 provider 설계를 바꿉니다.
복사하길 원하는 로컬 패턴을 지정하세요
repository에 이미 비슷한 예가 있다면 정확한 파일이나 resource 이름을 적어 주세요. 그래야 skill이 새 스타일을 지어내지 않고 기존 provider 관례에 맞출 수 있습니다. 특히 schema naming, test helper, state transition에서 중요합니다.
먼저 가장 위험한 부분부터 물어보세요
가장 실패가 잦은 부분은 보통 import/state handling, computed field, acceptance test입니다. 문서나 helper function을 다듬기 전에 이 부분부터 해결해 달라고 요청하세요. 첫 답변이 거의 맞지만 완전하지 않다면, 실패한 test output이나 schema diff를 함께 주고 다시 돌리면 정확한 불일치를 고치기 쉽습니다.
