CtrlK
BlogDocsLog inGet started
Tessl Logo

provider-framework-migration

Migrate Terraform provider resources and data sources from Plugin SDKv2 to the Plugin Framework: muxing both plugins in one provider (terraform-plugin-mux, tf5to6server), per-resource migration workflow, SDKv2-to-Framework schema mapping (ForceNew, ValidateFunc, DiffSuppressFunc, Default, Timeouts, blocks), null-vs-zero-value behavioral traps, and state-compatibility verification. Use when converting or translating SDKv2 resources to the Framework, setting up a muxed provider server, deciding whether a resource should be migrated at all, or debugging plan diffs and state errors that appeared after a migration.

75

Quality

92%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

85%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, expert-level skill body: a well-sequenced migration workflow with genuine validation checkpoints, non-obvious behavioral guidance (null-vs-zero, blocks-stay-blocks), and a properly disclosed one-level reference file. It loses points only on minor verbosity in the opening and a couple of validation patterns (empty-plan test, StateUpgrader) that are described but not shown in code.

Suggestions

Add a short code example for the two-step empty-plan test in Step 5 (ExternalProviders for the released version, then ProtoV6ProviderFactories with ConfigPlanChecks), since it is the key state-compatibility proof and currently exists only as prose.

Trim or remove the opening paragraph, which largely restates the frontmatter description without adding operational guidance.

Show a minimal StateUpgrader signature in Step 3 (or point to a section in references/schema-mapping.md) so the state round-trip rule has an executable counterpart.

DimensionReasoningScore

Conciseness

The body is dense with non-obvious expert guidance and assumes competence (no padding about what Terraform or Go is), but the opening paragraph restates the description and a few passages (e.g. the mux preamble) could be trimmed. This matches the score-4 anchor (efficient, minor over-explanation) rather than 5, where every token would earn its place.

4 / 5

Actionability

Concrete and mostly executable: a copy-paste-ready mux `main.go`, exact test names (`_basic` with `ImportStateVerify: true`, `_disappears`), and exact API names (`tf5to6server`, `ExternalProviders`, `ProtoV6ProviderFactories`, `ConfigPlanChecks`). It falls short of the score-5 anchor because the two-step empty-plan test pattern and the `StateUpgrader` mechanism are described in prose without a code example.

4 / 5

Workflow Clarity

A clear five-step sequence (decide → mux → baseline → port → move registration → verify) with explicit validation checkpoints for a risky operation: pre-existing tests "must pass **unchanged**", the empty-plan assertion ("the plan must be empty"), and "`terraform plan` against a real pre-migration state file shows no diff", plus a closing checklist. Matches the score-5 anchor; not 4 because no validation gaps remain.

5 / 5

Progressive Disclosure

The single reference (`references/schema-mapping.md`, verified to exist with real translation-table content) is one level deep and clearly signaled twice — under "**Reference** (load when needed)" and at its point of use in Step 3. Structure matches the score-5 anchor: clear overview, well-signaled reference, easy navigation; the inline main.go is appropriate as the core of Step 1 rather than misplaced reference content.

5 / 5

Total

18

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: it states concrete capabilities in third person, covers both 'what' and 'when' explicitly with concrete trigger phrases, and occupies a well-defined niche. Trigger terms span both natural user language and domain jargon, with synonyms included.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete, named capabilities — "muxing both plugins in one provider (terraform-plugin-mux, tf5to6server)", "schema mapping (ForceNew, ValidateFunc, DiffSuppressFunc, Default, Timeouts, blocks)", "state-compatibility verification" — with comprehensive coverage. It matches the score-5 anchor (multiple specific concrete actions) rather than 4, because no meaningful capability area is missing.

5 / 5

Completeness

The 'what' is fully enumerated (mux setup, per-resource workflow, schema mapping, behavioral traps, state verification) and an explicit "Use when..." clause lists four concrete trigger scenarios. This matches the score-5 anchor exactly and clearly exceeds the score-4 anchor's 'when could be more explicit'.

5 / 5

Trigger Term Quality

It combines natural user phrasings ("converting or translating SDKv2 resources", "setting up a muxed provider server", "debugging plan diffs and state errors") with the exact technical vocabulary of the domain. This matches the score-5 anchor (comprehensive coverage including synonyms) rather than 4, since both colloquial variations and specific jargon are present.

5 / 5

Distinctiveness Conflict Risk

The tightly-scoped niche ("from Plugin SDKv2 to the Plugin Framework") with migration-specific triggers makes confusion with general Terraform or provider-development skills unlikely. Matches the score-5 anchor (clear niche with distinct triggers, minimal conflict risk); it is not 4 because no overlap risk with a closely related skill is apparent.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
hashicorp/agent-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.