Aspire Service Defaults
Aaronontheweb/dotnet-skills
Sets up a shared ServiceDefaults project for .NET Aspire apps that centralizes OpenTelemetry, health checks, HTTP resilience and service discovery for every service.
Agent skill
by jeremylongshore in jeremylongshore/tons-of-skills-marketplace
Advanced Sentry troubleshooting for complex SDK issues, silent event drops, source map failures, distributed tracing gaps, and SDK conflicts.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill sentry-advanced-troubleshooting -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace sentry-advanced-troubleshooting --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.curated/sentry-advanced-troubleshooting .claude/skills/sentry-advanced-troubleshooting && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "sentry-advanced-troubleshooting" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/sentry-advanced-troubleshooting into .claude/skills/sentry-advanced-troubleshooting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sentry-advanced-troubleshooting", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/sentry-advanced-troubleshootingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill sentry-advanced-troubleshooting -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace sentry-advanced-troubleshooting --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/.curated/sentry-advanced-troubleshooting .agents/skills/sentry-advanced-troubleshooting && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sentry-advanced-troubleshooting" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/sentry-advanced-troubleshooting into .agents/skills/sentry-advanced-troubleshooting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sentry-advanced-troubleshooting", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill sentry-advanced-troubleshooting -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace sentry-advanced-troubleshooting --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/.curated/sentry-advanced-troubleshooting .cursor/skills/sentry-advanced-troubleshooting && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sentry-advanced-troubleshooting" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/sentry-advanced-troubleshooting into .cursor/skills/sentry-advanced-troubleshooting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sentry-advanced-troubleshooting", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jeremylongshore/tons-of-skills-marketplace.git --path skills/.curated/sentry-advanced-troubleshooting--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill sentry-advanced-troubleshooting -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace sentry-advanced-troubleshooting --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/.curated/sentry-advanced-troubleshooting .gemini/skills/sentry-advanced-troubleshooting && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sentry-advanced-troubleshooting" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/sentry-advanced-troubleshooting into .gemini/skills/sentry-advanced-troubleshooting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sentry-advanced-troubleshooting", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jeremylongshore/tons-of-skills-marketplace sentry-advanced-troubleshootingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill sentry-advanced-troubleshooting -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/.curated/sentry-advanced-troubleshooting .github/skills/sentry-advanced-troubleshooting && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sentry-advanced-troubleshooting" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/sentry-advanced-troubleshooting into .github/skills/sentry-advanced-troubleshooting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sentry-advanced-troubleshooting", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill sentry-advanced-troubleshooting -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace sentry-advanced-troubleshooting --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/.curated/sentry-advanced-troubleshooting .opencode/skills/sentry-advanced-troubleshooting && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sentry-advanced-troubleshooting" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/sentry-advanced-troubleshooting into .opencode/skills/sentry-advanced-troubleshooting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sentry-advanced-troubleshooting", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
sentry-advanced-troubleshootingAdvanced Sentry troubleshooting for complex SDK issues, silent event drops, source map failures, distributed tracing gaps, and SDK conflicts.
Sentry Advanced Troubleshooting is an agent skill from jeremylongshore/tons-of-skills-marketplace. Advanced Sentry troubleshooting for complex SDK issues, silent event drops, source map failures, distributed tracing gaps, and SDK conflicts. Use when events silently disappear, source maps fail to resolve, traces break across service boundaries, or the SDK conflicts with other libraries like OpenTelemetry or winston. Trigger with phrases like "sentry events missing", "sentry source maps broken", "sentry debug", "sentry not capturing errors", "sentry tracing gaps", "sentry memory leak", "sentry sdk conflict".
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including reference files (for example `references/breadcrumbs-issues.md`, `references/diagnostic-script.md` and `references/errors.md`). Compatibility notes: Designed for Claude Code
It sits in DevOps & Cloud, covering Observability, Performance optimization and Microservices. It works with Sentry and OpenTelemetry. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditGrepBash(node:*)Bash(npm:*)Bash(npx:*)Bash(curl:*)Bash(sentry-cli:*)Bash(dig:*)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlnodenpmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
o0.ingest.sentry.ioAlso links to:
docs.sentry.ioFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Designed for Claude Code
From compatibility in the SKILL.md frontmatter.
Sentry Advanced Troubleshooting loads about 3.7k tokens when it runs, and up to ~8.4k if it reads all its reference files. Until then it costs about 137 tokens; SKILL.md has 636 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 636 words, ~3,726 tokens.
.claude/skills/sentry-advanced-troubleshooting/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.This skill addresses complex Sentry issues that go beyond basic setup: events that silently drop, source maps that refuse to resolve, distributed traces with gaps between services, SDK memory leaks, conflicts with other observability libraries, and network-level DSN blocking. Each section provides a systematic diagnosis path with concrete commands and code to identify root causes.
sentry-install-auth skill)npm install -g @sentry/cli) for source map debuggingdebug: true enabled in SDK init for verbose console output during troubleshootingEvents can vanish at multiple points between your code and the Sentry dashboard. Work through each layer systematically.
Enable debug mode to see SDK internals:
import * as Sentry from '@sentry/node';
Sentry.init({
dsn: process.env.SENTRY_DSN,
debug: true, // Prints all SDK decisions to console
// Wrap transport to log every outbound envelope
transport: (options) => {
const transport = Sentry.makeNodeTransport(options);
return {
...transport,
send: async (envelope) => {
const [header, items] = envelope;
console.log('[Sentry Transport] Outbound envelope:', {
event_id: header.event_id,
sent_at: header.sent_at,
item_count: items?.length,
});
const result = await transport.send(envelope);
console.log('[Sentry Transport] Response:', result);
return result;
},
};
},
});Systematic event-drop diagnosis:
async function diagnoseEventDrop(): Promise<void> {
// Layer 1: Is the client alive?
const client = Sentry.getClient();
if (!client) {
console.error('FAIL: Sentry client is null — SDK never initialized');
console.error('Check: Is instrument.mjs loaded via --import flag?');
return;
}
// Layer 2: Is the DSN valid and reachable?
const dsn = client.getDsn();
if (!dsn) {
console.error('FAIL: DSN is null — check SENTRY_DSN env var');
return;
}
console.log('DSN:', `${dsn.protocol}://${dsn.host}/${dsn.projectId}`);
// Layer 3: Is beforeSend silently dropping events?
const opts = client.getOptions();
if (opts.beforeSend) {
console.warn('WARN: beforeSend is configured — it may be returning null');
console.warn('Test by temporarily removing beforeSend to isolate');
}
// Layer 4: Is sampling dropping events?
console.log('sampleRate:', opts.sampleRate ?? '1.0 (default)');
console.log('tracesSampleRate:', opts.tracesSampleRate ?? 'not set');
if (opts.sampleRate === 0) {
console.error('FAIL: sampleRate is 0 — ALL error events are dropped');
}
// Layer 5: Fire a test event and verify delivery
const eventId = Sentry.captureMessage('Diagnostic probe — safe to ignore', 'debug');
console.log('Test event ID:', eventId || 'NONE — event was dropped before send');
// Layer 6: Flush the transport buffer
const flushed = await Sentry.flush(10000);
console.log('Flush result:', flushed ? 'SUCCESS' : 'TIMEOUT — likely network issue');
if (!flushed) {
console.error('Events are queued but cannot reach Sentry — check network/proxy');
}
}Check for tunnel misconfiguration:
If you route events through a server-side tunnel (to bypass ad blockers), verify the tunnel endpoint proxies correctly:
# Test your tunnel endpoint returns 200 and forwards to Sentry
curl -v -X POST "https://yourapp.com/api/sentry-tunnel" \
-H "Content-Type: application/x-sentry-envelope" \
-d '{"dsn":"https://key@o0.ingest.sentry.io/123"}
{"type":"event"}
{"message":"tunnel test","level":"info"}' 2>&1 | grep "< HTTP"
# Expected: HTTP/2 200 (or 202)Source map resolution failures:
Source maps break when the artifact URL stored in Sentry does not match the URL in the error's stack frame. Use sentry-cli sourcemaps explain to pinpoint the exact mismatch:
# List artifacts uploaded for the current release
RELEASE="${SENTRY_RELEASE:-$(node -e "console.log(require('./package.json').version)")}"
echo "Checking release: $RELEASE"
sentry-cli releases files "$RELEASE" list
# Explain why a specific event has unresolved source maps
# Get the event ID from the Sentry issue detail page
sentry-cli sourcemaps explain \
--org "$SENTRY_ORG" \
--project "$SENTRY_PROJECT" \
"EVENT_ID_HERE"
# Common output: "artifact ~/static/js/main.abc123.js not found"
# This means your url-prefix does not match the deployed URL pathValidate before uploading:
# Dry-run upload to catch issues before they affect production
sentry-cli sourcemaps upload \
--release="$RELEASE" \
--url-prefix="~/static/js" \
--validate \
--dry-run \
./dist
# If using a bundler plugin, verify it sets the correct prefix:
# Webpack: devtool: 'source-map' (not 'eval-source-map')
# Vite: build.sourcemap: trueCheck the URL matching rule: The stack frame URL (e.g., https://example.com/static/js/main.abc123.js) must match the artifact URL (e.g., ~/static/js/main.abc123.js) after the tilde prefix substitution. If your CDN rewrites paths, the prefix must account for the rewritten path.
Distributed tracing gaps:
When traces break between services (a parent service starts a trace but the downstream service creates a new unlinked trace), the issue is missing propagation headers:
// Verify propagation headers are being sent
// In your HTTP client (axios, fetch, etc.), log outbound headers:
import * as Sentry from '@sentry/node';
// Check: does the active span exist when the outbound call happens?
const activeSpan = Sentry.getActiveSpan();
if (!activeSpan) {
console.error('No active span at the point of outbound HTTP call');
console.error('The call must happen INSIDE a Sentry.startSpan() callback');
}
// Manually propagate if auto-instrumentation is not working
const headers: Record<string, string> = {};
Sentry.getClient()?.getOptions().tracePropagationTargets; // check targets
console.log('tracePropagationTargets:',
Sentry.getClient()?.getOptions().tracePropagationTargets ?? 'default (all)');
// Verify: the downstream service must extract these headers
// sentry-trace: <traceId>-<spanId>-<sampled>
// baggage: sentry-environment=production,sentry-release=1.0.0,...// Fix: ensure tracePropagationTargets includes the downstream URL
Sentry.init({
dsn: process.env.SENTRY_DSN,
tracesSampleRate: 1.0,
// Only propagate to your own services — never to third-party APIs
tracePropagationTargets: [
'localhost',
/^https:\/\/api\.yourapp\.com/,
/^https:\/\/internal\./,
],
});Memory leak from unbounded breadcrumbs:
The SDK stores breadcrumbs in memory. In long-running processes (workers, daemons), unbounded accumulation causes heap growth:
// Diagnosis: check breadcrumb count over time
setInterval(() => {
const scope = Sentry.getCurrentScope();
// @ts-expect-error — accessing internal for diagnosis only
const breadcrumbs = scope._breadcrumbs?.length ?? 'unknown';
const mem = process.memoryUsage();
console.log('[Sentry Health]', {
breadcrumbs,
heapUsed: `${(mem.heapUsed / 1024 / 1024).toFixed(1)} MB`,
rss: `${(mem.rss / 1024 / 1024).toFixed(1)} MB`,
});
}, 60_000);
// Fix: cap breadcrumbs and disable noisy auto-breadcrumbs
Sentry.init({
dsn: process.env.SENTRY_DSN,
maxBreadcrumbs: 20, // Default is 100 — reduce for long-running processes
integrations: [
// Disable console breadcrumbs if they flood the buffer
Sentry.consoleIntegration({ levels: ['error', 'warn'] }),
],
});See SDK conflicts, network blocks, and custom transport for OpenTelemetry dual-registration fixes, winston/pino conflict resolution, network proxy/firewall diagnosis (DNS, curl, raw envelope test), custom transport debugging wrappers, and a comprehensive diagnostic shell script.
sourcemaps explain| Symptom | Root Cause | Solution |
|---|---|---|
debug: true prints nothing | SDK never initialized | Verify instrument.mjs loads via --import flag before app code |
flush() always times out | Network blocking outbound HTTPS | Check firewall rules, proxy env vars; test with curl to ingest endpoint |
| Source maps show wrong file | URL prefix does not match stack frame URL | Run sentry-cli sourcemaps explain EVENT_ID to see exact mismatch |
| Duplicate events in dashboard | Multiple Sentry.init() calls in codebase | Search for all init calls (grep -r "Sentry.init"), consolidate to one file |
| Heap grows steadily over hours | Unbounded breadcrumb accumulation | Set maxBreadcrumbs: 20, filter noisy console integrations |
| Traces split into separate transactions | Missing propagation headers to downstream | Verify tracePropagationTargets includes the downstream service URL |
Sentry.getActiveSpan() returns undefined | HTTP call is outside a span context | Wrap the call in Sentry.startSpan() or check async context propagation |
| OpenTelemetry double-tracing | Both Sentry and OTel register global tracer | Use skipOpenTelemetrySetup: true and add SentrySpanProcessor to your OTel SDK |
TypeScript — Full diagnostic init for a production Node.js service:
import * as Sentry from '@sentry/node';
Sentry.init({
dsn: process.env.SENTRY_DSN,
environment: process.env.NODE_ENV || 'development',
release: process.env.SENTRY_RELEASE,
debug: process.env.SENTRY_DEBUG === 'true',
maxBreadcrumbs: 30,
tracesSampleRate: process.env.NODE_ENV === 'production' ? 0.2 : 1.0,
tracePropagationTargets: [
'localhost',
/^https:\/\/api\.yourapp\.com/,
/^https:\/\/internal\./,
],
beforeSend(event, hint) {
// Log every event decision for troubleshooting
if (process.env.SENTRY_DEBUG === 'true') {
console.log('[Sentry beforeSend]', {
type: event.type,
message: event.message,
exception: hint?.originalException?.constructor?.name,
});
}
return event;
},
integrations: (defaults) => [
...defaults,
Sentry.consoleIntegration({ levels: ['error', 'warn'] }),
],
});
// Verify and log SDK state at startup
const client = Sentry.getClient();
if (client) {
const dsn = client.getDsn();
console.log('[Sentry] Initialized:', {
host: dsn?.host,
project: dsn?.projectId,
release: client.getOptions().release,
integrations: client.getOptions().integrations?.map((i) => i.name),
});
} else {
console.error('[Sentry] CRITICAL: Client failed to initialize');
}Python — Diagnostic init with event logging:
import sentry_sdk
import os
import logging
logger = logging.getLogger("sentry_debug")
def before_send_debug(event, hint):
"""Log every event decision for troubleshooting."""
exc = hint.get("exc_info")
logger.info(
"[Sentry beforeSend] type=%s exception=%s message=%s",
event.get("type", "error"),
exc[0].__name__ if exc else "none",
event.get("message", ""),
)
return event
sentry_sdk.init(
dsn=os.environ.get("SENTRY_DSN"),
environment=os.environ.get("SENTRY_ENVIRONMENT", "development"),
release=os.environ.get("SENTRY_RELEASE"),
traces_sample_rate=0.2,
max_breadcrumbs=30,
debug=os.environ.get("SENTRY_DEBUG", "").lower() == "true",
before_send=before_send_debug,
# Propagate traces only to your own services
trace_propagation_targets=[
r"^https://api\.yourapp\.com",
r"^https://internal\.",
"localhost",
],
)
# Verify initialization
client = sentry_sdk.get_client()
if client.is_active():
logger.info("[Sentry] SDK active — DSN project: %s", client.dsn.split("/")[-1])
# Fire test event
event_id = sentry_sdk.capture_message("Diagnostic probe", level="debug")
logger.info("[Sentry] Test event: %s", event_id)
sentry_sdk.flush(timeout=5)
else:
logger.error("[Sentry] SDK is NOT active — check DSN and init order")© jeremylongshore, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 9 other files (references) in skills/.curated/sentry-advanced-troubleshooting of jeremylongshore/tons-of-skills-marketplace.
Open the folder on GitHubat commit cfae287
Sentry Advanced Troubleshooting next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Sentry Advanced Troubleshooting this skilljeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~3.7k | Automated safety check: Pass | MIT | |
| Aspire Service DefaultsAaronontheweb/dotnet-skills | 1.2k | 1 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Temps Best Practicesgotempsh/temps | 833 | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Domain Cloud Nativemoeru-ai/auv | 100 | 1 repos | ~1k | Automated safety check: Pass | Apache-2.0 | |
| Otel Profilesollygarden/opentelemetry-agent-skills | 106 | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| Error HandlerEliasOulkadi/shokunin | 114 | — | ~3.6k | Automated safety check: Notes | MIT |
Aaronontheweb/dotnet-skills
Sets up a shared ServiceDefaults project for .NET Aspire apps that centralizes OpenTelemetry, health checks, HTTP resilience and service discovery for every service.
gotempsh/temps
Best-practices reference for preparing and instrumenting applications on Temps.
moeru-ai/auv
A skill your agent uses when building cloud-native apps. An agent skill from moeru-ai/auv.
ollygarden/opentelemetry-agent-skills
OpenTelemetry profiles signal and the eBPF profiler (otelcol-ebpf-profiler, profiling receiver).
EliasOulkadi/shokunin
Design error handling, structured logging, and observability with OpenTelemetry (traces, metrics, logs), error classification, recovery patterns (retry with jitter, circuit breaker, bulkhead…
microbus-io/fabric
TRIGGER when user asks to add or modify a metric, counter, gauge, or histogram, or to track/measure an operation.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.
jeremylongshore/tons-of-skills-marketplace
Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.
jeremylongshore/tons-of-skills-marketplace
Execute proactive auto-loading: automatically detects and loads agents.md files.
jeremylongshore/tons-of-skills-marketplace
Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.
jeremylongshore/tons-of-skills-marketplace
Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.
Works with
Categories
Advanced Sentry troubleshooting for complex SDK issues, silent event drops, source map failures, distributed tracing gaps, and SDK conflicts. Sentry Advanced Troubleshooting is an agent skill from jeremylongshore/tons-of-skills-marketplace. Advanced Sentry troubleshooting for complex SDK issues, silent event drops, source map failures, distributed tracing gaps, and SDK conflicts.
Sentry Advanced Troubleshooting fits situations like: events silently disappear; source maps fail to resolve; traces break across service boundaries; the SDK conflicts with other libraries like OpenTelemetry.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill sentry-advanced-troubleshooting -a claude-code`. Or copy the skill folder (skills/.curated/sentry-advanced-troubleshooting in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/sentry-advanced-troubleshooting in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill sentry-advanced-troubleshooting -a codex`. Or copy the skill folder (skills/.curated/sentry-advanced-troubleshooting in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/sentry-advanced-troubleshooting in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill sentry-advanced-troubleshooting -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sentry-advanced-troubleshooting, .gemini/skills/sentry-advanced-troubleshooting, .github/skills/sentry-advanced-troubleshooting and .opencode/skills/sentry-advanced-troubleshooting in your project.
Going by SKILL.md and its folder, Sentry Advanced Troubleshooting needs the command-line tools its instructions call (curl, node and npm). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Write, Edit, Grep, Bash(node:*), Bash(npm:*), Bash(npx:*), Bash(curl:*), Bash(sentry-cli:*), Bash(dig:*). Compatibility (from SKILL.md): Designed for Claude Code.
SKILL.md names 2 domains. In commands or code: o0.ingest.sentry.io; the agent is likely to contact it when it follows the instructions. As links in the text: docs.sentry.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Sentry Advanced Troubleshooting is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Sentry Advanced Troubleshooting: Aspire Service Defaults (Aaronontheweb/dotnet-skills, 1.2k stars), Temps Best Practices (gotempsh/temps, 833 stars), Domain Cloud Native (moeru-ai/auv, 100 stars) and Otel Profiles (ollygarden/opentelemetry-agent-skills, 106 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.
Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.