npx skills add ...
npx skills add getsentry/sdk-skills --skill span-convention-review
npx skills add getsentry/sdk-skills --skill span-convention-review
Review OpenTelemetry tracing span changes in SDK repositories for conformance to Sentry Conventions and OTel Semantic Conventions. Use when reviewing span instrumentation, "review spans", "check span conventions", "span review", "OTel span check", "tracing convention review".
Review changes in SDK repositories that involve OpenTelemetry tracing spans to ensure they conform to Sentry Conventions and, where Sentry conventions are underspecified, to OpenTelemetry Semantic Conventions.
Find all span-related changes in the current branch compared to the base branch:
Look for patterns indicating span creation or modification:
start_span, start_child, startSpan, StartSpanop=, op:, setting span operation namesset_data, set_attribute, setAttribute, SetAttributedescription=, name=, span namingSPANDATA., SpanData., span data constantsOP., span operation constantsgen_ai., db., http., cache., queue., messaging., resource., ui.If no diff is available, ask the user which files or changes to review.
Determine which Sentry Insights Module each span belongs to based on its operation prefix. Use this mapping to identify the relevant convention URLs:
For each module identified in Step 2, use WebFetch to retrieve the Sentry Convention page from the URL in the table above. Sentry conventions are the primary authority.
If the Sentry convention page is underspecified for a particular attribute, span name format, or operation pattern, also fetch the corresponding OTel Semantic Conventions page for supplementary guidance.
Do not assume or hardcode convention details. Always fetch the live documentation to ensure you are reviewing against the latest version.
For each span change, verify conformance against the fetched conventions for its module. Check the following categories:
op)Verify the op value matches the expected pattern defined in the fetched Sentry convention for the module.
Verify the span name follows the format specified in the fetched convention.
Verify all required span data attributes listed in the fetched convention are set.
Flag if commonly expected optional attributes (listed in the fetched convention) are missing. These are "should have" not blockers.
Check that spans do not leak sensitive data:
Verify attributes use correct types as specified in the conventions:
Present findings grouped by severity:
Issues that MUST be fixed — missing required attributes, wrong op format, incorrect span name patterns.
Issues that SHOULD be addressed — missing recommended attributes, suboptimal naming.
Informational observations — things that look correct, edge cases to be aware of, or areas where conventions are ambiguous.
For each finding, include:
cache.* and db.redis spans). Review each span type against its respective module convention.start_span(op=..., name=...), JavaScript uses startSpan({op: ..., name: ...}), etc.). Focus on the semantic correctness of op, name, and attributes regardless of the API surface.origin is set on auto-instrumented spans (pattern: auto.{category}.{integration}). This is a general Sentry SDK convention.