Skip to main content

sentry-triage

Use when triaging production bugs from Sentry, debugging unresolved issues, or when asked to check Sentry for errors

소스 정보

저장소
getcellm/cellm
최근 소스 활동
2026년 4월 13일 19:25
감지된 SKILL.md 언어
영어
스타
953
포크
44

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
sentry-triage
description
Use when triaging production bugs from Sentry, debugging unresolved issues, or when asked to check Sentry for errors
# Sentry Triage ## Overview Automatically triage the highest-impact unresolved Sentry issues using systematic root cause analysis. Filters out user-specific flukes, writes a plan for real bugs, reproduces them with tests, and fixes them. **Core principle:** Find root cause before attempting fixes. Never ship a fix without a failing test first. **Violating the letter of this process is violating the spirit of debugging.** ## Sentry Configuration - Org: `cellm` - Region URL: `https://de.sentry.io` - Project: `client` ## The Process You MUST complete each phase before proceeding to the next. ### Phase 1: Load and Rank Issues 1. **Fetch top unresolved issues sorted by frequency:** ``` mcp__sentry__list_issues( organizationSlug='cellm', regionUrl='https://de.sentry.io', projectSlugOrId='client', query='is:unresolved', sort='freq', limit=5 ) ``` 2. **Present the issues to the user** as a numbered list with: - Issue ID - Title / error message - Event count - User count (if available) - First seen / last seen 3. **Pick the highest-impact issue** (most frequent + most users affected). Present your choice and reasoning. Ask the user to confirm or pick a different one. ### Phase 2: Root Cause Investigation **BEFORE attempting ANY fix:** 1. **Get full issue details:** ``` mcp__sentry__get_sentry_resource( resourceType='issue', organizationSlug='cellm', resourceId='<issue-short-id>' ) ``` 2. **Get recent events for context:** ``` mcp__sentry__list_issue_events( issueId='<issue-short-id>', organizationSlug='cellm', regionUrl='https://de.sentry.io', limit=5 ) ``` 3. **Optionally run Seer analysis** if the stack trace alone is not enough to understand root cause: ``` mcp__sentry__analyze_issue_with_seer( organizationSlug='cellm', regionUrl='https://de.sentry.io', issueId='<issue-short-id>' ) ``` 4. **Read the error messages and stack traces carefully.** Don't skip past them. 5. **Trace backward through the call chain** to find the original trigger. Don't stop at where the error appears - trace up until you find the source. Read the actual source files in the codebase at each level of the stack. 6. **Check recent changes** that could have caused the issue (git log, git diff). ### Phase 3: Classify the Issue After investigation, classify the issue into one of two categories: #### Category A: User-Specific / Environmental Issues caused by the user's specific environment that we cannot and should not fix in code. Examples: - File or folder permission errors on the user's machine - Incorrect provider API URLs configured by the user - Missing API keys or expired tokens - Antivirus or firewall blocking requests - Corrupted local Excel installation - Network-specific issues (corporate proxy, VPN) - OS-specific quirks unique to one machine **If Category A:** STOP. Present your findings to the user: ``` I believe this issue is user-specific and should be marked as resolved without a code change. **Issue:** <title> **Evidence:** <what you found in the events/stack trace> **Why it's environmental:** <specific reasoning - e.g., "All 3 events come from the same user, the error is a file permission denied on a path specific to their machine"> **Impact of fixing in code:** This would affect all users unnecessarily. Should I mark this as resolved in Sentry? ``` Wait for the user to confirm before marking as resolved. #### Category B: Real Bug The issue is caused by a defect in our code that affects or could affect any user. **If Category B:** Proceed to Phase 4. ### Phase 4: Hypothesis 1. **State your hypothesis clearly:** - "I think X is the root cause because Y" - Be specific, not vague - Reference exact file paths and line numbers 2. **Identify what evidence would confirm or reject the hypothesis:** - What behavior would a test need to demonstrate? - What input triggers the bug? - What is the expected vs actual output? 3. **Present hypothesis to the user** for validation before proceeding. ### Phase 5: Write a Plan **REQUIRED SUB-SKILL:** Invoke `superpowers:writing-plans` to create a plan. The plan should cover: 1. **Write a failing test** that reproduces the bug based on the hypothesis - Prefer a **unit test** if the bug can be isolated to a single component - If the bug requires Excel interaction, write an **integration test** - If neither is possible, STOP and ask the user what to do 2. **Run the test** to confirm it fails (RED) 3. **Write the minimal fix** that makes the test pass 4. **Run the test** to confirm it passes (GREEN) 5. **Run the full test suite** to confirm no regressions The plan validates the hypothesis: if the test fails as predicted, the hypothesis is confirmed. If the test passes unexpectedly, the hypothesis is rejected - return to Phase 4 with new information. ### Phase 6: Execute the Plan **REQUIRED SUB-SKILL:** Invoke `superpowers:executing-plans` to execute the plan task by task. ### Phase 7: Wrap Up After the fix is verified: 1. **Present a suggested commit message** to the user (do NOT commit yourself) 2. **Ask the user** if the Sentry issue should be marked as resolved ## Red Flags - STOP and Return to Phase 2 If you catch yourself: - Proposing a fix without reading the stack trace - Fixing where the error appears instead of where it originates - Skipping the hypothesis step - Writing a fix without a failing test - "It's probably X, let me just fix that" - Changing code that affects all users for a user-specific issue **ALL of these mean: STOP. Return to Phase 2.** ## Test Guidelines When writing tests for Sentry issues: - **Unit tests:** Use real `ConfigureServices` DI setup, only mock Excel-dependent services - **Missing API keys:** Tests must fail loudly with `Assert.Fail`, never skip silently - **Run only relevant tests:** API calls cost money, only run tests for the provider being worked on - **Always run `dotnet format`** before suggesting a commit ## Quick Reference | Phase | Key Activity | Gate | |-------|-------------|------| | **1. Load Issues** | Fetch top 5, pick highest impact | User confirms issue choice | | **2. Investigate** | Stack traces, events, source code | Understand WHAT and WHY | | **3. Classify** | Environmental vs real bug | User confirms classification | | **4. Hypothesis** | State root cause theory | User validates hypothesis | | **5. Plan** | Use writing-plans skill | Plan reviewed | | **6. Execute** | Use executing-plans skill | Tests pass, no regressions | | **7. Wrap Up** | Suggest commit, resolve issue | User commits |
GitHub에서 보기