CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

otel-genai-instrumentation

Instrumenting GenAI/LLM applications with OpenTelemetry for Honeycomb, including content capture and agent failure detection. Trigger phrases: "instrument my GenAI app", "add tracing to LLM calls", "trace AI agent", "instrument OpenAI", "instrument Anthropic", "GenAI observability", "trace tool calling", "LLM token usage", "instrument embeddings", "trace MCP", "GenAI metrics", "instrument LangChain", "add GenAI spans", "capture prompts", "capture LLM responses", "enable GenAI content capture", "streaming tracing", "trace streaming responses".

64

Quality

80%

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

Fix and improve this skill with Tessl

tessl review fix ./honeycomb/skills/otel-genai-instrumentation/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%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-structured, highly actionable skill body with strong progressive disclosure into a real, one-level-deep reference bundle. Its main weakness is redundancy: the consent question, required-attribute rules, base-OTel pointers, and flush code are each stated two or three times, which inflates token cost without adding information.

Suggestions

State the content-capture consent question once (in 'Content Capture') and have 'Critical Requirements Step 1' reference it, cutting ~15 duplicated lines.

Consolidate the required-attributes guidance into 'GenAI Span Types' and reduce the repeated impact bullet lists in 'Attribute Completeness' and Step 3 to a pointer.

Keep one inline force-flush example (Python) and move the Node/Go variants into manual-instrumentation.md, which already covers them.

DimensionReasoningScore

Conciseness

Most of the body is dense, high-value operational content (package/version tables, attribute lists, code) with no padding explaining concepts Claude already knows, but there is real duplication that could be tightened: the content-capture consent question appears verbatim in both 'Critical Requirements Step 1' and 'Content Capture Step 1', the required-attributes guidance and its impact list appear in 'GenAI Span Types', 'Attribute Completeness', and Step 3, and base-OTel cross-references are repeated in three sections. This fits anchor 3 (mostly efficient but could be tightened) rather than anchor 2, since the redundant material is a minority of the file.

3 / 5

Actionability

Highly concrete throughout: exact env vars (OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental, OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=span_only), package names with minimum SDK versions, a span-name pattern table, and per-failure-mode attribute lists. It falls short of anchor 5 only because several code blocks are fragments with '// ... exporter setup ...' ellipses and copy-paste-ready detail is deferred to reference files. Not anchor 3: the guidance is executable, not pseudocode.

4 / 5

Workflow Clarity

'Critical Requirements (Non-Negotiable)' gives an explicit ordered Steps 1-4 (ask about content capture -> enable conventions -> set required attributes -> force_flush), the consent gate acts as a checkpoint, and 'Cross-References' closes with a verification step ('use the query-patterns skill to verify GenAI data in Honeycomb'). It misses anchor 5 because there is no explicit error-recovery/feedback loop (e.g., what to check if GenAI spans don't appear) and verification is delegated to a sibling skill; it clears anchor 3 because sequence and most checkpoints are present.

4 / 5

Progressive Disclosure

The bundle is well structured: seven reference files, each signaled inline with a description of what it contains, one level deep (verified: no reference points to further files), and summarized again under 'Additional Resources'. It falls short of anchor 5 because the overview itself is heavy: full force-flush code in three languages duplicated against manual-instrumentation.md, and an extensive content-capture section (mode comparison, .env examples, privacy patterns) that substantially overlaps content-capture-setup.md — content that could live in the reference files, matching anchor 4's 'minor organization gaps'.

4 / 5

Total

15

/

20

Passed

Description

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

A strong description with an explicit what/when structure and an unusually thorough set of natural trigger phrases. The main weaknesses are modest capability enumeration in the what-clause and minor trigger overlap with sibling observability skills in the same plugin family.

Suggestions

Expand the opening sentence to enumerate the main concrete capabilities (creating GenAI spans for chat/tool/agent operations, streaming and token-usage metrics, MCP instrumentation) instead of only 'content capture and agent failure detection'.

Tighten boundary with the otel-instrumentation sibling, e.g. add 'GenAI/LLM telemetry only; for base OTLP/collector setup see otel-instrumentation', so generic 'instrument my app' requests don't risk pulling this skill.

DimensionReasoningScore

Specificity

The description states the domain ("Instrumenting GenAI/LLM applications with OpenTelemetry for Honeycomb") and only two concrete capability areas ("content capture and agent failure detection"); it does not list the skill's other specific actions (span creation, streaming metrics, MCP instrumentation) the way anchor 5's examples do. The trigger-phrase list hints at breadth but is trigger guidance, not a statement of actions, so it does not lift this to anchor 4.

3 / 5

Completeness

It explicitly answers both: what ("Instrumenting GenAI/LLM applications with OpenTelemetry for Honeycomb, including content capture and agent failure detection") and when ("Trigger phrases: 'instrument my GenAI app', 'add tracing to LLM calls', ..."). This mirrors anchor 5's good example structure of concrete what + explicit trigger phrases.

5 / 5

Trigger Term Quality

Eighteen natural trigger phrases provide comprehensive coverage including synonyms and framework names: "instrument my GenAI app", "add tracing to LLM calls", "trace AI agent", "instrument LangChain", "trace MCP", "capture prompts", "streaming tracing". These match anchor 5's comprehensive-synonym coverage and read as phrases a user would naturally say.

5 / 5

Distinctiveness Conflict Risk

The GenAI/Honeycomb instrumentation niche is clear and most triggers are GenAI-specific, but the skill declares a closely related sibling family (otel-instrumentation, observability-fundamentals, query-patterns), and phrases like "GenAI observability", "GenAI metrics", and "LLM token usage" carry minor overlap risk with those siblings. This fits anchor 4 (mostly distinct, minor overlap with closely related skills) rather than anchor 5's minimal-conflict case.

4 / 5

Total

17

/

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

skill_md_line_count

SKILL.md is long (664 lines); consider splitting into references/ and linking

Warning

Total

15

/

16

Passed

Repository

honeycombio/agent-skill

Path

honeycomb/skills/otel-genai-instrumentation/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.