CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

dt-dql-essentials

Core DQL syntax, pitfalls, query patterns, and query optimization. Load to write, build, fix, or OPTIMIZE a DQL query — prevents syntax errors and makes queries faster, more efficient, and cheaper (less data scanned = lower query consumption/cost per run). Covers fetch commands, data models, field namespaces, time alignment, entity/smartscape patterns, metric discovery, and performance/cost optimization (filter early, bucket filters, short time ranges, field selection, sampling, cardinality). Trigger: "write/build/fix a DQL query", "DQL syntax", "query logs/spans/metrics", "create a timeseries", "optimize my DQL", "make my query faster/cheaper", "reduce DQL cost/consumption/scanned data", "keep DQL cost under control". Do NOT use to explain an existing query or answer product questions. For MONITORING a tenant's ACTUAL query consumption/billing (how much queries cost, who scanned most, cost trends) use dt-platform-costs — this tunes the query text, not billing data.

1.43x
Quality

85%

Does it follow best practices?

Impact

92%

1.43x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

75%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 body is a dense, highly actionable cheatsheet of DQL-specific syntax rules, silent-failure pitfalls, and executable patterns that Claude cannot know on its own, with well-verified one-level-deep reference routing. Its main flaw is verbosity: a fully duplicated makeTimeseries section and bulky inline catalogs could be cut without losing any value.

Suggestions

Delete the second '## makeTimeseries Command' section (the one followed by the spread: example) and merge its two unique bits — the {aggregations} braces variant and the spread: lifetime example — into the first occurrence; the rest repeats the intro, the INVALID_IMPLICIT_TIME_DEFAULT warning, and the interval/by parameter list verbatim.

Move the 'DQL Reference Index' function-name catalog into a small references/dql/index.md (or fold it into the routing table), keeping only the task-level routing in SKILL.md; the full function listing is lookup material, not always-load material.

Condense the 'Chained Lookup Pattern' to one compact annotated example per option (or a single example plus the stated rule about prefix-based field removal), cutting roughly half of that section's token cost.

DimensionReasoningScore

Conciseness

The pitfall catalog is high-value, non-obvious material Claude does not know, but the body carries clear padding: an entire duplicated section ('## makeTimeseries Command' appears twice with near-identical intro, example, and parameter list), a ~30-line inline catalog of every function name, and two full chained-lookup example queries where one plus the rule would do. Matches anchor 3 ('mostly efficient but includes some unnecessary... content that could be tightened'); not 4 because a whole verbatim-duplicated section exceeds 'minor instances'.

3 / 5

Actionability

Fully executable, copy-paste-ready guidance throughout: wrong→right pitfall pairs with exact syntax and real error codes ('summarize p95 = percentile(duration, 95, rollup: avg)' fails with 'UNKNOWN_PARAMETER_DEFINED'), and complete snippets like 'timeseries avg_cpu = avg(dt.host.cpu.usage, scalar:true), by:{dt.smartscape.host}' and the two chained-lookup queries. Matches the 5 anchor: executable examples covering the common cases.

5 / 5

Workflow Clarity

The 'When to Load References' table gives a clear task→reading routing sequence, and the pitfall rows function as error→fix recovery loops (error message → corrected syntax). Not 5: there is no explicit end-to-end sequence for building a query (e.g., discover fields → choose fetch target → filter → aggregate), so checkpoints remain implicit rather than stated as a sequence.

4 / 5

Progressive Disclosure

References are one level deep and every cited path (9 task references plus all 24 references/dql/*.md spec files) exists in the bundle, with a task-keyed routing table and a function-group index for navigation — good structure per the 4 anchor. Not 5: the duplicated makeTimeseries section and the large inline function-name catalog (which mirrors the references/dql/ directory) are minor organization/placement gaps that keep it short of 'clear overview, content appropriately split'.

4 / 5

Total

16

/

20

Passed

Description

92%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 exemplary description: concrete capabilities, an explicit trigger-phrase list, negative boundaries, and explicit disambiguation against the adjacent dt-platform-costs skill. The only notable gap is the absence of the vendor synonyms 'Dynatrace'/'Dynatrace Query Language', which keeps trigger coverage just short of comprehensive.

DimensionReasoningScore

Specificity

Lists multiple concrete actions with comprehensive coverage: 'Core DQL syntax, pitfalls, query patterns, and query optimization', 'write, build, fix, or OPTIMIZE a DQL query', 'prevents syntax errors and makes queries faster, more efficient, and cheaper', and an explicit coverage list ('fetch commands, data models, field namespaces, time alignment, entity/smartscape patterns, metric discovery'). Not 4: coverage is comprehensive rather than having minor gaps. Voice is third-person/imperative, so no person-penalty applies.

5 / 5

Completeness

Explicitly answers both what ('Core DQL syntax, pitfalls, query patterns, and query optimization... prevents syntax errors and makes queries faster...') and when ('Load to write, build, fix, or OPTIMIZE a DQL query' plus a dedicated Trigger: phrase list), with a negative boundary ('Do NOT use to explain an existing query or answer product questions'). This is exactly the 5 anchor pattern of concrete what + explicit when; not 4 because the when-clause is fully explicit rather than improvable.

5 / 5

Trigger Term Quality

The Trigger list gives natural phrasings a user would actually say ('write/build/fix a DQL query', 'optimize my DQL', 'make my query faster/cheaper', 'create a timeseries', 'query logs/spans/metrics'), matching the 4 anchor of good coverage with a few natural terms missing. Not 5: it omits the synonyms 'Dynatrace' and 'Dynatrace Query Language' — the vendor name never appears, so a user asking about a 'Dynatrace query' would not lexically match.

4 / 5

Distinctiveness Conflict Risk

Clear DQL-specific niche with minimal conflict risk, and it proactively disambiguates the nearest sibling skill: 'For MONITORING a tenant's ACTUAL query consumption/billing... use dt-platform-costs — this tunes the query text, not billing data.' Matches the 5 anchor (distinct triggers, explicit boundary); not 4 because overlap risk is addressed head-on rather than merely minor.

5 / 5

Total

19

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 28 deeper-than-1-level

Warning

referenced_paths_exist

Referenced path issues: 31 deeper-than-1-level

Warning

Total

14

/

16

Passed

Repository

Dynatrace/dynatrace-for-ai

Path

skills/dt-dql-essentials/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.