home / skills / laurigates / claude-plugins / configure-sentry

This skill checks and configures Sentry error tracking to align with project standards and environment-based DSNs.

npx playbooks add skill laurigates/claude-plugins --skill configure-sentry

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
7.0 KB
---
model: haiku
created: 2025-12-16
modified: 2026-02-10
reviewed: 2025-12-16
description: Check and configure Sentry error tracking for project standards
allowed-tools: Glob, Grep, Read, Write, Edit, Bash, AskUserQuestion, TodoWrite, WebSearch, WebFetch
argument-hint: "[--check-only] [--fix] [--type <frontend|python|node>]"
name: configure-sentry
---

# /configure:sentry

Check and configure Sentry error tracking integration against project standards.

## When to Use This Skill

| Use this skill when... | Use another approach when... |
|------------------------|------------------------------|
| Setting up Sentry error tracking for a new project | Debugging a specific Sentry issue or alert (use Sentry MCP server) |
| Checking Sentry SDK installation and configuration compliance | Querying Sentry events or performance data (use Sentry API/MCP) |
| Fixing hardcoded DSNs or missing environment variable references | Managing Sentry project settings in the Sentry dashboard |
| Adding source map upload and release tracking to CI/CD | Configuring Sentry alerting rules or notification channels |
| Verifying Sentry configuration across frontend, Node.js, or Python projects | Installing a different error tracking tool (e.g., Bugsnag, Rollbar) |

## Context

- Package.json: !`test -f package.json && echo "EXISTS" || echo "MISSING"`
- Pyproject.toml: !`test -f pyproject.toml && echo "EXISTS" || echo "MISSING"`
- Requirements.txt: !`test -f requirements.txt && echo "EXISTS" || echo "MISSING"`
- Project standards: !`head -20 .project-standards.yaml 2>/dev/null`
- Sentry in package.json: !`grep -o '"@sentry/[^"]*"' package.json 2>/dev/null`
- Sentry in pyproject.toml: !`grep 'sentry' pyproject.toml 2>/dev/null`
- Sentry init files: !`find . -maxdepth 3 -name "*sentry*" -type f 2>/dev/null`
- Env files referencing DSN: !`grep -rl 'SENTRY_DSN' .env* .github/workflows/ 2>/dev/null`
- CI workflows: !`find .github/workflows -maxdepth 1 -name '*.yml' 2>/dev/null`

**Skills referenced**: `sentry` (MCP server for Sentry API)

## Parameters

Parse these from `$ARGUMENTS`:

| Flag | Description |
|------|-------------|
| `--check-only` | Report status without offering fixes |
| `--fix` | Apply all fixes automatically without prompting |
| `--type <type>` | Override project type detection (`frontend`, `python`, `node`) |

## Version Checking

**CRITICAL**: Before configuring Sentry SDKs, verify latest versions:

