一键导入
fix-sentry-issues
Use when scanning Sentry issues and creating fix PRs. Trigger phrases include "sentry scan", "fix sentry", "scan errors", "what's crashing".
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when scanning Sentry issues and creating fix PRs. Trigger phrases include "sentry scan", "fix sentry", "scan errors", "what's crashing".
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Verify a code change actually works by building/running the app and observing it at its real surface (CLI, API, UI, library, agent), capturing runtime evidence rather than trusting tests. Make sure to use this skill whenever the user has changed code and wants to know it works, is about to merge/push and wants confidence, says "did this actually work", "verify this works", "prove it works", "confirm the change", "make sure it works", wants runtime evidence, or is re-running tests / importing-and-calling just to check behavior, even if they never say the word "verify". When in doubt after any code change, reach for this. For post-deploy production health checks use verify-deploy; for static correctness/quality review use simplify or code-review.
Test an interactive lesson/course (or any "instructions to an AI" skill) by self-play. An agent plays BOTH the instructor following the lesson script AND a calibrated student persona, producing full turn-by-turn transcripts of every lesson, then publishes the raw transcripts to a single static page. Use when asked to "run lesson transcripts", "test the course end to end", "self-play the lessons", "publish raw test transcripts", "walk a synthetic student through every lesson", or to QA an interactive-instruction skill by actually running it rather than just reviewing findings. Distinct from dogfood and adversarial-ux-test (web-app browser QA) and synthetic-userstudies (findings plus a few cherry-picked transcripts). This one captures the COMPLETE run of every lesson and ships them all raw.
Daily memory garbage collection for MEMORY.md / USER.md. Apply decay rules, drain .pending.md, consolidate near-duplicates, maintain canonical theme tags, prune old episode and session files. Invoke when asked to "run memory GC", "clean up memory", "apply memory decay", or from the scheduled cron job.
Monitor a PR until it's ready to merge. Watches CI, reads reviews, checks scope, fixes blocking issues, opens follow-up PRs for low-priority comments, and repeats. Use when: babysit this PR, watch this PR, monitor PR, fix and watch PR, keep this PR green.
Review code changes by analyzing git diffs, leaving inline comments on PRs, and performing thorough pre-push review. Works with the gh CLI or falls back to git + GitHub REST API via curl. Use when: review this PR, review a pull request, look at this PR, code review, review my changes before I push, pre-push review, leave inline comments on a pull request.
Run iterative self-referential development loops using the Ralph Wiggum technique. Use when tasks need repeated iteration, TDD cycles, greenfield builds, or autonomous refinement until tests pass or completion criteria are met. Triggers on ralph loop, ralph mode, iterative loop, autonomous loop, /goal.
| name | fix-sentry-issues |
| description | Use when scanning Sentry issues and creating fix PRs. Trigger phrases include "sentry scan", "fix sentry", "scan errors", "what's crashing". |
Scan recent Sentry issues, analyze root causes, and create PRs to fix them.
sentry) authenticated via SENTRY_AUTH_TOKEN$SENTRY_ORG and $SENTRY_PROJECT setgh) authenticatedsentry issue list $SENTRY_ORG/$SENTRY_PROJECT --limit 10 -t 12h --json \
| jq '{data:[.data[] | {id,shortId,title,culprit,permalink,status,count,userCount,firstSeen,lastSeen,level,logger,type,issueType,metadata}]}'
Use the official Sentry CLI. Do not fall back to MCP tools; configured MCP servers may not expose them consistently.
Note: Fetch ALL issues (not just unresolved) to catch regressions and issues that were auto-resolved but still occurring.
sentry issue list $SENTRY_ORG/$SENTRY_PROJECT --limit 10 -t 7d --query 'is:resolved' --json \
| jq '{data:[.data[] | {id,shortId,title,culprit,permalink,status,statusDetails,metadata,type,issueType,level,logger,project}]}'
For each resolved issue:
statusDetails.inCommit or statusDetails.inRelease for the resolving commit/PRignoreErrors, beforeSend filters, downgrading log levels, or removing capture_exception WITHOUT fixing the underlying bugAdd a "Resolved Issue Audit" section to the plan:
## Resolved Issue Audit
### ISSUE_SHORT_ID — <title>
- **Resolved by:** <commit hash / PR link>
- **Fix type:** ROOT_CAUSE / NOISE_SUPPRESSION / LEGITIMATE_NOISE
- **Assessment:** <Is the underlying issue actually fixed?>
- **Action needed:** NONE / REOPEN_AND_FIX
sentry issue view <ISSUE_SHORT_ID> --json > /tmp/sentry_details/<ISSUE_SHORT_ID>.json
sentry issue events <ISSUE_SHORT_ID> --json > /tmp/sentry_cli_events/<ISSUE_SHORT_ID>.json
Create ~/.hermes/plans/sentry-fix-YYYY-MM-DD-HH.md:
# Sentry Fix Plan — YYYY-MM-DD HH:00
## Summary
- Issues analyzed: N
- Fixable: N
- Noise-only "fixes" reopened: N
- Skipped: N
## Issues
### 1. ISSUE_SHORT_ID — <title>
- **Events (24h):** N | **Users affected:** N
- **Status:** unresolved/resolved/ignored
- **Stack trace summary:** <key frames>
- **Root cause:** <analysis>
- **Proposed fix:** <specific code changes>
- **Verdict:** FIX / SKIP (reason)
FIX if: clear stack trace in app code, identifiable root cause, contained fix, high frequency/severity, or prior "fix" was noise suppression.
SKIP if: third-party code, unclear root cause, requires major architecture changes, duplicate of existing fix, PR already exists, or genuinely fixed.
For each fixable issue, use a git worktree:
cd ~/projects/<repo>
git fetch origin
BASE_REF=$(git show-ref --verify --quiet refs/remotes/origin/main && echo origin/main || echo origin/master)
git worktree add ~/projects/_worktrees/sentry-<SHORT_ID> -b fix/sentry-<SHORT_ID> "$BASE_REF"
Fix guidelines:
cat > /tmp/sentry-pr-body.md <<'EOF'
## Sentry Issue
- **Issue:** <SENTRY_ISSUE_ID>
- **Error:** <error message>
- **Frequency:** <events/users count>
## Root Cause
<explanation>
## Fix
<what was changed and why>
## Testing
- [ ] Lint passes
- [ ] Tests pass
- [ ] Fix addresses the stack trace
EOF
gh pr create --title "fix: <description> (<SENTRY_ISSUE_ID>)" --body-file /tmp/sentry-pr-body.md
Do not remove worktrees or branches after opening the PR.
After processing all issues, provide:
Move completed plan to ~/.hermes/plans/archive/.
When issues aren't code bugs but create Sentry noise:
| Pattern | When | Fix |
|---|---|---|
| Downgrade error → warning | Expected failures (rate limits, health check timeouts) | Change log level |
| Remove capture_exception | Caller already handles error gracefully | Remove explicit Sentry call; keep warning log |
| Fix double-reporting | Inner + outer both report | Remove from inner; let caller decide |
| Add to before_send filter | Worker signals, known infra noise | Add string match in before_send |
| Frontend beforeSend | Timeouts, network errors | Drop event in beforeSend callback |
Principle: All failures still log at warning level for debugging. Only Sentry issue creation is suppressed. True errors continue reporting normally.