CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

llmobs-integration

Use when adding, debugging, or modifying LLMObs plugins for an LLM library in dd-trace-js. Triggers: "add LLMObs support", "instrument chat completions / streaming / embeddings / agent runs / orchestration / tool calls / retrieval", "LLMObsPlugin", "getLLMObsSpanRegisterOptions", "setLLMObsTags", "SPAN_KINDS", "span kind", any provider tag ("openai" / "anthropic" / "genai" / "google" / "langchain" / "langgraph" / "ai" llmobs), "VCR cassettes".

68

Quality

85%

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

82%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-crafted, information-dense body that concentrates on exactly what Claude would not know (the plugin contract, span-kind rules, package-shape taxonomy, message formats) and pushes detail into four reference files. The main gaps are the absence of any code skeleton or explicit test-validation step in the workflow, and one bundle reference file that is not discoverable from SKILL.md.

Suggestions

Link references/reference-implementations.md from the body (e.g. from Implementation Steps or Package Shape) so the working examples are discoverable, or remove it from the bundle.

Add an explicit validation step to Implementation Steps, e.g. "Verify with the integration's VCR cassette tests" with the command to run them, closing the workflow's missing feedback loop.

Include a minimal executable plugin skeleton (class extending LLMObsPlugin with the two methods) to lift actionability to copy-paste ready.

DimensionReasoningScore

Conciseness

The ~100-line body is dense with non-obvious, project-specific facts (the LLMObsPlugin contract, SPAN_KINDS values and the 'step' exception, the four package shapes, the exact message shape schema) and explains nothing Claude would already know about LLM libraries generally. Every section earns its tokens, matching the 5 anchor's 'lean and efficient; assumes Claude's competence'.

5 / 5

Actionability

Implementation Steps gives concrete, executable guidance: exact install paths ("packages/dd-trace/src/llmobs/plugins/{integration}/"), the two required methods with their field lists, and export-shape rules per integration. It falls short of the 5 anchor because there are no copy-paste code or command snippets — even a minimal plugin skeleton would close that gap — though the instruction-only scoring note keeps it above the 3 anchor's pseudocode level.

4 / 5

Workflow Clarity

The five-step sequence is clear and correctly ordered, with step 1 acting as a pre-flight checkpoint ("Settle each surface's shape before writing anything", from upstream source) and step 5 covering edges like streaming and absent metadata. It does not reach the 5 anchor because there is no explicit validate/verify step (e.g. running the VCR cassette tests it mentions in the description) or feedback loop, deferring test strategy entirely to the linked llmobs-testing skill.

4 / 5

Progressive Disclosure

The body is a clean overview with well-signaled, one-level-deep links (plugin-architecture.md, category-detection.md, message-extraction.md) and cross-links to sibling skills. Checking the actual bundle, however, references/reference-implementations.md exists but is never linked from SKILL.md, so a valuable reference is orphaned from navigation — a minor organization gap that keeps this at the 4 anchor rather than 5.

4 / 5

Total

17

/

20

Passed

Description

82%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, trigger-rich description that clearly signals when to use the skill and carries distinctive technical vocabulary. Its main weakness is that the 'what' is implied rather than stated — the skill's actual purpose (instrumenting LLM operations and emitting spans) lives in the body, not the description — and bare provider names create mild mis-trigger risk.

Suggestions

Add a 'what' clause stating the concrete outcome, e.g. "Creates LLMObs plugins that instrument LLM library operations and emit span events", so the description answers both what and when on its own.

Qualify bare provider tags to reduce mis-triggering, e.g. "openai/anthropic/langchain instrumentation in dd-trace-js" rather than the unqualified provider names.

DimensionReasoningScore

Specificity

The description names the domain ("LLMObs plugins for an LLM library in dd-trace-js") and several concrete actions ("adding, debugging, or modifying") plus specific operations ("chat completions / streaming / embeddings / agent runs / orchestration / tool calls / retrieval"). It falls short of the 5 anchor because it never states what the plugins actually do (instrument operations, emit spans), so the capability list is present but not comprehensive.

4 / 5

Completeness

The 'when' is fully explicit ("Use when adding, debugging, or modifying..." plus a Triggers list), and a 'what' is present ("LLMObs plugins for an LLM library in dd-trace-js"), but the what is thin — the description never says the plugins instrument LLM operations and emit spans, so it doesn't clearly answer both at the 5 anchor's level. It is well above the 3 anchor because both elements exist explicitly.

4 / 5

Trigger Term Quality

Trigger coverage is comprehensive and natural: users would literally say "add LLMObs support" or "instrument chat completions", and the list also includes exact identifiers ("LLMObsPlugin", "getLLMObsSpanRegisterOptions", "setLLMObsTags", "SPAN_KINDS"), provider names with synonyms ("google" alongside "genai"), and test vocabulary ("VCR cassettes"). This matches the 5 anchor's standard of natural terms plus synonyms and exact technical tokens.

5 / 5

Distinctiveness Conflict Risk

The niche is clear (dd-trace-js LLMObs instrumentation, with unique identifiers like getLLMObsSpanRegisterOptions giving minimal conflict risk), but the bare provider tags "openai" / "anthropic" / "google" are extremely common terms that could fire on unrelated LLM-provider work. That is a minor overlap risk with closely related skills, matching the 4 anchor rather than the 5 anchor's 'minimal conflict risk'.

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

relative_links

Relative link issues: 2 suspicious

Warning

Total

15

/

16

Passed

Repository

DataDog/dd-trace-js

Path

.agents/skills/llmobs-integration/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.