Load this skill when a user wants to migrate, convert, port, translate, or move an AWS CDK application (including CDK stacks, constructs, or CloudFormation-synthesized templates) to Pulumi. Phrases such as "convert CDK to Pulumi", "migrate CDK app", "port CDK stacks", "replace CDK with Pulumi", "stop using CDK". Do NOT load for general CDK questions, CDK-only help, or CDK vs Pulumi comparisons where no migration is requested.
65
77%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./migration/skills/pulumi-cdk-to-pulumi/SKILL.mdQuality
Discovery
N/ABased on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
Something went wrong
Implementation
77%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a strong, highly actionable migration skill with excellent workflow clarity and concrete, executable guidance throughout. The custom resource handler table and asset migration strategies represent genuinely valuable domain knowledge that Claude wouldn't have. The main weaknesses are moderate verbosity (some redundancy between sections) and heavy inline content that could benefit from being split into referenced files for better progressive disclosure.
Suggestions
Consider moving the custom resources handler table (section 2.1) and assets/bundling strategies (section 2.3) into separate referenced files to reduce the main SKILL.md length and improve progressive disclosure.
Remove redundancy between 'CRITICAL SUCCESS REQUIREMENTS' and the 'OUTPUT FORMAT' section—the migration report requirements are stated twice.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is fairly long but most content earns its place—the custom resource handler table, asset migration strategies, and TypeScript handling are all non-obvious domain knowledge. However, some sections like 'CRITICAL SUCCESS REQUIREMENTS' repeat what's covered in the workflow and output format, and phrases like 'Follow this workflow exactly and in this order' are unnecessary padding. The 'Working with the User' section is also somewhat redundant. | 2 / 3 |
Actionability | The skill provides fully executable bash commands (jq queries, aws CLI, pulumi config set), concrete TypeScript code examples with correct/incorrect patterns, specific handler-to-resource mapping tables, and precise tool invocations. Nearly every instruction is copy-paste ready or references a specific tool/file. | 3 / 3 |
Workflow Clarity | The workflow is clearly sequenced (1→2→3) with explicit sub-steps, validation checkpoints (section 3.1 requires pulumi preview with zero changes), and feedback loops (if synth fails, inspect cdk.json; if import has changes, investigate and fix). The 'WHEN INFORMATION IS MISSING' section adds an important pre-flight check. Destructive operations (import) have clear validation requirements. | 3 / 3 |
Progressive Disclosure | The skill references external files (cdk-convert.md, cdk-importer.md, cloudformation-id-lookup.md) and external documentation URLs, which is good progressive disclosure. However, no bundle files were provided to verify these references exist, and the SKILL.md itself is quite long (~250 lines) with detailed inline content (custom resource tables, asset strategies) that could potentially be split into referenced files. The structure is reasonable but the main file carries a lot of weight. | 2 / 3 |
Total | 10 / 12 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 — 11 / 11 Passed
Validation for skill structure
No warnings or errors.
f810e50
Table of Contents
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.