CtrlK
BlogDocsLog inGet started
Tessl Logo

provider-actions

Implement Terraform Provider actions using the Plugin Framework. Use when developing imperative operations that execute at lifecycle events (before/after create, update, destroy).

60

Quality

70%

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

Fix and improve this skill with Tessl

tessl review fix ./plugins/terraform/skills/provider-actions/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%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.

The body is a dense, expert-oriented implementation guide with genuinely executable Go/HCL/test artifacts, a sensible setup-to-submission progression, and honest version-scoped caveats (Terraform 1.14 destroy-event limits). Its main costs are token weight — the generic Common Action Patterns section and duplicated checklists could be cut — and missed opportunities to split testing and documentation detail into reference files.

Suggestions

Delete or compress the 'Common Action Patterns' section — its five bullet-list patterns (batch operations, command execution, service invocation, resource state changes, async job submission) restate generic knowledge and add ~30 lines without executable detail.

Merge the 'Schema Validation Checklist' into the 'Pre-Submission Checklist' — items like 'All List/Map attributes have ElementType' and compile checks appear in both, doubling the same validation content.

Move the testing patterns (PostApplyFunc, sweepers, regex error matching) and documentation standards into reference files (e.g. references/testing.md, references/docs.md) and link them one level deep, trimming the main SKILL.md to the setup/schema/invoke core.

DimensionReasoningScore

Conciseness

The body is mostly tight, expert-level guidance (Go/HCL snippets, exact commands, file layouts) with no hand-holding, but several sections pad it: the five 'Common Action Patterns' subsections are generic bullet lists ("Invoke service with parameters / Wait for completion / Return output / Handle service-specific errors"), and the Schema Validation Checklist duplicates items restated nearly verbatim in the Pre-Submission Checklist ('All List/Map attributes have ElementType', compile checks). This fits anchor 3 ('Mostly efficient but includes some unnecessary explanation or could be tightened'); it is leaner than anchor 2's padded style but has more than the 'minor instances' required for anchor 4.

3 / 5

Actionability

Largely copy-paste-ready guidance: a complete schema snippet, a full ticker-based polling loop with progress throttling, concrete test harness code with 'go test -c -o /dev/null' compile checks, exact HCL trigger syntax, changelog format, and real reference implementations (terraform-provider-tfe's action_query_run.go). Minor gaps keep it below anchor 5: the Invoke example leaves the core logic as comments ('// Implement action logic with error handling'), and both the StateChecks and PostApplyFunc test hooks are empty stubs — so anchor 4 ('Mostly executable guidance; concrete code or commands with minor gaps') is the best fit, well above anchor 3's pseudocode level.

4 / 5

Workflow Clarity

The lifecycle is sequenced logically — numbered one-time setup steps (ProviderWithActions, ActionData, ActionWithConfigure), then schema, invoke, testing, documentation, changelog, and an explicit 11-item Pre-Submission Checklist as a final validation gate, plus compile-first test instructions ('go build', 'go test -c -o /dev/null' before running). Not a 5 because validation checkpoints are scattered and partly optional ('terrafmt diff' marked optional, PostApplyFunc stub unexplained) and the overall order is implied by section arrangement rather than stated as an explicit procedure — matching anchor 4 ('Clear sequence with most checkpoints present; minor validation gaps'), comfortably above anchor 3's missing/implicit checkpoints.

4 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are absent), so everything is inline in one ~500-line SKILL.md. Structure is nonetheless good: clear two-level sections, consistently degradable external pointers ('use the provider-test-patterns skill (if available)', tfplugindocs/provider-docs skill), one-level-deep external links, and per-repo adaptation notes. It falls short of anchor 5 (which would split bulk detail into well-signaled reference files) because testing patterns and documentation standards are sizable inline sections that could live in separate files, but is clearly above anchor 3's 'content that should be separate is inline' with buried references — the cross-skill references are explicitly signaled and the inline content is well navigable, matching anchor 4.

4 / 5

Total

15

/

20

Passed

Description

73%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.

The description is strong: it uses third-person imperative voice, explicitly answers both what the skill does and when to use it, and targets a well-defined niche with distinctive trigger terms. Its main weakness is specificity — it names the capability once rather than enumerating the concrete sub-tasks (schema definition, invoke implementation, trigger HCL, acceptance tests) the skill actually covers.

Suggestions

Enumerate one or two more concrete capabilities in the description, e.g. "Implement Terraform Provider actions (schema definition, Invoke logic, progress reporting, action_trigger lifecycle blocks) using the Plugin Framework", to raise specificity from domain-naming to action-listing.

Add a natural user-side trigger phrase to the 'Use when' clause, such as "or when the user asks to add an action to a Terraform provider", complementing the technical lifecycle-event phrasing.

DimensionReasoningScore

Specificity

"Implement Terraform Provider actions using the Plugin Framework" names the domain and one concrete action (implementing actions) with a precise qualifier ("imperative operations that execute at lifecycle events"), but does not enumerate several distinct capabilities (schema definition, invoke logic, testing, docs are not mentioned). This matches the anchor 'Names domain and 1-2 concrete actions, but not comprehensive'; the anchor at 4 requires several listed specific actions, which is not met, and the anchor at 2 ('Processes PDF files') is clearly less informative than this description.

3 / 5

Completeness

The 'what' is explicit ("Implement Terraform Provider actions using the Plugin Framework") and the 'when' is explicit ("Use when developing imperative operations that execute at lifecycle events (before/after create, update, destroy)"). However, the when-clause is a technical condition rather than a natural user trigger phrase (compare anchor 5's "or when the user mentions PDFs, forms, or document extraction"), and it lacks simpler user-side phrasings — fitting anchor 4 ('Has both what and when; when could be more explicit or specific') rather than 5, and well above anchor 3 ('when is missing or only weakly implied').

4 / 5

Trigger Term Quality

Natural keywords a user would say are present: "Terraform", "Provider actions", "Plugin Framework", "lifecycle events", "before/after create, update, destroy", "imperative operations". A few natural phrasings are missing (e.g. "action block", "action_trigger", "adding an action to a provider"), which fits anchor 4 ('Good keyword coverage; a few natural terms missing') rather than 5's comprehensive synonym/extension coverage, and clearly above 3's 'missing common variations'.

4 / 5

Distinctiveness Conflict Risk

"Terraform Provider actions" with "Plugin Framework" and lifecycle-event qualifiers carve out a clear niche with minimal overlap; only a closely related generic Terraform-provider-development skill could conceivably compete. This matches anchor 5 ('Clear niche with distinct triggers; minimal conflict risk'); anchor 4's 'minor overlap risk with closely related skills' is not a better fit because the 'actions' trigger term is itself the distinguishing feature.

5 / 5

Total

16

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (516 lines); consider splitting into references/ and linking

Warning

Total

15

/

16

Passed

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.