CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

plan-modifier-cannot-null-a-configured-empty-list

Use when asked for a plan modifier that turns a configured empty list or set into null (NormalizeEmptyListToNull, a planEmptyAs key). Terraform core rejects it: Provider produced invalid plan.

Quality

88%

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

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

An exemplary lean diagnostic skill: it captures trigger conditions, verbatim proof, the underlying core semantics, a concrete fix, and a fast verification path in about 15 lines. The only gap is the absence of a copy-paste code snippet for the readEmptyAs fix and the throwaway unit test.

DimensionReasoningScore

Conciseness

Lean and efficient: five short labeled sections with no padding, and the "Why" section covers obscure Terraform plan-diff semantics (prior-value matching) that Claude would not already know, so every token earns its place. Not below 5 since nothing explained is common knowledge.

5 / 5

Actionability

Concrete guidance throughout — the exact config key "readEmptyAs: \"null\"", verbatim error strings for both top-level and nested cases, the directive "Do not add a plan-side key", and a concrete verification recipe ("a throwaway resource.UnitTest with a one-attribute provider"). It falls short of 5 only because no copy-paste code snippet is provided for the fix or the test.

4 / 5

Workflow Clarity

A single-task skill whose one action is unambiguous (keep [] in the plan; achieve null-on-read via readEmptyAs), with an explicit validation step ("Check: A throwaway resource.UnitTest ... shows it in seconds") — the simple-skill exception applies and no destructive/batch cap is relevant.

5 / 5

Progressive Disclosure

Under 50 lines with well-organized labeled sections (Trigger/Proof/Why/Fix/Check), no bundle files exist, and none are needed — the under-50-lines/no-external-references exception gives this a 5.

5 / 5

Total

19

/

20

Passed

Description

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

A concise, highly concrete description with an explicit trigger clause and niche-specific keywords including the exact error text a user would paste. Its main weakness is that the capability statement is implicit — it says the request fails but not that the skill explains why and provides the readEmptyAs-based fix.

Suggestions

State the skill's positive capability explicitly, e.g. "Explains why Terraform core rejects the modifier and how to get the desired null-state behavior with readEmptyAs instead".

Add the user-facing failure phrase "terraform plan fails" near the error text so the description matches how users describe the symptom.

Mention the nested-list variant ("planned for absence but config wants existence") as an alternate error string users may paste.

DimensionReasoningScore

Specificity

Names concrete identifiers — "NormalizeEmptyListToNull, a planEmptyAs key", "configured empty list or set into null", and the exact error "Provider produced invalid plan" — which goes beyond 1-2 generic actions. It stops short of 5 because it describes a single diagnostic scenario rather than a comprehensive list of capabilities.

4 / 5

Completeness

The "when" is explicit and concrete ("Use when asked for a plan modifier that turns a configured empty list or set into null") and the "what" is stated ("Terraform core rejects it: Provider produced invalid plan"). It is not a 5 because the description states the failure fact but never says what the skill positively provides — the explanation of why and the readEmptyAs fix are only implied.

4 / 5

Trigger Term Quality

Includes the natural phrases a user would say or paste: "plan modifier", "empty list", "null", both API key names, and the verbatim error text "Provider produced invalid plan". A few natural variations (e.g. "terraform plan fails", "empty set/block") are present only partially or implied, keeping it below the comprehensive-coverage anchor.

4 / 5

Distinctiveness Conflict Risk

Highly niche trigger anchored by exact API names (NormalizeEmptyListToNull, planEmptyAs) and a verbatim error string, giving it a clear niche with minimal risk of triggering for an unrelated skill.

5 / 5

Total

17

/

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

coralogix/terraform-provider-coralogix

Path

.claude/skills/plan-modifier-cannot-null-a-configured-empty-list/SKILL.md

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.