sentry-issue — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited sentry-issue (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Pull everything needed to debug a Sentry issue, starting from just a short ID.
~/.claude/skills/sentry-issue/scripts/sentry-issue.sh MY-PROJECT-4X2Accepts a short ID (PROJECT-ABC), a numeric issue ID, or a full issue URL (https://<org>.sentry.io/issues/123456/). Prints a compact digest: issue summary, tags, exception chain with in-app stack frames, request info, last 10 breadcrumbs. Full JSON payloads are saved to /tmp/sentry-issue-<id>.json and /tmp/sentry-event-<id>.json for follow-up jq queries.
SENTRY_AUTH_TOKEN env -> ./.sentryclirc -> repo-root.sentryclirc -> ~/.sentryclirc. The token is never printed.
--org <slug> flag -> SENTRY_ORG env -> .sentryclircorg key -> auto-discovery via GET /api/0/organizations/. With a single accessible org it is used directly; with multiple orgs, short IDs are probed against each, while numeric IDs require --org.
SENTRY_URL env or .sentryclirc url key for self-hosted;defaults to https://sentry.io (which proxies org-scoped routes to the correct region, including EU orgs).
Required token scopes: org:read, project:read, event:read.
[app] prefix) point at the failing code;tags like functionName, transaction, url, environment locate the runtime context.
path. The Sentry project slug usually maps to a repo - check the slug against the repos you have locally.
jq '.entries[] | select(.type=="exception") | .data.values[0].stacktrace.frames[] | select(.inApp) | {filename, lineNo, context}' /tmp/sentry-event-<id>.json
jq '{stats: .stats, firstRelease: .firstRelease.version, lastRelease: .lastRelease.version}' /tmp/sentry-issue-<id>.json
jq '.contexts' /tmp/sentry-event-<id>.json/debugworkflow using the gathered evidence.
See REFERENCE.md for the full endpoint map and payload anatomy: other events (oldest, by ID, walking previousEventID/nextEventID), tag value distributions, attachments, issue search, source-context jq recipes, and what is NOT available (frame-local variables, session replay). Use it whenever the latest-event digest is not enough evidence.
script does (inside command substitution) so it never appears in output (review-time: secret handling depends on how the command is composed - not pattern-matchable by a hook)
sentry-cli infoto inspect scopes (never print the token itself).
--org, or the issue was deleted.
the script's API-based discovery avoids it.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.