typescript-plugin/skills/typescript-sentry/SKILL.md
Error monitoring and performance with Sentry SDK for Bun/Node.js/Next.js — error capture, breadcrumbs, spans, cron monitoring, source maps, structured logging, profiling. Use when adding Sentry, instrumenting cron, or uploading sourcemaps.
npx skillsauth add laurigates/claude-plugins typescript-sentryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Use this skill when... | Use another approach when... |
|------------------------|------------------------------|
| Adding error monitoring to a project | Setting up logging (use a logger library) |
| Instrumenting performance spans | Monitoring infrastructure metrics (use Prometheus/Grafana) |
| Setting up cron job monitoring | Setting up uptime monitoring (use Pingdom/UptimeRobot) |
| Configuring source maps for Sentry | Debugging errors locally (use debugger) |
| Adding structured logging to Sentry | Configuring project-level Sentry compliance (use /configure:sentry) |
| Setting up profiling, replay, or enrichment helpers | Managing Sentry project settings in the dashboard |
| Implementing error/transaction filtering | Creating Sentry alerting rules |
Sentry provides error monitoring and performance tracking:
enableLogs)bun add @sentry/bun
bun add @sentry/node
bun add @sentry/nextjs @sentry/profiling-node
bun add @sentry/react
# or
bun add @sentry/browser
try {
await riskyOperation();
} catch (error) {
Sentry.captureException(error);
throw error; // Re-throw if needed
}
Sentry.captureException(error, {
tags: {
feature: "checkout",
paymentProvider: "stripe",
},
extra: {
orderId: order.id,
userId: user.id,
cartItems: cart.items.length,
},
level: "error", // fatal, error, warning, info, debug
});
// Simple message
Sentry.captureMessage("User completed onboarding");
// With level
Sentry.captureMessage("Rate limit approaching", "warning");
// With context
Sentry.captureMessage("Payment failed", {
level: "error",
tags: { gateway: "stripe" },
extra: { errorCode: "card_declined" },
});
| Context | Command |
|---------|---------|
| Install Bun | bun add @sentry/bun |
| Install Node | bun add @sentry/node |
| Install Next.js | bun add @sentry/nextjs @sentry/profiling-node |
| Install React | bun add @sentry/react |
| Install CLI | bun add -D @sentry/cli |
| Upload maps | npx sentry-cli sourcemaps inject ./dist && npx sentry-cli sourcemaps upload ./dist |
| Setup wizard | npx @sentry/wizard@latest -i sourcemaps |
| Test capture | Sentry.captureMessage("Test from dev") |
| Method | Purpose |
|--------|---------|
| captureException(error) | Capture error with stack trace |
| captureMessage(msg) | Capture text message |
| captureCheckIn(opts) | Cron job check-in |
| addBreadcrumb(crumb) | Add navigation/action trail |
| Method | Purpose |
|--------|---------|
| setTag(key, value) | Add filterable tag |
| setExtra(key, value) | Add debug data |
| setUser(user) | Set user context |
| withScope(callback) | Scoped context |
| Method | Purpose |
|--------|---------|
| startSpan(opts, callback) | Create performance span |
| withMonitor(slug, callback) | Monitor cron job |
| Level | Use Case |
|-------|----------|
| fatal | App crash, unrecoverable |
| error | Error requiring attention |
| warning | Potential issue |
| info | Informational |
| debug | Debugging only |
| Option | Description |
|--------|-------------|
| dsn | Project data source name |
| environment | Environment name (production, staging) |
| release | Application version |
| tracesSampleRate | Transaction sample rate (0.0-1.0) |
| tracesSampler | Dynamic sampling function |
| sendDefaultPii | Capture IP/headers |
| integrations | SDK integrations array |
| enableLogs | Forward structured logs to Sentry |
| profileSessionSampleRate | Profiling sample rate (0.0-1.0) |
| profileLifecycle | "trace" profiles every traced request |
| replaysSessionSampleRate | Session replay sample rate |
| replaysOnErrorSampleRate | Replay capture rate on errors |
| ignoreErrors | Array of error patterns to suppress |
| beforeSend | Filter/modify events before sending |
| beforeSendTransaction | Filter transactions before sending |
| beforeSendLog | Filter structured logs before sending |
For detailed examples, advanced patterns, and best practices, see REFERENCE.md.
tools
Scaffold a new ComfyUI custom-node repo (pyproject, CI, release-please, vitest+pytest, JS extension skeleton) in the picker/gesture vein. Use when bootstrapping or init-ing a comfyui node pack.
tools
Orchestrate a ComfyUI node pack from idea to registry: scaffold, create + seed the repo, open the gitops adoption PR. Use when releasing or spinning up a new comfyui node pack.
testing
macOS EndpointSecurity/EDR high CPU & battery drain. Use when Kandji ESF / XProtect pegs a core; trace the exec storm via powermetrics + eslogger.
development
odiff pixel-by-pixel image diffing. Use when comparing screenshots, detecting visual regressions, diffing before/after PNGs, asserting golden images.