一键导入
sentry-investigation
Sentry APIからエラー情報・スタックトレースを取得するパターン集。Sentryエラーの調査、スタックトレース抽出、イベント詳細の取得時に使用する。エージェントが自力でたどり着きにくいAPI構造・jqパスを含む。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Sentry APIからエラー情報・スタックトレースを取得するパターン集。Sentryエラーの調査、スタックトレース抽出、イベント詳細の取得時に使用する。エージェントが自力でたどり着きにくいAPI構造・jqパスを含む。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
親子 Claude Code セッション間の委譲操作を行う。delegate(子を起動してキック)、send(既存ペインへ1行/キックオフ送信・誤送信防止つき)、list(宛先確認)、report(子→親の申し送り)を自然言語の意図から判断して実行する。tmux 環境前提。
oe-* オーケストレーションツール群(engine 本体 / 親子委譲 / SO ゲート / 選択・観測)と駆動層規律の統合概観。複数エージェント委譲・設計SO/実装SO・read-only 観測・engine 1 サイクルを使うとき、ツール群の全体像をリポジトリ走査でなく一貫した形で把握したいときに使用する。
エラー/バグ調査で、入力→出力のコードパスに未読区間がある限り外部要因(インフラ差異等)の仮説に進まない。外部要因に飛ぼうとするとき、原因が再現しないと判断しそうなときに使用する。仮説を tmp/hypothesis-NNN.md に外部化し、コードパスの read-state を可視化する。
プランをKickoff Document形式に変換する。セカンドオピニオン投入・リポジトリアーカイブ・ピアレビュー共有時に使用する。命名規約・frontmatter・セクション構造をKickoff形式に整える。
設計判断を確定する前に、ゼロベースで未探索の代替案を最低1回引き出し、その証跡を確定前に残してから確定する。複数の選択肢を A/B 等で確定しかけたとき、ADR / Decision / kickoff の設計判断(DJ-N)を確定・記録するときに使用する。so-compare 選択肢拡張・探索木の外部化を含む。
so-compare.shでセカンドオピニオン(Codex/Claude/Cursor)を取得し、結果を比較する。ピアレビュー、修正方針の検証、設計判断の反証に使用する。**弱 SO**(1周可・partial=disclose・0はなし)。プロンプト設計原則、結果読み込み手順、合意判定基準を含む。
| name | sentry-investigation |
| description | Sentry APIからエラー情報・スタックトレースを取得するパターン集。Sentryエラーの調査、スタックトレース抽出、イベント詳細の取得時に使用する。エージェントが自力でたどり着きにくいAPI構造・jqパスを含む。 |
# 必須: SENTRY_AUTH_TOKEN
echo "SENTRY_AUTH_TOKEN: ${SENTRY_AUTH_TOKEN:+set}"
トークン未設定の場合: https://sentry.io/settings/account/api/auth-tokens/ で発行を案内する。
SENTRY_ORG があればそれを使う。なければ入力 URL から抽出、または確認する| 入力例 | 抽出方法 |
|---|---|
https://sentry.io/organizations/{org}/issues/{id}/ | URL から org と issue ID を抽出 |
https://{org}.sentry.io/issues/{id}/events/{event_id}/ | URL から org, issue ID, event ID を抽出 |
5765432100(数値) | Issue ID としてそのまま使用 |
MYPROJECT-1A2B(Short ID) | Short ID として検索 |
ORG="${SENTRY_ORG}"
ISSUE_ID="<入力から抽出>"
curl -fSs "https://sentry.io/api/0/organizations/${ORG}/issues/${ISSUE_ID}/" \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}"
要約に使うフィールド: title, culprit, project, count, userCount, firstSeen, lastSeen
curl -fSs "https://sentry.io/api/0/organizations/${ORG}/issues/${ISSUE_ID}/events/?full=true&limit=1" \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}"
Sentry のエントリ構造は 2 パターンある。両方試して取得できた方を使う。
entries[].type == "exception"curl -fSs "https://sentry.io/api/0/organizations/${ORG}/issues/${ISSUE_ID}/events/?full=true&limit=1" \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" | \
jq '.[0].entries[] | select(.type=="exception") | .data.values[0].stacktrace.frames[] | select(.inApp==true) | {filename, function, lineNo}'
entries[].type == "stacktrace"パターン A が空の場合にこちらを実行。
curl -fSs "https://sentry.io/api/0/organizations/${ORG}/issues/${ISSUE_ID}/events/?full=true&limit=1" \
-H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" | \
jq '.[0].entries[] | select(.type=="stacktrace") | .data.frames[] | select(.inApp==true) | {filename, function, lineNo}'
| パターン | entries[].type | スタックトレースのパス |
|---|---|---|
| A | exception | .data.values[0].stacktrace.frames[] |
| B | stacktrace | .data.frames[] |
抽出対象:
filename: ファイルパスfunction: 関数名lineNo: 行番号inApp: true のフレームを優先イベントの entries から type == "request" を探す:
jq '.[0].entries[] | select(.type=="request") | .data | {url, method, query, data}'
Sentry のスタックトレースに含まれるパスはデプロイ環境のパス。プロジェクト内のパスに変換する。
/var/www/html/src/Controller/... → src/Controller/...
/app/src/... → src/...
prefix 部分はプロジェクトの構成に応じて判断する。