CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

generated-state-upgrade-empty-collections

Use when a generated resource upgrades old state by refresh and the first plan shows labels or lists changing from [] or {} to null. Covers readEmptyAs and a flatten hook.

Quality

84%

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

86%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 exemplarily lean, dense instruction-only skill: it captures non-obvious framework behavior (keepPriorEmpty, why upgrades pass no prior state), gives a precise decision branch for the fix, and names a concrete validation harness and test file. The only meaningful gap is the absence of a concrete example for the AfterFlatten string-map case and an unstated expected test outcome.

DimensionReasoningScore

Conciseness

Every sentence carries non-obvious domain knowledge (keepPriorEmpty keeps the prior null, the upgrade passes no prior state to flatten, sizeAtLeast: 1 blocks configuring an empty map) with zero padding and no explanation of concepts Claude already knows, matching the 'lean and efficient; every token earns its place' anchor.

5 / 5

Actionability

Concrete, executable guidance dominates: exact keys (readEmptyAs: "null"), the AfterFlatten hook, sizeAtLeast: 1, the UpgradeFrom protocol harness, and a named test file. The gap keeping it from a 5 is 'set it null in AfterFlatten', which gives no snippet or mechanism for how to set the value null there, and there is no example configuration.

4 / 5

Workflow Clarity

The Trigger/Fix/Why structure gives a clear decision branch (list, set, or list of objects vs. plain string map) and an explicit validation procedure — upgrade every prior raw state via UpgradeFrom, compare with a read, and plan the configuration. It falls short of a 5 because the expected test outcome (a now-empty plan) is only implicit and there is no failure-recovery guidance.

4 / 5

Progressive Disclosure

The body is 13 lines with no need for external references, and it is cleanly organized into labeled Trigger/Fix/Why sections, which the simple-skill guideline scores at the top with well-organized sections alone.

5 / 5

Total

18

/

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.

A highly distinctive, well-triggered description whose 'when' clause is unusually concrete. Its main weakness is the 'what': 'Covers readEmptyAs and a flatten hook' names the mechanisms but never states the skill's action (e.g., fixing or diagnosing the diff), leaving both specificity and completeness just below top marks.

Suggestions

Open with an action verb stating what the skill does, e.g., 'Fixes a generated resource whose first plan after a state upgrade shows labels or lists changing from [] or {} to null' before the 'Use when' trigger.

Briefly state the outcome of the coverage in the 'what' clause (e.g., 'Covers readEmptyAs and a flatten hook to state the null') so the description answers both what it does and how, not just what it mentions.

Add one or two natural synonyms a user might say, such as 'state migration' or 'empty collection', to broaden trigger-term coverage without adding length.

DimensionReasoningScore

Specificity

The description names the domain ("a generated resource upgrades old state by refresh") and two concrete covered mechanisms ("readEmptyAs and a flatten hook"), but uses no action verbs and never states what the skill actually does with them, matching the 'domain plus 1-2 concrete items, not comprehensive' anchor rather than the 'several specific actions' of a 4.

3 / 5

Completeness

The 'when' is explicit and concrete ("Use when a generated resource upgrades old state by refresh and the first plan shows..."), and a 'what' is present ("Covers readEmptyAs and a flatten hook"), but the what is verb-less and terse, fitting the anchor where both exist yet one could be more explicit.

4 / 5

Trigger Term Quality

It captures the symptom a user would naturally observe ("first plan shows labels or lists changing from [] or {} to null", "upgrades old state by refresh") plus terms like plan, state, and refresh. It misses common variations such as "Terraform", "state migration", or "provider", keeping it below the comprehensive synonym coverage of a 5.

4 / 5

Distinctiveness Conflict Risk

The trigger condition (empty collections reading as [] or {} versus null after a refresh-driven state upgrade) is an extremely narrow niche with distinct, specific triggers, so conflict with other skills is minimal.

5 / 5

Total

16

/

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/generated-state-upgrade-empty-collections/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.