.claude/skills/opentelemetry-genai-spec/SKILL.md
OpenTelemetry semantic conventions for Generative AI attributes. Use when recording telemetry for GenAI.
npx skillsauth add cedricziel/assistant opentelemetry-genai-specInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when adding or reviewing OpenTelemetry instrumentation for LLM systems.
gen_ai.* telemetry that works across backends.Always try to capture these first:
gen_ai.provider.namegen_ai.operation.namegen_ai.request.modelgen_ai.response.modelgen_ai.response.idgen_ai.response.finish_reasonsgen_ai.usage.input_tokensgen_ai.usage.output_tokensgen_ai.conversation.idgen_ai.agent.id, gen_ai.agent.name,
gen_ai.agent.description, gen_ai.agent.versiongen_ai.request.max_tokens,
gen_ai.request.temperature, gen_ai.request.top_p, gen_ai.request.top_k,
gen_ai.request.seed, gen_ai.request.stop_sequences,
gen_ai.request.choice.countgen_ai.input.messages, gen_ai.output.messages,
gen_ai.system_instructions, gen_ai.output.typegen_ai.tool.name, gen_ai.tool.type, gen_ai.tool.description,
gen_ai.tool.call.id, gen_ai.tool.call.arguments, gen_ai.tool.call.result,
gen_ai.tool.definitionsgen_ai.data_source.id, gen_ai.retrieval.query.text,
gen_ai.retrieval.documentsgen_ai.evaluation.name, gen_ai.evaluation.score.value,
gen_ai.evaluation.score.label, gen_ai.evaluation.explanationgen_ai.input.messages, gen_ai.output.messages,
gen_ai.system_instructions, and gen_ai.retrieval.documents, follow the
linked OTel JSON schemas.gen_ai.evaluation.score.label low cardinality.gen_ai.tool.definitions by default; enable only for deep debugging.Treat these as sensitive and opt-in by policy:
gen_ai.input.messagesgen_ai.output.messagesgen_ai.system_instructionsgen_ai.tool.call.argumentsgen_ai.tool.call.resultgen_ai.retrieval.query.textImplementation guidance:
gen_ai.system -> gen_ai.provider.namegen_ai.usage.prompt_tokens -> gen_ai.usage.input_tokensgen_ai.usage.completion_tokens -> gen_ai.usage.output_tokensgen_ai.openai.request.response_format -> gen_ai.output.typegen_ai.openai.request.seed -> gen_ai.request.seedgen_ai.openai.request.service_tier -> openai.request.service_tiergen_ai.openai.response.service_tier -> openai.response.service_tiergen_ai.openai.response.system_fingerprint ->
openai.response.system_fingerprintAlso deprecated with no direct replacement:
gen_ai.promptgen_ai.completiontools
Enforces OpenAPI spec discipline when working on REST API endpoints in this project. Triggers whenever adding, modifying, or removing HTTP routes, request/response types, or API handlers in the Rust web-ui crate (`crates/web-ui`). Reminds the agent to (1) update the committed `openapi.json` spec, (2) run `make dump-openapi` to re-export the spec from the running server, and (3) run `make generate-flutter-client` to regenerate the Dart/dio client in `app/packages/assistant_api/`. Also applies when changing route parameters, status codes, or authentication on existing endpoints.
tools
Browser automation via @playwright/mcp (Microsoft). Use this when the user wants to navigate websites, fill forms, take screenshots, scrape web content, test web apps, or run any multi-step browser workflow. Requires no display (headless mode supported).
testing
A minimal example WASM skill that returns a greeting. Use to verify that the WASM execution tier is working correctly.
development
Run coding agents (Claude Code, Codex, OpenCode, or others) as background processes for programmatic control. Use when you need non-blocking execution, parallel agents, PR reviews, or long-running coding tasks. Prefer this over direct bash for any task that takes more than ~20 seconds.