CtrlK
BlogDocsLog inGet started
Tessl Logo

otel-ottl

OpenTelemetry Transformation Language (OTTL) expert for writing and debugging telemetry transformations in the OpenTelemetry Collector. Use when authoring or reviewing `transform`, `filter`, `tail_sampling` processor configs or `routing` connector configs, debugging OTTL syntax or semantics, transforming traces, metrics, logs, or profiles, or converting data-processing requirements into OTTL statements.

76

Quality

95%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

90%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 dense, expert-grade skill body: version-pinned facts, exact function and gate names, and concrete guard patterns with essentially zero padding. The workflow is well-sequenced with validation checkpoints, and the three internal reference files are well-signaled; the only deductions are the missing in-workflow error-recovery loop and an out-of-bundle verification link that cannot be resolved from the bundle itself.

Suggestions

Add an explicit error-recovery loop to step 5 of the workflow (e.g. 'If output differs from expectation, check the statement against Frequent syntax traps and the quick-reference Debugging/Troubleshooting sections, then re-run') to earn the top workflow_clarity anchor.

Make the cross-skill verification link robust: either copy the essential telemetrygen verification commands into references/quick-reference.md, or note that the recipe depends on the sibling otel-telemetrygen skill so the dependency is explicit when the link cannot resolve.

Trim the parenthetical '(history: the otel-collector skill's transform quirks)' — cross-skill history does not earn its tokens in this skill's body.

DimensionReasoningScore

Conciseness

The body is lean and assumes competence: every line carries version-specific facts, traps, or gates Claude cannot reliably recall (e.g. 'the transform default-error gate was removed in v0.162.0', 'Decode(value, "base64"); Base64Decode was removed in v0.161'). No padding or explanation of concepts Claude already knows, and version numbers are anchored by an upfront pin ('pinned to collector-contrib v0.162.0') rather than scattered date-conditional instructions, so the time-sensitivity penalty does not apply. Only a trivial parenthetical ('history: the otel-collector skill's transform quirks') could be trimmed — not enough to drop to score 4's 'minor instances of over-explanation'.

5 / 5

Actionability

Fully concrete guidance throughout: exact guards ('where x != nil', 'IsString(log.body) and IsMatch(log.body.string, "(?s)^\\s*\\{.*\\}\\s*$")'), exact error-mode semantics (ignore/silent/propagate with per-component defaults and consequences), exact escaping rules with examples ('$${1}', 'set(log.attributes["a"], {"foo": "bar"})'), a runnable OTTL statement, and a concrete end-to-end verification pointer (telemetrygen recipe + file-exporter inspection). Per the instruction-skill scoring note, the single code block is not a gap since the guidance is directly executable; score 4 would require missing key details, and none are evident.

5 / 5

Workflow Clarity

The 5-step workflow is clearly sequenced (choose component → choose lowest context → verify functions then write → set error behavior deliberately → verify end to end) with a pre-write verification checkpoint ('If an identifier is absent, treat it as unsupported') and an explicit end-to-end validation step. However, it stops short of the score-5 anchor's 'feedback loops for error recovery': there is no 'if output is wrong, do X' loop in the main workflow — error recovery is deferred to the quick-reference's troubleshooting section rather than linked from step 5. Comfortably above score 3, whose checkpoints are merely implicit.

4 / 5

Progressive Disclosure

Good structure: the body is a concise overview with a dedicated 'Load only what the task needs' section that signals each of the three reference files (contexts.md, functions.md, quick-reference.md — all present and well-sectioned) one level deep, plus guidance to read only relevant sections. The gap against the score-5 anchor is that the body's verification link to '../otel-telemetrygen/SKILL.md#verify-collector-behavior' points outside the bundle and does not resolve in the actual bundle layout, so a navigation path the workflow depends on cannot be verified. Still clearly above score 3, where references are not clearly signaled.

4 / 5

Total

18

/

20

Passed

Description

100%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: third-person, concrete, and comprehensive, with an explicit 'Use when' clause enumerating the exact component names, signal types, and task phrasings that would naturally trigger this skill. Both 'what' and 'when' are answered with concrete trigger phrases, and the niche is unmistakable.

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions — 'writing and debugging telemetry transformations', 'authoring or reviewing transform, filter, tail_sampling processor configs or routing connector configs', 'debugging OTTL syntax or semantics', 'transforming traces, metrics, logs, or profiles', 'converting data-processing requirements into OTTL statements' — with comprehensive coverage of the skill's scope. Matches the anchor 'Lists multiple specific concrete actions; comprehensive coverage' and exceeds the score-4 anchor, which only expects several actions with minor gaps.

5 / 5

Completeness

Explicitly answers both questions: 'what' ('OTTL expert for writing and debugging telemetry transformations in the OpenTelemetry Collector') and 'when' ('Use when authoring or reviewing ... configs, debugging OTTL syntax or semantics, ... or converting data-processing requirements into OTTL statements') with concrete trigger phrases. This mirrors the score-5 anchor example's structure; score 4 would apply only if the 'when' clause were less explicit.

5 / 5

Trigger Term Quality

Covers the natural terms a user would say when needing this skill: component names ('transform', 'filter', 'tail_sampling', 'routing'), 'OTTL', 'OpenTelemetry Collector', 'traces, metrics, logs', 'syntax', 'debugging'. These are exactly the tokens that appear in real requests for this domain; score 4 would require noticeable missing natural terms, and none are evident.

5 / 5

Distinctiveness Conflict Risk

Clear niche (OTTL, a specific DSL) with distinct triggers tied to named Collector components; minimal conflict risk with generic OpenTelemetry or YAML skills. The score-4 anchor ('minor overlap risk with closely related skills') is not needed since the triggers are uniquely OTTL-specific.

5 / 5

Total

20

/

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

relative_links

Relative link issues: 1 suspicious

Warning

Total

15

/

16

Passed

Repository
ollygarden/opentelemetry-agent-skills
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.