CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

migrate-to-msk

Helps migrate self-managed Apache Kafka workloads to Amazon MSK Express. Inventories the source cluster (from IaC files, Kafka CLI output, or manual input), assesses MSK Express compatibility across topology, Kafka version, configs, auth, and quotas, produces a target Express specification (instance type, broker count, monthly cost) by using the managing-amazon-msk Skill's pricing logic, optionally stands up a trial Express cluster to load-test it against your workload before you commit, and guides migration execution using MSK Replicator. Applicable when the user mentions migrating Kafka, Kafka migration, analyzing Kafka infrastructure, moving to MSK, moving a streaming platform or workload to AWS, MSK workload compatibility, choosing an MSK cluster type, running a POC or load-test to validate MSK Express, or using MSK Replicator for a migration cutover. Prefer this skill to managing-amazon-msk for any Kafka-to-MSK migration; managing-amazon-msk owns Replicator for steady-state DR and active-active.

Quality

88%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

The canonical home for this skill is migrate-to-msk in aws/agent-toolkit-for-aws

SKILL.md
Quality
Evals
Security

Quality

Content

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

A well-engineered orchestrator skill: clean phase sequencing with explicit gates and guardrails, real bundle files correctly wired one level deep, and no conceptual padding. The main weaknesses are body-level duplication between the Intent Routing overview script and the phase sections, the absence of copy-paste invocation commands in the body, and error-recovery loops being delegated to references with only a one-line Troubleshooting pointer.

Suggestions

Inline the exact `uv run scripts/compatibility.py ...` invocation (a one-line example) in the Phase 2 section so the body is executable without first opening references/assessment-compatibility.md, raising actionability toward copy-paste ready.

Deduplicate the output artifact paths that appear verbatim in both the Intent Routing overview script and the Phase 1/2 'Output(s)' lists — state them once and reference them elsewhere to tighten conciseness.

Add a short error-recovery note to the body (e.g., what to do when compatibility.py exits non-zero or cluster-config.json is malformed/missing required fields) instead of a one-line Troubleshooting pointer, and move that guidance ahead of the per-pillar reference link.

DimensionReasoningScore

Conciseness

Efficient and free of concept padding — no Kafka/MSK explainers, no library comparisons; guardrails and rules are specific behavioral instructions Claude could not infer. Minor over-length remains: the Intent Routing section inlines a ~30-line verbatim customer-response script whose output artifact paths reappear verbatim in the Phase 1/2 'Output(s)' lists, and a few guardrail statements repeat ('operate the skill to answer, never answer from having read its source' appears in both routing and assessment rules). Not a 3 because there is no unnecessary explanation, only duplication that could be trimmed; not a 5 because that duplication costs tokens without adding information.

4 / 5

Actionability

Concrete throughout: exact file names and output paths ('migrate-to-msk-skill-artifacts/<cluster_name>/cluster-config.json'), exact flags ('--broker-classes express', '--region'), verbatim verdict strings ('INFO', 'ADVISORY', 'ACTION_REQUIRED', worst-of), and specific AWS config values ('EncryptionInTransit.ClientBroker = TLS'). The gap keeping it from 5: no copy-paste-ready invocation commands in the body itself — the exact `uv run` commands are deferred to references/assessment-compatibility.md ('For the exact commands, see "Running the assessment"'), so the body alone is not fully executable. It is above a 3 because the guidance is specific and directional, not pseudocode or high-level hints.

4 / 5

Workflow Clarity

The three-phase sequence is clearly structured with explicit routing precedence (Discovery is DEFAULT when IaC files are provided), explicit gates ('Do NOT proceed to Phase 2 without explicit customer confirmation'; 'Before doing ANYTHING else in discovery, you MUST read references/discovery.md'), and real validation checkpoints (surface ACTION_REQUIRED evidence; report sizing output verbatim, never re-derive; ADVISORY evidence like METRICS_MISSING for partial data; the two assessment halves fail independently). This satisfies the destructive/batch validation requirement, so no cap applies. Not a 5 because error-recovery feedback loops (what to do when a script fails or cluster-config.json is malformed) are deferred to references and the body's Troubleshooting section is a single pointer line; minor validation gaps remain in the body itself.

4 / 5

Progressive Disclosure

Verified against the actual bundle: every path cited in the body exists (references/discovery.md, assessment-compatibility.md, assessment-sizing.md, simulation.md; scripts/compatibility.py, simulation_load_test_config.py; assets/simulation-stack.yaml), the cited 'Running the assessment' section exists in assessment-compatibility.md, and references are one level deep — reference files contain only lateral sibling links and internal anchors, no doc chains. SKILL.md is a clean overview router, each reference is linked with a description of what it carries ('the invocation commands, the per-pillar thresholds and evidence codes, the verdict definitions ... the required response template'). This is exactly the anchor-5 pattern: clear overview, well-signaled one-level-deep references, content appropriately split per phase.

5 / 5

Total

17

/

20

Passed

Description

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

An excellent description: comprehensive concrete capabilities, an explicit and rich 'Applicable when' trigger clause, and explicit disambiguation against the sibling managing-amazon-msk skill. The only defect is a stray second-person phrase ('against your workload before you commit') in an otherwise third-person voice, which costs one point on specificity.

DimensionReasoningScore

Specificity

Lists multiple concrete actions with comprehensive coverage — 'Inventories the source cluster (from IaC files, Kafka CLI output, or manual input)', 'assesses MSK Express compatibility across topology, Kafka version, configs, auth, and quotas', 'produces a target Express specification (instance type, broker count, monthly cost)', 'stands up a trial Express cluster to load-test', 'guides migration execution using MSK Replicator'. This matches the anchor-5 example of multiple specific concrete actions, but the second-person phrasing 'to load-test it against your workload before you commit' violates the third-person-voice rule, reducing the score by 1 per the judging guideline. It is not a 3 because the action coverage is far beyond '1-2 concrete actions'.

4 / 5

Completeness

Explicitly answers both: 'what' via the enumerated capabilities (inventories, assesses across five named pillars, produces an Express spec with instance type/broker count/monthly cost, optional trial cluster, Replicator guidance) and 'when' via an explicit 'Applicable when the user mentions migrating Kafka, Kafka migration, ... or using MSK Replicator for a migration cutover' clause with concrete trigger phrases. Exactly matches the anchor-5 pattern; not a 4 because the 'when' clause is already fully explicit and specific.

5 / 5

Trigger Term Quality

Comprehensive natural-term coverage with synonyms and variations: 'migrating Kafka', 'Kafka migration', 'moving to MSK', 'moving a streaming platform or workload to AWS', 'MSK workload compatibility', 'choosing an MSK cluster type', 'running a POC or load-test to validate MSK Express', 'using MSK Replicator for a migration cutover'. These are phrases a user would naturally say; no obvious variations missing. Not a 4 because coverage goes beyond 'a few natural terms missing' — cutover, POC, and platform-level phrasings anticipate how users actually ask.

5 / 5

Distinctiveness Conflict Risk

Clear niche (self-managed Kafka to MSK Express) with distinct triggers, and it proactively resolves the one real conflict: 'Prefer this skill to managing-amazon-msk for any Kafka-to-MSK migration; managing-amazon-msk owns Replicator for steady-state DR and active-active.' Explicit boundary disambiguation against the closest sibling skill means minimal conflict risk; not a 4 because overlap risk is addressed directly rather than merely minor.

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.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

15

/

16

Passed

Repository

aws/agent-toolkit-for-aws

Path

plugins/aws-data-analytics/skills/migrate-to-msk/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.