CtrlK
BlogDocsLog inGet started
Tessl Logo

pulumi-arm-to-pulumi

Convert or migrate Azure ARM (Azure Resource Manager) templates, Bicep templates, or code to Pulumi, including importing existing Azure resources. This skill MUST be loaded whenever a user requests migration, conversion, or import of ARM templates, Bicep templates, ARM code, Bicep code, or Azure resources to Pulumi.

64

Quality

76%

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 ./migration/skills/pulumi-arm-to-pulumi/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

62%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 skill provides a well-sequenced, actionable ARM/Bicep→Pulumi workflow with strong validation gates and a zero-diff import feedback loop, but it carries noticeable verbosity (language roster, plan-adjustment preamble, restated facts) and—most importantly—its two core detailed references (arm-conversion-patterns.md, arm-import.md) are missing from the bundle, breaking the progressive-disclosure structure the body promises.

Suggestions

Ship the referenced bundle files arm-conversion-patterns.md and arm-import.md (or inline their essential patterns) so the skill's central conversion and import guidance is actually present rather than pointing to missing material.

Trim the "Language Support" roster and the "PLAN ADJUSTMENT REQUIRED" preamble to the decisions that matter (default language choice; one-line plan-reconciliation reminder) to reduce tokens spent on context Claude already knows.

Add one inline ARM→Pulumi resource translation example (e.g., a Microsoft.Storage/storageAccounts mapping to azure-native) so the core conversion step is actionable without leaving SKILL.md.

DimensionReasoningScore

Conciseness

The body is largely efficient and task-focused, but several sections over-explain context Claude already knows — the seven-line "Language Support" list describing each language's audience ("Great for data teams", "Enterprise Java teams"), restating that there is "NO automated conversion tool," and a verbose PLAN ADJUSTMENT preamble — pushing it toward noticeable verbosity.

3 / 5

Actionability

Mostly executable: real jq/az/pulumi commands for inventory, config, and validation, plus a concrete ESC login command and import-ID patterns; the gap is that the central conversion step itself delegates entirely to a referenced file and offers no inline resource-translation example, so coverage of the core task has minor gaps.

4 / 5

Workflow Clarity

A clear, ordered five-phase workflow with explicit validation checkpoints (zero-diff preview gates: "NO updates / replaces / creates / deletes", a Preview Resolution Workflow, and "Only proceed when validation passes"-style gating) and a feedback loop for diff resolution; the level-5 threshold of a fully self-contained validate→fix→retry loop is only partially met because the core loop lives in the referenced arm-import.md rather than inline.

4 / 5

Progressive Disclosure

The body signals one-level-deep references to two files ([arm-conversion-patterns.md] and [arm-import.md]) with descriptions of what each contains — good intent — but both referenced bundle files are absent from ./references/, ./scripts/, and ./assets/, so the navigation points to missing material and the bulk of conversion/import detail is therefore unavailable rather than appropriately split.

2 / 5

Total

13

/

20

Passed

Description

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

This is a strong activation description: it states concrete capabilities (convert/migrate ARM and Bicep to Pulumi, including import) and gives an explicit, near-exhaustive "must be loaded whenever" trigger clause covering the natural phrasings a user would say. Third-person voice is used throughout. The only minor gap is that it does not surface output languages or export handling, which keeps specificity just below 5.

Suggestions

Optionally mention supported output languages (e.g., TypeScript, Python, Go) in the description so users requesting a specific language stack are clearly covered.

Consider trimming the long enumerative "when" clause slightly (it repeats ARM/Bicep/code several times) to keep the description concise without losing trigger coverage.

DimensionReasoningScore

Specificity

Lists several concrete actions — "Convert or migrate Azure ARM (Azure Resource Manager) templates, Bicep templates, or code to Pulumi, including importing existing Azure resources" — naming two input formats plus conversion and import actions; minor gaps such as output languages or export handling are not surfaced.

4 / 5

Completeness

Explicitly answers "what" (convert/migrate ARM and Bicep to Pulumi, including import) and "when" ("This skill MUST be loaded whenever a user requests migration, conversion, or import ...") with concrete trigger phrases, matching the level-5 anchor.

5 / 5

Trigger Term Quality

Comprehensive natural-term coverage including synonyms and near-exhaustive phrasing ("migration, conversion, or import of ARM templates, Bicep templates, ARM code, Bicep code, or Azure resources to Pulumi"), matching the level-5 anchor's breadth of trigger phrases.

5 / 5

Distinctiveness Conflict Risk

Occupies a clear niche (ARM/Bicep → Pulumi) with highly specific triggers unlikely to fire for unrelated skills; the "MUST be loaded whenever" clause and source/target tooling make overlap risk minimal.

5 / 5

Total

19

/

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.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 5 missing

Warning

Total

15

/

16

Passed

Repository
pulumi/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.