1. **@sentry/vue** / **@sentry/react**: Check [npm](https://www.npmjs.com/package/@sentry/vue)
2. **@sentry/node**: Check [npm](https://www.npmjs.com/package/@sentry/node)
3. **sentry-sdk** (Python): Check [PyPI](https://pypi.org/project/sentry-sdk/)
4. **@sentry/vite-plugin**: Check [npm](https://www.npmjs.com/package/@sentry/vite-plugin)

Use WebSearch or WebFetch to verify current SDK versions before configuring Sentry.

## Execution

Execute this Sentry compliance check:

### Step 1: Detect project type

Determine the project type to select the appropriate SDK and configuration:

1. Read `.project-standards.yaml` for `project_type` field
2. If not found, auto-detect:
   - **frontend**: Has `package.json` with vue/react dependencies
   - **node**: Has `package.json` with Node.js backend (express, fastify, etc.)
   - **python**: Has `pyproject.toml` or `requirements.txt`
3. If `--type` flag is provided, use that value instead

### Step 2: Check SDK installation

Check for Sentry SDK based on detected project type:

**Frontend (Vue/React):**
- `@sentry/vue` or `@sentry/react` in package.json dependencies
- `@sentry/vite-plugin` for source maps

**Node.js Backend:**
- `@sentry/node` in package.json dependencies
- `@sentry/profiling-node` (recommended)

**Python:**
- `sentry-sdk` in pyproject.toml or requirements.txt
- Framework integrations (django, flask, fastapi)

### Step 3: Analyze configuration

Read the Sentry initialization files and check against the compliance tables in [REFERENCE.md](REFERENCE.md). Validate:

1. DSN comes from environment variables (not hardcoded)
2. Tracing sample rate is configured
3. Source maps are enabled (frontend)
4. Init location is correct (Node.js: before other imports)
5. Framework integration is enabled (Python)

### Step 4: Run security checks

1. Verify no hardcoded DSN in any source files
2. Check that DSN is not committed in git-tracked files
3. Verify no auth tokens in frontend code
4. Check production sample rates are reasonable (not 1.0)

### Step 5: Report results

Print a compliance report with:
- Project type (detected or overridden)
- SDK version and installation status
- Configuration check results (PASS/WARN/FAIL)
- Security check results
- Missing configuration items
- Recommendations

If `--check-only`, stop here.

### Step 6: Apply fixes (if --fix or user confirms)

1. **Missing SDK**: Add appropriate Sentry SDK to dependencies
2. **Missing Vite plugin**: Add `@sentry/vite-plugin` for source maps
3. **Missing config file**: Create Sentry initialization file using templates from [REFERENCE.md](REFERENCE.md)
4. **Hardcoded DSN**: Replace with environment variable reference
5. **Missing sample rates**: Add recommended sample rates

### Step 7: Check CI/CD integration

Verify Sentry integration in CI/CD:
- `SENTRY_AUTH_TOKEN` secret configured
- Source map upload step in build workflow
- Release creation on deploy

If missing, offer to add the recommended workflow steps from [REFERENCE.md](REFERENCE.md).

### Step 8: Update standards tracking

Update or create `.project-standards.yaml`:

```yaml
standards_version: "2025.1"
project_type: "<detected>"
last_configured: "<timestamp>"
components:
  sentry: "2025.1"
```

## Environment Variables

| Variable | Description | Required |
|----------|-------------|----------|
| `SENTRY_DSN` | Sentry Data Source Name | Yes |
| `SENTRY_ENVIRONMENT` | Environment name | Recommended |
| `SENTRY_RELEASE` | Release version | Recommended |
| `SENTRY_AUTH_TOKEN` | Auth token for CI/CD | For source maps |

Never commit DSN or auth tokens. Use environment variables or secrets management.

For detailed configuration check tables, initialization templates, and CI/CD workflow examples, see [REFERENCE.md](REFERENCE.md).

## Agentic Optimizations

| Context | Command |
|---------|---------|
| Quick compliance check | `/configure:sentry --check-only` |
| Auto-fix all issues | `/configure:sentry --fix` |
| Frontend project only | `/configure:sentry --type frontend` |
| Python project only | `/configure:sentry --type python` |
| Node.js project only | `/configure:sentry --type node` |
| Check for hardcoded DSNs | `rg -l 'https://[a-f0-9]*@.*sentry\.io' --type-not env` |

## Error Handling

- **No Sentry SDK**: Offer to install appropriate SDK for project type
- **Hardcoded DSN**: Report as FAIL, offer to fix with env var reference
- **Invalid DSN format**: Report error, provide DSN format guidance
- **Missing Sentry project**: Report warning, provide setup instructions

## See Also

- `/configure:all` - Run all compliance checks
- `/configure:status` - Quick compliance overview
- `/configure:workflows` - GitHub Actions integration
- `sentry` MCP server - Sentry API access for project verification

Overview

This skill checks and configures Sentry error tracking to meet project standards. It detects project type, verifies SDK installation and configuration, runs security checks for hardcoded DSNs or tokens, and can apply automated fixes and CI/CD integration updates.

How this skill works

The skill inspects project files (package.json, pyproject.toml, requirements.txt, env and workflow files) and reads .project-standards.yaml when present. It validates SDK presence and versions, analyzes Sentry initialization files for environment-driven DSNs, tracing/sample-rate settings, source-map configuration, and CI/CD source-map upload and release steps. Optionally it can add missing SDKs, replace hardcoded DSNs with env references, and insert recommended workflow steps.

When to use it

  • Setting up Sentry for a new frontend, Node, or Python project
  • Verifying Sentry SDK and configuration against project standards
  • Finding and fixing hardcoded DSNs or missing environment variable usage
  • Adding source-map upload and release tracking to CI/CD pipelines
  • Performing a security sweep to ensure no auth tokens or DSNs are committed

Best practices

  • Always source SENTRY_DSN and SENTRY_AUTH_TOKEN from environment variables or secrets
  • Keep production sample rates below 1.0 and configure tracing per environment
  • Upload source maps and create releases during CI builds for accurate stack traces
  • Initialize Sentry early in app startup (Node: before other imports)
  • Verify SDK versions against the official package registry before installing

Example use cases

  • Run a quick compliance check: detect project type and report missing Sentry configuration
  • Automatically install and initialize the correct Sentry SDK and add SENTRY_DSN env usage
  • Add @sentry/vite-plugin and CI source-map upload to a frontend project
  • Replace hardcoded DSNs across the repo with an environment variable reference
  • Update .project-standards.yaml after configuration to record Sentry component status

FAQ

What project types does this support?

Frontend (Vue/React), Node.js backends, and Python projects are supported; you can override detection with --type.

Will this commit changes when using --fix?

Yes: --fix will apply changes such as installing SDKs, creating init files, and updating workflows; review before pushing.