GitHub Issueの確認事項(最後のコメント・descriptionの両方)を、コードベース・ドキュメント・そこから参照されている外部リンク(仕様書・ライブラリ公式ドキュメント等)まで調査し、根拠に基づいた回答をコメントに追記するスキル。調査しても事実で決まらず人間の意思決定が必要な項目は、固定セクションで明示して後続のトリアージへ引き渡す。
triage-sentry-issues
Sentry の Issue 一覧 URL(例 `https://<org>.sentry.io/issues/?project=<id>&environment=<env>`)を受け取り、未解決(unresolved)の Issue を列挙して1件ずつサブエージェントで並列調査する。
コード上で既に解消済みと確認できたものは Sentry 側を resolved にし、未解消のものは `create-issue` スキルで GitHub Issue を作成する。「Sentryのissueをトリアージして」「Sentryの未解決エラーをチケット化して」といった依頼で使用する。
含まれるファイル(1)
- SKILL.md11.2 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Triage Sentry Issues
Sentry の Issue 一覧 URL $ARGUMENTS を起点に、未解決 Issue を「解消済み → Sentry で resolve」「未解消 → GitHub Issue 化」へ振り分けるスキル。
自律実行原則: ユーザーへの確認は行わず、判断はすべて本スキル内のルールで自動決定する。中断条件に該当した場合のみ理由を出力して終了する。
スコープ: 本スキルは調査と振り分けのみを行う。コードの修正・コミット・PR作成はしない(修正は作成した GitHub Issue が exec-issue に回ることで行われる)。Sentry 側の操作は resolved への変更だけで、ignore・delete・assign はしない。
Instructions
GitHub アクセス
本スキルの GitHub 参照/更新は gh コマンドを優先し、gh が使えない場合に GitHub MCP へフォールバックする(本文中の gh コマンド例はそのまま第一手段として読む)。クラウド実行時のみ優先順位が逆転して GitHub MCP が第一手段になるが、その指示は起動プロンプトで渡されるので、指示が無ければローカル実行として扱う。判定手順・gh ↔ MCP の対応表・MCP に代替が無い操作は ${CLAUDE_PLUGIN_ROOT}/references/github-access.md を参照する。
ステップ0: 前提確認
- Sentry MCP ツールが使えること。ツール名のプレフィックスは接続方法で変わる(
mcp__plugin_sentry_sentry__*/mcp__claude_ai_Sentry__*など)ため、末尾の名前で判定する。必要なのはsearch_issues/get_sentry_resource/update_issueの3つ。無ければ「Sentry MCP が未接続のため実行できません」と出力して終了する。 $ARGUMENTSが Sentry の Issue 一覧 URL でなければ、期待する形式を示して終了する。bash ${CLAUDE_PLUGIN_ROOT}/scripts/gh-compat.sh owner-repoで対象リポジトリを確定する(git のローカル導出を第一手段にし、失敗時のみgh repo viewへフォールバックする)。pwdを確認する。worktree を新たに作成しない(.claude/worktrees/配下ならそこで、それ以外ならその場で作業する)。
完了条件: Sentry MCP が使え、URL が妥当で、対象リポジトリが確定していること。
ステップ1: URL のパース
URL からクエリパラメータを取り出す。値は URL エンコードされている(%3A → :、%20 → 空白、+ → 空白)のでデコードしてから使う。
| 要素 | 取り出し方 | 未指定時の扱い |
|---|---|---|
| org slug | ホスト名の先頭ラベル(igsa.sentry.io → igsa)。sentry.io/organizations/<slug>/issues/ 形式ならパスから | 取れなければ中断 |
| project | project クエリ(数値ID。複数指定されうる) | 全プロジェクトを対象(projectSlugOrId を渡さない) |
| environment | environment クエリ(複数指定されうる) | 全環境を対象(environment: 条件を足さない) |
| statsPeriod | statsPeriod クエリ。search_issues の period が許す値(24h / 7d / 14d / 30d / 90d)へ最も近い値に丸める | 30d |
| 検索クエリ | query クエリ | is:unresolved |
検索クエリの正規化(対象は未 resolve の Issue のみなので必ず適用する):
is:条件が無ければ先頭にis:unresolvedを足すis:resolved/is:ignoredが含まれていればis:unresolvedへ置き換える- environment が指定されていれば
environment:<env>を AND で足す(複数ならenvironment:[<env1>,<env2>])
完了条件: org slug・プロジェクト一覧(空=全件)・検索クエリ・period が決まっていること。
ステップ2: 未解決 Issue の取得
search_issues を呼ぶ。
search_issues(organizationSlug=<org>, projectSlugOrId=<project or 省略>, query=<正規化済みクエリ>, period=<period>, sort='freq', limit=100)
- プロジェクトが複数指定されている場合、
projectSlugOrIdは1つしか渡せないためプロジェクトごとに呼び、結果を結合する - 0件なら「対象の未解決 Issue はありません」と出力して終了する
- 各 Issue から
shortId(例PROJECT-1Z43)・タイトル・culprit・permalink(Issue URL)・lastSeen・発生件数・影響ユーザー数を控える
完了条件: 調査対象の未解決 Issue 一覧が手元にあること。
ステップ3: 並列調査(サブエージェント)
1 Sentry Issue = 1 サブエージェント(general-purpose-assistant)で調査する。1回のメッセージに複数の Agent 呼び出しを並べて並列起動し、同時実行は最大5件まで(Sentry API のレート制限と、create-issue の同時実行数を抑えるため)。5件ずつのバッチで回す。Agent ツールの effort は毎回指定する(general-purpose-assistant は定義に effort を持たない。基準は ${CLAUDE_PLUGIN_ROOT}/references/agent-effort.md)。1件ごとに原因調査を伴うため high。
サブエージェントは人に質問できない。判断はすべて自力で行わせ、迷った場合は未解消側に倒す(誤って resolve するとエラーが埋もれるため)。
ブリーフィングに必ず含めるもの
- Sentry Issue の shortId・タイトル・culprit・permalink・lastSeen・発生件数・環境
- 対象リポジトリ(
owner/repo)と作業ディレクトリ - 下記「サブエージェントの手順」と「解消済み判定の基準」をそのまま転記
- 出力フォーマット(下記「サブエージェントの報告」)
サブエージェントの手順
get_sentry_resource(url=<permalink>)で Issue 詳細(スタックトレース・直近イベント・release・lastSeen)を取得する- スタックトレースからアプリケーションコード側の最上位フレーム(
file:lineと関数名)を特定する。ライブラリ内部のフレームは原因箇所ではない - CodeGraph(
codegraph_explore)で該当シンボルの現在のソースと呼び出し元を読む。CodeGraph が使えなければGrep/Readにフォールバックする git log -S '<原因コードの特徴的な文字列>' --oneline/git log --since='<lastSeen>' -- <該当ファイル>で、lastSeen 以降に該当箇所へ修正が入っているかを確認する- 下記の基準で「解消済み」か「未解消」かを判定する
- 判定に応じて後述の処理を行い、報告を返す
解消済み判定の基準
**次の (a) と (b) の両方を満たす場合のみ「解消済み」**とする。片方でも欠けたら「未解消」に倒す。
- (a) 原因箇所の現在のコードでは、このエラーが発生しないことをコードの実物で確認できる。例: 原因のコードパス自体が削除されている/null・undefined ガードが追加されている/呼び出している API・スキーマが変更され、エラーになる分岐が存在しない
- (b) その変更が
lastSeenより後に入っていることをgit logで確認できる。またはlastSeenが30日以上前で、かつ現在のコードに原因が見当たらない
「たぶん直っている」「関連しそうなリファクタがあった」は根拠にならない。スタックトレースの原因箇所を特定できなかった場合も「未解消」とする。
判定後の処理
解消済みの場合:
update_issue(issueUrl=<permalink>, status='resolved', reason='<根拠。修正コミットのSHAと該当ファイルを含めて1〜2行>')
未解消の場合:
- 重複確認: Open/Closed の両方を検索対象にする(Closed で放置された重複を見落とすと再作成してしまう)。GitHub MCP が使える場合は
list_issues(statesにOPENとCLOSEDの両方を指定)またはsearch_issues(queryに状態を絞るis:open/is:closedを付けず、両状態を対象にする)を使う。以下は MCP 利用不可時のフォールバック。gh issue list --state all --search "<shortId>" --json number,title,url,stateを実行する。同じ Sentry Issue を指す GitHub Issue が既にあれば作成せず、そのURLを添えてskipped-duplicateとして報告する - 重複が無ければ
create-issueスキル(claude-task-worker:create-issue)を呼ぶ。引数には自然言語のタスク説明として次を含める:- エラーのタイトルと種別(例外クラス・メッセージ)
- Sentry Issue URL と shortId、環境、発生件数・影響ユーザー数、firstSeen / lastSeen
- 原因と推定した箇所(
file:lineと関数名)と、そう判断した根拠 - スタックトレースの要点(アプリケーションフレームのみ。全文は貼らない)
- 再現条件として分かっていること(リクエストパス・入力値・release など)
- 修正方針を断定して書かない。原因の推定までに留め、実装プランは
create-issueに任せる
サブエージェントの報告
次の形式で返させる(余計な説明を足させない):
shortId: <PROJECT-1Z43>
判定: resolved | issue-created | skipped-duplicate | undecided
根拠: <1〜2行>
GitHub Issue: <URL or ->
undecided は Sentry API エラーなどで調査自体ができなかった場合にのみ使う。
完了条件: 全 Sentry Issue についてサブエージェントの報告が揃っていること。
ステップ4: 最終報告
結論から書く。1文目に「対象N件 / resolve M件 / GitHub Issue 作成 K件 / 重複スキップ L件 / 判定不能 J件」を述べ、続けて一覧表を出す。
| shortId | タイトル | 判定 | GitHub Issue / 根拠 |
|---|
- 表以外の説明は、
undecidedがあった場合の理由と次の一手のみ(1〜3行) - 埋め草セクション・言い換えを書かない
中断条件
以下に該当する場合は、理由を出力して終了する(部分的に処理済みならそこまでの結果を報告する)。
- Sentry MCP ツールが使えない
$ARGUMENTSが Sentry の Issue 一覧 URL でない、または org slug を取り出せないsearch_issuesが認証エラー・権限エラーを返す
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
Write the merged Pencil design reference back into a UI implementation Issue's description. Takes the Issue number as argument, resolves the merged design PR on the `cc-ui-design-<Issue number>` branch, collects the `.pen` and snapshot paths it added, and appends (or replaces) the `## UIデザイン` section at the end of the Issue body using a lost-update-safe edit.
依頼された内容(自然言語の説明、または既存のIssue番号)を要件とTODOに分解し、タスクごとにGitHub Issueを作成するスキル。タスクの整理・分解、複数Issueの一括作成、依存関係の明示が必要な場合に使用する。「この機能をIssueに分けて」「タスクを洗い出してIssueにして」「PRDのIssue #123 を分解して」といったリクエストで発動する。
claude-task-worker のカスタムワーカー(`workerFiles` に登録する TS 定義)を、`AskUserQuestion` で要件を全項目確定させてから生成し、`claude-task-worker list-workers` でロード検証までするスキル。「カスタムワーカーを作って」「独自のワーカーを追加したい」「新しいラベルで動くワーカーを定義したい」といったリクエストで使用する。
claude-task-workerプラグインのバージョンをインクリメントし、commit-pushでコミット・プッシュしたうえでPRを作成する。引数で `major` / `minor` / `patch` を受け取り、対応する部分をインクリメントする(省略時は `patch`)。「バージョンを上げて」「バージョンアップ」「bump version」「メジャーバージョンを上げて」などのリクエストで使用する。
指定されたPR番号のDependabot PRを確認し、依存ライブラリのバージョンアップ内容をCHANGELOGとcontext7から取得して、コード修正が必要かを判定します。修正が必要な場合は修正を行い、pushまで実施します。