CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

otel-declarative-config

OpenTelemetry declarative YAML configuration for SDK setup. Use when configuring OpenTelemetry SDK providers (tracer, meter, logger), setting up OTLP exporters, defining sampling strategies, or writing otel config files. Triggers on "otel config", "OpenTelemetry YAML", "declarative configuration", "otelconf", "OTEL_CONFIG_FILE", "file_format", "configure tracing/metrics/logs export", or when the user is setting up telemetry pipelines via config files rather than code.

75

Quality

94%

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

SKILL.md
Quality
Evals
Security

Quality

Content

88%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 strong, expert-grade skill body: version-pinned evidence tables, exact commands and entry points, a gated workflow with three explicit validation levels and failure paths, and a correctly split reference file. The two deductions are minor: some redundant restatement of the safe-loading caution, and Cross-References paths that do not resolve within this skill's bundle.

Suggestions

In "Cross-References", state explicitly that `references/declarative-setup.md` and `references/setup.md` live inside the sibling otel-go/otel-java/otel-js/otel-python and otel-dotnet/otel-ruby skills' bundles (or use skill-relative link syntax), since neither path exists in this skill's bundle and a reader resolving them here fails.

Consolidate the triple-stated safe-loader caution in "Trust and evidence boundaries" into a single rule (e.g. one sentence covering 'never invoke any loader API, including one named `safe`, before representation-graph traversal completes with zero non-core tags') to reclaim tokens without losing the constraint.

The Ruby activation row carries ~120 words of 0.1.1 behavioral detail; consider moving the long-tail behavioral notes into `references/runtime-compatibility.md` alongside the other per-runtime evidence and keeping only the entry point and the top caveats in the table.

DimensionReasoningScore

Conciseness

The body is dense with earned tokens — version-pinned tables, exact commands, per-runtime entry points — and avoids explaining concepts Claude already knows. However, there is trimmable redundancy: the safe-loader caution is restated three ways in "Trust and evidence boundaries" ("Do not invoke any YAML loading or construction API—even one named `safe`...", "A loader's `safe` name... is not evidence of rejection", "even one named `safe`"), and the file_format-literal warning appears in both the precedence section and "Generate YAML". This fits 'efficient; minor instances of over-explanation that could be trimmed' rather than the lean anchor 5. The dated version table is mitigated by its dated header and the required date statement in "Response completion", so it is not penalized as undated time-sensitive content.

4 / 5

Actionability

Guidance is fully executable: copy-paste commands ("gh release list --repo open-telemetry/opentelemetry-configuration --exclude-drafts --json tagName,publishedAt --limit 100"), concrete WebFetch URLs with tag placeholders, "export OTEL_CONFIG_FILE=/app/configs/otel.yaml", and exact per-runtime entry points (Go "otelconf.NewSDK", Java "DeclarativeConfiguration.parseAndCreate(InputStream)", Python "load_config_file()" / "configure_sdk()", Ruby "OpenTelemetry::Config.configure"). Even fine-grained exceptions are concrete ("the old `OTEL_EXPERIMENTAL_CONFIG_FILE` is rejected, not accepted as an alias"), matching the copy-paste-ready anchor 5.

5 / 5

Workflow Clarity

The workflow is clearly sequenced with explicit validation checkpoints and feedback loops: the "Selection gate" defines failure paths (unknown runtime → labeled non-deployable schematic only; no declarative support → route to programmatic setup), "Generate YAML" is a numbered 5-step process ending in "Apply all three validation levels", and the three validation levels (release-schema, selected-parser, live) are separately reported with error-recovery rules ("refetch after a schema-related error", "invalidate it when any key changes", "stop and diagnose from the representation graph only"). This matches the anchor-5 pattern of explicit validation steps, feedback loops, and error-recovery checkpoints; anchor 4 would require missing checkpoints, which are absent here.

5 / 5

Progressive Disclosure

Structure is good: the deep evidence behind the version table is correctly split into the real, well-signaled, one-level-deep `references/runtime-compatibility.md` link, and each section is clearly labeled. The gap is the "Cross-References" section: it instructs "load `references/declarative-setup.md`" and "load `references/setup.md`", but neither path exists in this skill's bundle — they presumably live in sibling otel-* skills, yet as written the paths are dangling for a reader resolving them against this skill. That is more than the anchor-4 'minor organization gaps' ideal but far from the unorganized anchor 3, since the one reference that does exist is perfectly signaled and the body's split of dated detail into the reference is appropriate.

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.

The description is a model example: concrete multi-action 'what', an explicit and variegated 'Use when' trigger clause, correct voice, and a well-scoped niche with self-disambiguation against programmatic setup. No weaknesses found against any anchor.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete actions — "configuring OpenTelemetry SDK providers (tracer, meter, logger), setting up OTLP exporters, defining sampling strategies, or writing otel config files" — matching the comprehensive multi-action anchor. It uses third-person/imperative voice with no padding, so it is not the anchor 4 case of minor coverage gaps.

5 / 5

Completeness

Both questions are answered explicitly: what ("OpenTelemetry declarative YAML configuration for SDK setup" plus the enumerated provider/exporter/sampling actions) and when (an explicit "Use when..." clause with concrete trigger phrases and an explicit disambiguating condition). This matches the anchor-5 example structure exactly; anchor 4 would require the 'when' to be less explicit, which it is not.

5 / 5

Trigger Term Quality

The trigger list is unusually thorough with natural synonyms: "otel config", "OpenTelemetry YAML", "declarative configuration", "otelconf", "OTEL_CONFIG_FILE", "file_format", "configure tracing/metrics/logs export", "setting up telemetry pipelines via config files rather than code". Coverage includes abbreviation, full-name, env-var, and format-name variants, meeting the comprehensive synonym anchor rather than the 'a few natural terms missing' anchor 4.

5 / 5

Distinctiveness Conflict Risk

It carves a clear niche — declarative/config-file OpenTelemetry setup — with distinct triggers (OTEL_CONFIG_FILE, otelconf, "otel config") and explicitly separates itself from code-based setup ("via config files rather than code"), minimizing conflict with general OTel instrumentation skills. It does not trigger on generic document/config wording, so it is above the 'minor overlap risk' anchor 4.

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

referenced_paths_exist

Referenced path issues: 2 missing

Warning

Total

15

/

16

Passed

Repository

ollygarden/opentelemetry-agent-skills

Path

skills/otel-declarative-config/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.