--- name: "sentry" description: "Use when the user asks to inspect Sentry issues or events, summarize recent production errors, or pull basic Sentry health data via the Sentry CLI; perform read-only queries using the `sentry` command." --- # Sentry (Read-only Observability) ## Quick start - If not already authenticated, ask the user to run `sentry auth login` or set `SENTRY_AUTH_TOKEN` as an env var. - The CLI auto-detects org/project from DSNs in `.env` files, source code, config defaults, and directory names. Only specify `/` if auto-detection fails or picks the wrong target. - Defaults: time range `24h`, environment `production`, limit 20. - Always use `--json` when processing output programmatically. Use `--json --fields` to select specific fields and reduce output size. - Use `sentry schema ` to discover API endpoints quickly. If the CLI is not installed, give the user these steps: 1. Install the Sentry CLI: `curl https://cli.sentry.dev/install -fsS | bash` 2. Authenticate: `sentry auth login` 3. Confirm authentication: `sentry auth status` - Never ask the user to paste the full token in chat. Ask them to set it locally and confirm when ready. ## Core tasks (use Sentry CLI) Use the `sentry` CLI for all queries. It handles authentication, org/project detection, pagination, and retries automatically. Use `--json` for machine-readable output. ### 1) List issues (ordered by most recent) ```bash sentry issue list \ --query "is:unresolved environment:production" \ --period 24h \ --limit 20 \ --json --fields shortId,title,priority,level,status ``` If auto-detection doesn't resolve org/project, pass them explicitly: ```bash sentry issue list {your-org}/{your-project} \ --query "is:unresolved environment:production" \ --period 24h \ --limit 20 \ --json ``` ### 2) Resolve an issue short ID to issue detail ```bash sentry issue view {ABC-123} --json ``` Use the short ID format (e.g., `ABC-123`), not the numeric ID. ### 3) Issue detail ```bash sentry issue view {ABC-123} ``` ### 4) Issue events ```bash sentry issue events {ABC-123} --limit 20 --json ``` ### 5) Event detail ```bash sentry event view {your-org}/{your-project}/{event_id} --json ``` ### 6) AI-powered root cause analysis ```bash sentry issue explain {ABC-123} ``` ### 7) AI-powered fix plan ```bash sentry issue plan {ABC-123} ``` ## Fallback: arbitrary API access For endpoints not covered by dedicated CLI commands, use `sentry api`: ```bash sentry api /api/0/organizations/{your-org}/ --method GET ``` Use `sentry schema` to discover available API endpoints: ```bash sentry schema issues ``` ## Inputs and defaults - `org_slug`, `project_slug`: auto-detected by the CLI from DSNs, env vars, and directory names. Override with positional `{your-org}/{your-project}` if auto-detection fails. - `time_range`: default `24h` (pass as `--period 24h`). - `environment`: default `prod` (pass as part of `--query`, e.g., `environment:production`). - `limit`: default 20 (pass as `--limit`). - `search_query`: optional `--query` parameter, uses Sentry search syntax (e.g., `is:unresolved`, `assigned:me`). - `issue_short_id`: use directly with `sentry issue view`. ## Output formatting rules - Issue list: show title, short_id, status, first_seen, last_seen, count, environments, top_tags; order by most recent. - Event detail: include culprit, timestamp, environment, release, url. - If no results, state explicitly. - Redact PII in output (emails, IPs). Do not print raw stack traces. - Never echo auth tokens. ## Golden test inputs - Org: `{your-org}` - Project: `{your-project}` - Issue short ID: `{ABC-123}` Example prompt: "List the top 10 open issues for prod in the last 24h." Expected: ordered list with titles, short IDs, counts, last seen.