feat(skills): add /sentry-get-started and restructure into five routers Reorganize the skill tree around a single guided entry point. Previously the three routers (sdk-setup / workflow / feature-setup) assumed the user already knew their intent, there was no orientation layer, and SDK setup never confirmed an event actually reached Sentry. Add a `/sentry-get-started` command that orients the user from a cheap probe (MCP auth, repo already using Sentry, has a project) and routes into the right skill -- sending brand-new users straight into first-error setup and showing an existing user the relevant menu. Move to five visible routers so every menu item maps 1:1 to a router the user can invoke directly later (get-started is just a first-run concierge, never the sole path to anything): sdk-setup, add-signal, improve-setup, workflow, monitors. Retire feature-setup and redistribute its skills. Separate WHAT/WHY from HOW: new platform-agnostic concept skills (tracing, logging, metrics, crons, profiling, session-replay, user-feedback) cover strategy and best practices, while the SDK skill remains the source of truth for platform mechanics and is entered scoped to a capability. Add sentry-verify-instrumentation, a shared hidden utility that closes the loop -- trigger a real event and confirm it landed via the MCP -- so no SDK skill reimplements verification. Several new improve-setup (source-maps, releases, data-scrubbing, reduce-volume, enable-ai-review) and monitors (uptime, metric-alerts, dashboards) leaves are intentionally stubs to flesh out in follow-up passes. Extend build-skill-tree.sh for the new categories/sections, regenerate SKILL_TREE.md, and update AGENTS.md. All four plugin builds validate. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8.7 KiB
Agent Instructions
Project Overview
Sentry plugin for AI coding assistants (Claude Code, Cursor, Codex, and Grok). Provides MCP server integration, slash commands, and skills.
Commit Attribution
AI commits MUST include:
Co-Authored-By: (the agent model's name and attribution byline)
Plugin Structure
commands/ # Slash commands (/seer)
skills/ # Setup and review skills
.agents/ # Symlinks to commands/ and skills/
.claude-plugin/ # Claude Code plugin metadata
.cursor-plugin/ # Cursor plugin metadata
Skills use YAML frontmatter with allowed-tools — this is required by Cursor and harmless in Claude Code. Keep it in all skill files.
Skills
SDK Skills (Full Platform Bundles)
| Skill | Description |
|---|---|
sentry-android-sdk |
Full setup wizard for Android (Jetpack Compose, Views, OkHttp, Room, Fragment, Timber) |
sentry-cloudflare-sdk |
Full setup wizard for Cloudflare Workers and Pages (Durable Objects, D1, Queues, Workflows, Hono) |
sentry-cocoa-sdk |
Full setup wizard for Apple platforms (iOS, macOS, tvOS, watchOS, visionOS) |
sentry-dotnet-sdk |
Full setup wizard for .NET (ASP.NET Core, MAUI, WPF, WinForms, Azure Functions) |
sentry-elixir-sdk |
Full setup wizard for Elixir (Phoenix, Plug, LiveView, Oban, Quantum) |
sentry-flutter-sdk |
Full setup wizard for Flutter and Dart (Android, iOS, macOS, Linux, Windows, Web, Dio, sqflite, Hive, Isar, Drift) |
sentry-go-sdk |
Full setup wizard for Go (net/http, Gin, Echo, Fiber) |
sentry-nestjs-sdk |
Full setup wizard for NestJS (Express, Fastify, GraphQL, Microservices) |
sentry-node-sdk |
Full setup wizard for Node.js, Bun, and Deno (Express, Fastify, Koa, Hapi, Connect) |
sentry-nextjs-sdk |
Full setup wizard for Next.js (App Router + Pages Router) |
sentry-php-sdk |
Full setup wizard for PHP (Laravel, Symfony) |
sentry-python-sdk |
Full setup wizard for Python (Django, Flask, FastAPI, Celery) |
sentry-react-native-sdk |
Full setup wizard for React Native and Expo |
sentry-browser-sdk |
Full setup wizard for Browser JavaScript (vanilla JS, jQuery, WordPress, static sites, Loader Script, CDN) |
sentry-react-sdk |
Full setup wizard for React (Router v5-v7 non-framework mode, TanStack, Redux) |
sentry-react-router-framework-sdk |
Full setup wizard for React Router Framework mode (@sentry/react-router) |
sentry-tanstack-start-sdk |
Full setup wizard for TanStack Start React (router tracing, server entry instrumentation, Vite plugin, middleware) |
sentry-ruby-sdk |
Full setup wizard for Ruby (Rails, Sinatra, Sidekiq) |
sentry-svelte-sdk |
Full setup wizard for Svelte/SvelteKit |
Add a Signal Skills (router: sentry-add-signal)
Concept skills are platform-agnostic WHAT/WHY + best practices; the SDK skill is the HOW. The
"which signal" decision framework lives inline in the sentry-add-signal router (with references
under sentry-add-signal/references/).
| Skill | Description |
|---|---|
sentry-tracing |
Tracing/performance concepts and best practices |
sentry-logging |
Structured logging concepts and best practices |
sentry-metrics |
Application metrics concepts and best practices |
sentry-crons |
Cron/recurring-job monitoring concepts and best practices |
sentry-profiling |
Profiling concepts and best practices |
sentry-session-replay |
Session Replay concepts and best practices |
sentry-user-feedback |
User Feedback concepts and best practices |
sentry-setup-ai-monitoring |
Instrument OpenAI/Anthropic/Vercel AI/LangChain/Google GenAI |
Improve Setup Skills (router: sentry-improve-setup)
| Skill | Description |
|---|---|
sentry-source-maps |
Make stack traces readable (source maps / debug files) |
sentry-releases |
Releases with suspect commits and deploy tracking |
sentry-data-scrubbing |
Data scrubbing / PII handling |
sentry-reduce-volume |
Reduce event volume / manage quota |
sentry-enable-ai-review |
Turn on Sentry's AI code review & bug prediction |
sentry-sdk-upgrade |
Upgrade the Sentry JavaScript SDK across major versions |
sentry-otel-exporter-setup |
Setup OTel Collector with Sentry Exporter |
sentry-span-streaming-js |
Migrate JavaScript SDK to streamed span delivery |
sentry-span-streaming-python |
Migrate Python SDK to streamed span delivery |
Workflow Skills (router: sentry-workflow)
| Skill | Description |
|---|---|
sentry-code-review |
Resolve Sentry/Seer bot comments on GitHub PRs (sentry[bot] + seer-by-sentry[bot]) |
sentry-fix-issues |
Find and fix Sentry issues using MCP |
Monitors & Alerts Skills (router: sentry-monitors)
| Skill | Description |
|---|---|
sentry-create-alert |
Create Sentry alerts using the workflow engine API |
sentry-uptime |
Uptime monitoring for a URL (largely UI today) |
sentry-metric-alerts |
Metric alerts (thresholds, anomaly detection) |
sentry-dashboards |
Dashboards to visualize errors, spans, logs, releases |
Internal / Utility Skills (no router)
| Skill | Description |
|---|---|
sentry-verify-instrumentation |
Confirm an event landed via MCP; invoked at the end of every setup |
sentry-sdk-skill-creator |
Create a complete SDK skill bundle for any new platform |
Commands
| Command | Description |
|---|---|
/sentry-get-started |
Guided entry point — orients the user and routes into the right skill |
/seer <query> |
Natural language Sentry environment queries |
MCP Server
Sentry MCP server configured at https://mcp.sentry.dev/mcp. The source of truth is mcp.json: Cursor consumes it as-is at the plugin root, while the Codex and Grok builds emit it as .mcp.json (Codex's validator requires the dotted name; Grok auto-discovers it). Claude declares the server inline in its plugin.json (mcpServers), so the Claude build ships no MCP file. The root .mcp.json is a backwards-compat copy (identical to mcp.json) retained for existing installs that consumed the plugin from this repo's root; keep the two in sync until the root compat surface is removed.
Key Conventions
- All setup skills must detect platform/SDK before suggesting configuration — never assume
- Sentry code review skill only processes comments from
sentry[bot], ignores other bots - GitHub CLI (
gh) required for PR-related skills - Avoid emojis in skill/command content — keep output platform-neutral
Skill Tree Navigation
How it works:
- 5 router skills (always visible in agent metadata):
sentry-sdk-setup,sentry-add-signal,sentry-improve-setup,sentry-workflow,sentry-monitors /sentry-get-startedis a slash command (a thin concierge) that orients the user and routes into these routers — it is not a router itself- All other skills are hidden with
disable-model-invocation: true— loaded on-demand when a router points to them SKILL_TREE.mdat repo root is the flat sitemap listing every skill- This keeps startup metadata small as the library grows
- Tools that don't support
disable-model-invocationsimply see all skills (same as before)
Categories:
sdk-setup— platform/language SDK setup wizards (router:sentry-sdk-setup)add-signal— add telemetry to an existing install; concept skills + AI monitoring (router:sentry-add-signal)improve-setup— source maps, releases, scrubbing, quota, AI review, upgrades, migrations (router:sentry-improve-setup)workflow— debugging, code review, issue management (router:sentry-workflow)monitors— alerts, uptime, metric alerts, dashboards (router:sentry-monitors)internal— contributor tools and shared utilities (e.g.sentry-verify-instrumentation), no router
Adding a new skill:
- Create
skills/<skill-name>/SKILL.mdwith standard frontmatter - Add
category,parent,disable-model-invocation: trueto frontmatter - Add breadcrumb as first body line:
> [All Skills](../../SKILL_TREE.md) > [Category](../router/SKILL.md) > Skill Name - Add the skill to the parent router's routing table
- Run
scripts/build-skill-tree.shto regenerateSKILL_TREE.mdand validate - CI validates automatically on every PR
Adding a new category:
- When a category exceeds ~10 skills, consider splitting
- Create a new router skill with
role: routerin frontmatter - Update existing skills'
categoryandparentfields - Update this file to document the new category
Validation:
scripts/build-skill-tree.sh— regeneratesSKILL_TREE.md, validates all frontmatter, breadcrumbs, and router tablesscripts/build-skill-tree.sh --check— CI mode, fails ifSKILL_TREE.mdis stale or validation errors exist