CtrlK
BlogDocsLog inGet started
Tessl Logo

typescript-sdk

TypeScript SDK patterns for Opik. Use when working in sdks/typescript.

58

Quality

73%

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 ./.agents/skills/typescript-sdk/SKILL.md
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.

The body is an exemplary lean project-context skill: non-obvious gotchas (flush-before-exit, domain objects don't do HTTP, never leak rest_api) with terse executable examples and a clear layer-flow map. Its main weaknesses are the dangling testing.md reference and a few guidance sections stated as rules without supporting snippets.

Suggestions

Ship testing.md alongside SKILL.md (or update the link to its real path), since the body directs readers to it for 'Vitest patterns, mocking, flush timing' but the file is absent from the bundle.

Add one short snippet under Batching Semantics or Integration Guidelines (e.g. configuring the debounce window via OpikConfig, or the shape of a thin adapter) so those sections match the executable quality of the gotchas.

DimensionReasoningScore

Conciseness

The body is lean throughout: terse bullets ('Updates wait for pending creates', 'Node >= 18, ESM + CJS builds'), minimal good/bad code pairs, and zero explanation of concepts Claude already knows. Every section carries non-obvious project-specific information, matching 'every token earns its place'.

5 / 5

Actionability

Mostly executable guidance: the good/bad pairs for 'await client.flush()', 'trace.update(...)'/'trace.end()', and the 'export { Opik, track, flushAll }' rule are concrete and copy-paste-usable. Minor gaps: 'Batching Semantics' and 'Integration Guidelines' are constraint statements with no code showing how to configure the debounce window or structure an adapter, so it sits just below the fully-executable anchor 5.

4 / 5

Workflow Clarity

The 'Layer Flow' diagram gives a clear data-path sequence, and the dependencies gotcha embeds an explicit verification checkpoint ('update and verify version references ... in the same PR'). This is a reference/patterns skill rather than a multi-step destructive workflow, so no feedback loop is required, but only one of the gotchas carries an explicit verify step, keeping it below anchor 5.

4 / 5

Progressive Disclosure

A well-organized ~60-line overview with clearly signaled one-level-deep navigation ('[testing.md](testing.md) - Vitest patterns, mocking, flush timing') — no monolith, no nesting. The reference is broken in practice: no testing.md (or references/ directory) exists in the bundle, a minor navigation gap consistent with anchor 4 rather than the 'buried/unsignaled reference' failures of anchor 3.

4 / 5

Total

17

/

20

Passed

Description

52%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 has excellent distinctiveness thanks to the specific product and directory trigger, but it under-communicates capabilities: it states a topic ('patterns') rather than what those patterns do, and offers only one trigger phrase. Adding 2-3 concrete actions and natural user phrasings would lift specificity and completeness.

Suggestions

State 2-3 concrete capabilities in the description, e.g. 'Write and maintain the Opik TypeScript SDK: traces, spans, and dataset APIs, async batching and flush semantics, error handling, and integration adapters.'

Broaden trigger terms beyond the directory path with phrases users naturally say, e.g. 'Use when working in sdks/typescript or when the user mentions Opik, the TypeScript SDK, tracing, or SDK batching/flushing.'

Make the 'what' answer an action question rather than naming a topic: replace 'TypeScript SDK patterns for Opik' with what the skill helps Claude actually do in that codebase.

DimensionReasoningScore

Specificity

"TypeScript SDK patterns for Opik" names a specific, concrete domain, but the description lists zero concrete actions or capabilities. It is not anchor 1 (the domain is specific, not 'pure abstract language' like 'Helps with documents'), but it falls short of anchor 3, which requires 1-2 concrete actions such as 'writes traces' or 'manages batching/flushing'.

2 / 5

Completeness

The 'when' is explicit and specific ("Use when working in sdks/typescript"), but the 'what' is a topic label — "TypeScript SDK patterns for Opik" states a subject without saying what the skill does or covers. It does not fit anchor 4 (both parts present with a clear what) nor anchor 2 (the when is present, so the 'only when without what' case doesn't apply), landing at anchor 3's territory of an incomplete pairing.

3 / 5

Trigger Term Quality

The only trigger is "Use when working in sdks/typescript", a repository path, plus the keywords "Opik" and "TypeScript SDK". Some relevant keywords exist, but common natural variations users would actually say (Opik tracing, logging, LLM monitoring, the TypeScript client) are missing, matching 'some relevant keywords but missing common variations'.

3 / 5

Distinctiveness Conflict Risk

"Opik" combined with "TypeScript SDK" and a directory-scoped trigger (sdks/typescript) carves out a clear niche with minimal overlap risk against other skills — no other skill would plausibly trigger on these terms.

5 / 5

Total

13

/

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 missing

Warning

Total

15

/

16

Passed

Repository
comet-ml/opik
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.