CtrlK
BlogDocsLog inGet started
Tessl Logo

maple-telemetry-conventions

Maple's OpenTelemetry conventions — custom span attribute keys (`maple.*` vendor namespace, `query.context`, `db.query.*`, `result.*`, `cache.*`, `tenant.*`), Title Case status codes (`Ok`/`Error`/`Unset`), resource attribute dual-emit (`deployment.environment` + `deployment.environment.name`), span kinds, Tinybird MV pre-extracted columns, loop-prevention filters, and sampling. Use whenever writing or reviewing instrumentation code in any language (TypeScript, Rust, Python) in this repo — adding `setAttribute`/`setAttributes`/`record`/`#[instrument(fields(...))]` calls, setting span status, configuring an OTLP exporter, defining a new resource attribute, or wiring a new query through `WarehouseQueryService.sqlQuery()`.

65

Quality

78%

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/maple-telemetry-conventions/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is admirably concise and well-organized with a strong quick-reference table and precise file:line citations, but its actionability and workflow_clarity are capped because the detailed executable guidance lives entirely in missing bundle files. Progressive disclosure fails outright: every referenced `rules/*.md` is a dangling pointer with no backing files in the skill bundle.

Suggestions

Add the seven referenced `rules/*.md` files (or remove the Index/links) so progressive disclosure resolves to real one-level-deep content instead of dangling references.

Include at least one inline executable snippet (e.g. a TS `setAttribute` example and a Rust `#[instrument(fields(...))]` example) in the Quick reference so actionability reaches copy-paste-ready level without requiring a missing file.

For the loop-prevention and resource-builder guidance, encode an explicit validation/checkpoint step (e.g. 'after editing app.ts, confirm TracerDisabledWhen still guards the tracer') to give the destructive-change warnings a feedback loop.

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence — no OTel primer, no library explanations; it loads straight into an index, a dense quick-reference table, and canonical file:line citations, so every token earns its place.

3 / 3

Actionability

Guidance is concrete (exact attribute spellings, Title Case rules, named file:line ranges) but there are no executable code snippets or copy-paste commands — the actionable detail is deferred to the referenced `rules/*.md` files rather than shown inline.

2 / 3

Workflow Clarity

The 'When to apply' list sequences the situations but there is no multi-step procedure with validation checkpoints; for the destructive/sensitive operations it warns about (e.g. 'Never remove TracerDisabledWhen'), a verify step is asserted but not encoded as a feedback loop, capping clarity at 2.

2 / 3

Progressive Disclosure

The Index points to seven `rules/*.md` files, but none of these bundle files exist — there is no `rules/` directory — so the references are dangling and navigation leads nowhere, matching the 'deeply nested / broken references' low anchor rather than a one-level-deep well-signaled structure.

1 / 3

Total

8

/

12

Passed

Description

100%

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 exemplary: it states concrete capabilities, gives explicit 'Use whenever...' trigger guidance spanning multiple languages and code patterns, and carves out a distinct repo-specific niche. Voice is third person and it avoids fluff.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — `setAttribute`/`setAttributes`/`record`/`#[instrument(fields(...))]`, setting span status, configuring an OTLP exporter, defining resource attributes, and wiring queries through `WarehouseQueryService.sqlQuery()` — matching the 'lists multiple specific concrete actions' anchor.

3 / 3

Completeness

Explicitly answers both 'what' (the full attribute/status/resource conventions) and 'when' via the 'Use whenever writing or reviewing instrumentation code... adding setAttribute..., setting span status, configuring an OTLP exporter...' clause, matching the 'clearly answers both what AND when' anchor.

3 / 3

Trigger Term Quality

Includes natural trigger terms a user would actually say ('instrumentation code', 'setting span status', 'OTLP exporter', 'span attribute') plus the exact API surface names developers reach for, giving strong coverage of natural phrasing across TS/Rust/Python.

3 / 3

Distinctiveness Conflict Risk

A tight, repo-specific niche (Maple's `maple.*` vendor namespace, Tinybird MV columns, loop-prevention filters) with distinct triggers scoped to named files/languages; unlikely to fire for an unrelated skill.

3 / 3

Total

12

/

12

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.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
MapleTechLabs/maple
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.