Migrate Dynatrace classic and Gen2 entity-based DQL to Smartscape equivalents. Covers three scenarios. (1) mass data queries filtered by classic entity conditions — migrate to direct dimension filters first, Smartscape only as fallback; (2) mass data queries using entity subqueries for filtering — same dimension-first strategy; (3) pure entity list queries — migrate fetch dt.entity.* to smartscapeNodes. Also handles entityName, entityAttr, classicEntitySelector, and classic relationship patterns.
64
76%
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 ./skills/dt-migration/SKILL.mdQuality
Discovery
82%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 highly specific and technically detailed description that clearly defines three concrete migration scenarios and names the exact Dynatrace constructs involved. Its main weakness is the absence of an explicit 'Use when...' clause, which means Claude must infer when to select this skill rather than being explicitly guided. The domain specificity naturally provides strong distinctiveness and trigger term quality.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about migrating Dynatrace DQL queries, converting classic entity selectors to Smartscape, or updating Gen2 entity-based queries.'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description lists multiple specific concrete actions across three distinct migration scenarios, names specific functions (entityName, entityAttr, classicEntitySelector), and describes the dimension-first-then-Smartscape-fallback strategy. | 3 / 3 |
Completeness | The description thoroughly covers 'what' (three migration scenarios with specific strategies), but lacks an explicit 'Use when...' clause or equivalent trigger guidance telling Claude when to select this skill. The 'when' is only implied by the nature of the actions described. | 2 / 3 |
Trigger Term Quality | Includes highly specific natural keywords a user working in this domain would use: 'Dynatrace', 'DQL', 'Smartscape', 'classic entity', 'Gen2', 'entitySelector', 'dt.entity.*', 'smartscapeNodes', 'entity subqueries'. These are the exact terms a Dynatrace user would mention. | 3 / 3 |
Distinctiveness Conflict Risk | This is an extremely niche skill targeting Dynatrace DQL migration specifically. The combination of 'Dynatrace', 'DQL', 'Smartscape', and the specific migration patterns makes it virtually impossible to conflict with other skills. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
70%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a well-structured migration skill that excels at progressive disclosure and workflow clarity, providing a clear decision framework for three distinct migration scenarios with appropriate routing to detailed reference files. Its main weakness is the lack of inline executable DQL examples — the body relies heavily on deferred references for concrete code, and some table entries contain redundant notes. The conciseness could be improved by trimming obvious notes and tightening the migration steps.
Suggestions
Add 1-2 inline before/after DQL code examples for the most common migration scenario (e.g., a simple dt.entity.host fetch migrated to smartscapeNodes) so the SKILL.md is actionable without loading references.
Remove or condense the 'Notes' column entries in the Core Entity Mapping Table that merely restate the mapping (e.g., 'Standard host mapping') — these add no information beyond what the other columns already convey.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is mostly efficient and avoids explaining basic concepts Claude would know, but some sections are somewhat verbose — e.g., the Migration Workflow steps could be tighter, and the entity mapping table includes a 'Notes' column that mostly restates the obvious ('Standard host mapping'). The repeated 'load [reference]' instructions add some bulk but are functionally necessary. | 2 / 3 |
Actionability | The skill provides structured decision tables, construct mappings, and clear migration steps, but lacks concrete executable DQL code examples showing before/after transformations inline. The actionable details are deferred to reference files (e.g., examples.md), so the SKILL.md itself reads more as a routing document than a hands-on guide. Without seeing the bundle files, the body alone doesn't give copy-paste-ready guidance. | 2 / 3 |
Workflow Clarity | The workflow is clearly sequenced with a decision tree (three situations), explicit gating steps (fieldsSnapshot gates in the referenced strategy doc), and a numbered migration workflow. The skill explicitly states 'Do not skip the fieldsSnapshot gates' and provides clear fallback logic. Validation checkpoints are referenced (Step 4 equivalence verification) and the ordering is unambiguous. | 3 / 3 |
Progressive Disclosure | Excellent progressive disclosure structure: the SKILL.md serves as a concise overview and routing document with a compact mapping table and decision framework, then clearly signals one-level-deep references for detailed guides (entity families, migration workflow, special cases, examples). References are well-organized with a README index and each link is clearly labeled with its purpose. | 3 / 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.
7cbe1ef
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.