This skill should be used when the user says "migrate infrastructure", "arn infra migrate", "infra migrate", "move to AWS", "move to GCP", "move to Azure", "switch providers", "change cloud provider", "graduate from PaaS", "move from heroku", "move from fly.io", "consolidate providers", "infrastructure migration", "provider migration", "partial migration", "move database", "move services", "arn-infra-migrate", "infrastructure move", "cloud migration", or wants to migrate infrastructure between providers, graduate from PaaS to IaC, consolidate providers, or partially move specific services.
50
55%
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 ./plugins/arn-infra/skills/arn-infra-migrate/SKILL.mdQuality
Discovery
62%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 description is heavily weighted toward trigger terms and 'when to use' guidance, which it does exceptionally well with comprehensive coverage of natural user phrases. However, it completely fails to describe what the skill actually does — there are no concrete actions, outputs, or capabilities listed. It reads more like a routing rule than a skill description.
Suggestions
Add concrete capability descriptions before the trigger terms, e.g., 'Generates infrastructure-as-code configurations (Terraform/Pulumi), creates migration plans, maps existing services to target cloud equivalents, and produces deployment scripts for cloud provider migrations.'
Restructure to lead with 'what it does' followed by 'Use when...' — currently the entire description is a single 'Use when' clause with no capability information.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description lists no concrete actions or capabilities. It only specifies trigger phrases and vaguely mentions 'migrate infrastructure between providers, graduate from PaaS to IaC, consolidate providers, or partially move specific services' without describing what the skill actually does (e.g., generates Terraform configs, creates migration plans, etc.). | 1 / 3 |
Completeness | The 'when' is thoroughly covered with extensive trigger phrases and use cases. However, the 'what' is almost entirely missing — the description never explains what the skill actually does (what outputs it produces, what steps it takes, what artifacts it generates). It only describes when to invoke it, not what it accomplishes. | 2 / 3 |
Trigger Term Quality | Excellent coverage of natural trigger terms including specific commands ('arn infra migrate'), natural phrases ('move to AWS', 'switch providers', 'graduate from PaaS'), specific platforms ('heroku', 'fly.io'), and variations ('infrastructure migration', 'cloud migration', 'provider migration'). These are terms users would naturally say. | 3 / 3 |
Distinctiveness Conflict Risk | The description is highly specific to infrastructure migration between cloud providers and PaaS graduation. The extensive list of specific trigger terms and the narrow domain (cloud infrastructure migration) make it very unlikely to conflict with other skills. | 3 / 3 |
Total | 9 / 12 Passed |
Implementation
47%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a comprehensive migration workflow skill with excellent workflow clarity and rollback handling, but it suffers significantly from verbosity — it could be cut to roughly half its length without losing actionable content. Many critical execution steps (IaC deployment, data migration, DNS cutover) remain abstract directives rather than concrete commands, reducing actionability. The monolithic structure would benefit from splitting scenario-specific details into referenced files.
Suggestions
Cut content by 40-50%: remove explanatory text Claude can infer (e.g., what each migration scenario means), consolidate repeated GitHub/Jira command patterns into a single template with variable placeholders, and use tables instead of prose for option lists.
Make deployment and data migration steps actionable: provide concrete example commands for IaC apply (e.g., `tofu apply -target=...`), database export/import (e.g., `pg_dump | psql`), and DNS record updates rather than abstract directives like 'Apply the generated IaC to staging'.
Split scenario-specific assessment details (Step 3) and issue templates (Step 5) into separate reference files to reduce the main SKILL.md size and improve progressive disclosure.
Provide the referenced bundle files (migration-scenarios.md, migration-checklist.md) or note their expected contents, since the skill depends on them but they are not available for verification.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is extremely verbose at ~400+ lines. It over-explains many steps that Claude could infer, includes extensive boilerplate for issue creation commands repeated across GitHub/Jira, and provides lengthy scenario descriptions that could be condensed into tables or brief lists. Much of the workflow narration (e.g., explaining what consolidation or partial migration means) is unnecessary for Claude. | 1 / 3 |
Actionability | The skill provides concrete gh CLI commands and structured agent invocation patterns, which is good. However, many critical steps like 'Apply the generated IaC to staging', 'Configure data replication', 'Update DNS records', and 'Shift traffic from source to target' are vague directives without executable specifics. The IaC generation and deployment steps delegate to agents without concrete fallback commands. | 2 / 3 |
Workflow Clarity | The workflow is well-sequenced across 10 clearly numbered steps with explicit dependencies. It includes validation checkpoints (staging verification before cutover, pre-cutover checklist), feedback loops (rollback procedure with retry/skip/abandon options), and clear state transitions (label-based status tracking). The rollback handling at Step 9 is thorough with per-service granularity. | 3 / 3 |
Progressive Disclosure | The skill references external files like migration-scenarios.md, migration-checklist.md, experience-derivation.md, and providers.md, which is good progressive disclosure. However, no bundle files are provided to verify these exist, and the main SKILL.md itself is monolithic — much of the scenario-specific guidance (Graduate, Provider migration, Consolidation, Partial) and the detailed issue creation templates could be split into separate reference files. | 2 / 3 |
Total | 8 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
b9084b6
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.