Understand and validate OpenLLMetry's GenAI semantic-convention layer.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill semantic-conventions --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Semantic Conventions?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-semantic-conventions)More formats (shields.io, HTML) on the badges page.
---
name: semantic-conventions
description: "Understand and validate OpenLLMetry's GenAI semantic-convention layer."
disable-model-invocation: true
metadata:
disco-role: operating
license: Apache 2.0
---
# Semantic Conventions
Use this sub-skill when the task is about OpenLLMetry's semantic-convention contract rather than a provider wrapper or SDK decorator workflow.
## Route here for
- Importing or validating `opentelemetry.semconv_ai` symbols such as `SpanAttributes`, `GenAISystem`, `Meters`, `Events`, `EventAttributes`, `LLMRequestTypeValues`, and `TraceloopSpanKindValues`.
- Mapping upstream OpenTelemetry GenAI attributes such as `gen_ai.provider.name`, `gen_ai.input.messages`, `gen_ai.output.messages`, `gen_ai.tool.definitions`, and `gen_ai.response.finish_reasons`.
- Understanding Traceloop workflow/task/agent/tool span attributes and vector DB event attributes.
- Migrating legacy `LLM_*` names to current `GEN_AI_*` or upstream `GenAIAttributes` names without breaking compatibility aliases.
- Checking whether an installed environment exposes the expected constants and enums using `scripts/check_semconv_constants.py`.
## Use the bundled references
- `references/semantic-attributes.md` — import map, constant groups, message/tool/finish-reason validation rules, and compliance-helper expectations.
- `references/migration-notes.md` — legacy alias categories, provider-name migration, and safe before/after snippets.
- `references/troubleshooting.md` — version drift, deprecated `gen_ai.system`, content/event gating, JSON schemas, finish-reason placement, and alias confusion.
- `scripts/check_semconv_constants.py` — no-network helper for public constant/enumeration checks; supports `--json`.
## Route elsewhere
- Provider wrapper patch points, `.instrument()` behavior, optional target-library failures, and VCR/live-service provider behavior: `../instrumentations/SKILL.md`.
- Traceloop SDK initialization, decorators, manual spans, exporters/processors, and app-level content-tracing configuration: `../sdk-and-tracing/SKILL.md`.
- Checkout-level commands, package maintenance, lint/test selection, and VCR cassette policy: `../repo-development/SKILL.md`.
## Operating checks
When validating a semantic-convention change, keep these invariants visible:
1. New provider spans should use upstream `gen_ai.provider.name`; treat `gen_ai.system` as deprecated compatibility data.
2. Content-bearing message attributes must use the upstream JSON-array fields; finish-reason metadata must not be dropped solely because content tracing is disabled.
3. `SpanAttributes.LLM_*` names are intentionally retained for older packages, but new code should use current `GEN_AI_*` names or upstream `GenAIAttributes` constants.
4. The shared `_testing.py` helper is the source pattern for constant/enumeration compliance checks; use the bundled checker for a safe environment probe.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!