Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

sentry-create-alert

Sentryのワークフローエンジン APIを使用してアラートを作成します。アラートの作成、通知のセットアップ、Issue優先度アラートの設定、またはワークフロー自動化の構築を求められた際に使用します。メール、Slack、PagerDuty、Discordなどの通知アクションに対応しています。

description の原文を見る

Create Sentry alerts using the workflow engine API. Use when asked to create alerts, set up notifications, configure issue priority alerts, or build workflow automations. Supports email, Slack, PagerDuty, Discord, and other notification actions.

SKILL.md 本文

All Skills > Feature Setup > Create Alert

Sentry アラート作成

Sentry の workflow engine API を通じてアラートを作成します。

注記: この API は現在 ベータ版 であり、変更される可能性があります。新しいモニタリングとアラート機能の一部であり、レガシーアラート UI では表示されない可能性があります。

このスキルを呼び出す場合

  • ユーザーが「Sentry アラートを作成する」または「通知を設定する」と要求した場合
  • ユーザーが特定の条件に一致する問題について、メール送信または通知を希望する場合
  • ユーザーが優先度アラート、エスカレーション解除アラート、または workflow 自動化について言及した場合
  • ユーザーが Sentry 問題用に Slack、PagerDuty、またはメール通知を設定したい場合

前提条件

  • シェルで curl が利用可能
  • alerts:write スコープを持つ Sentry org 認証トークン (org:admin または org:write も可)

フェーズ 1: 構成情報を収集

不足している詳細についてユーザーに確認します:

詳細必須
Org slugはいsentry, my-org
Auth tokenはいsntryu_... (alerts:write スコープが必要)
Regionはい (デフォルト: us)usus.sentry.io, dede.sentry.io
Alert 名はい"High Priority De-escalation Alert"
トリガーイベントはいどの問題イベントが workflow を起動するか
Conditionsオプションアクション実行前にフィルタリングする条件
Action typeはいemail, slack, または pagerduty
Action targetはいユーザーメール、チーム、チャネル、またはサービス

フェーズ 2: ID を検索

必要に応じて、名前を ID に解決するために以下の API 呼び出しを使用します。

API="https://{region}.sentry.io/api/0/organizations/{org}"
AUTH="Authorization: Bearer {token}"

# メールでユーザー ID を検索
curl -s "$API/members/" -H "$AUTH" | python3 -c "
import json,sys
for m in json.load(sys.stdin):
  if m.get('email')=='USER_EMAIL' or m.get('user',{}).get('email')=='USER_EMAIL':
    print(m['user']['id']); break"

# チームをリストアップ
curl -s "$API/teams/" -H "$AUTH" | python3 -c "
import json,sys
for t in json.load(sys.stdin):
  print(t['id'], t['slug'])"

# インテグレーションをリストアップ (Slack/PagerDuty 用)
curl -s "$API/integrations/" -H "$AUTH" | python3 -c "
import json,sys
for i in json.load(sys.stdin):
  print(i['id'], i['provider']['key'], i['name'])"

フェーズ 3: ペイロードを構築

トリガーイベント

workflow を起動する問題イベントを選択します。常に logicType: "any-short" を使用します (トリガーは常にこれを使用する必要があります)。

起動する条件
first_seen_event新しい問題が作成された
regression_event解決済みの問題が再発した
reappeared_eventアーカイブされた問題が再度表示された
issue_resolved_trigger問題が解決された

フィルタ条件

アクション実行前に満たす必要のある条件。logicType: "all", "any-short", または "none" を使用します。

comparison フィールドはポリモーフィック — その形状は条件の type に依存します:

comparison 形式説明
issue_priority_greater_or_equal75 (単純な整数)優先度 >= Low(25)/Medium(50)/High(75)
issue_priority_deescalatingtrue (単純なブール値)優先度がピークを下回った
event_frequency_count{"value": 100, "interval": "1hr"}時間枠内のイベント数
event_unique_user_frequency_count{"value": 50, "interval": "1hr"}時間枠内で影響を受けたユーザー数
tagged_event{"key": "level", "match": "eq", "value": "error"}イベントタグが一致
assigned_to{"targetType": "Member", "targetIdentifier": 123}問題が対象に割り当てられた
level{"level": 40, "match": "gte"}イベントレベル (fatal=50, error=40, warning=30)
age_comparison{"time": "hour", "value": 24, "comparisonType": "older"}問題の経過時間
issue_category{"value": 1}カテゴリ (1=Error, 6=Feedback)
issue_occurrences{"value": 100}総発生件数

インターバルオプション: "1min", "5min", "15min", "1hr", "1d", "1w", "30d"

タグマッチタイプ: "co" (含む), "nc" (含まない), "eq", "ne", "sw" (で始まる), "ew" (で終わる), "is" (設定済み), "ns" (未設定)

conditionResultfalse に設定して反転させます (条件が満たされないときに起動)。

アクション

キー構成
emailconfig.targetType: "user" / "team" / "issue_owners", config.targetIdentifier: <id>
slackintegrationId: <id>, config.targetDisplay: "#channel-name"
pagerdutyintegrationId: <id>, config.targetDisplay: <service_name>, data.priority: "critical"
discordintegrationId: <id>, data.tags: タグリスト
msteamsintegrationId: <id>, config.targetDisplay: <channel>
opsgenieintegrationId: <id>, data.priority: "P1"-"P5"
jiraintegrationId: <id>, data: プロジェクト/イシュー構成
githubintegrationId: <id>, data: リポジトリ/イシュー構成

完全なペイロード構造

{
  "name": "<Alert Name>",
  "enabled": true,
  "environment": null,
  "config": { "frequency": 30 },
  "triggers": {
    "logicType": "any-short",
    "conditions": [
      { "type": "first_seen_event", "comparison": true, "conditionResult": true }
    ],
    "actions": []
  },
  "actionFilters": [{
    "logicType": "all",
    "conditions": [
      { "type": "issue_priority_greater_or_equal", "comparison": 75, "conditionResult": true },
      { "type": "event_frequency_count", "comparison": {"value": 50, "interval": "1hr"}, "conditionResult": true }
    ],
    "actions": [{
      "type": "email",
      "integrationId": null,
      "data": {},
      "config": {
        "targetType": "user",
        "targetIdentifier": "<user_id>",
        "targetDisplay": null
      },
      "status": "active"
    }]
  }]
}

frequency: 繰り返し通知の間隔 (分単位)。許可される値: 0, 5, 10, 30, 60, 180, 720, 1440

構造上の注記: triggers.actions は常に [] です — アクションは actionFilters[].actions 内に存在します。

フェーズ 4: アラートを作成

curl -s -w "\n%{http_code}" -X POST \
  "https://{region}.sentry.io/api/0/organizations/{org}/workflows/" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{payload}'

HTTP 201 が返されることを想定しています。レスポンスには workflow id が含まれます。

フェーズ 5: 確認

アラートが作成されたことを確認して、UI リンクを提供します:

https://{org_slug}.sentry.io/monitors/alerts/{workflow_id}/

Org に workflow-engine-ui フィーチャーフラグがない場合、アラートは以下に表示されます:

https://{org_slug}.sentry.io/alerts/rules/

アラートを管理

# すべての workflow をリストアップ
curl -s "$API/workflows/" -H "$AUTH"

# 1 つの workflow を取得
curl -s "$API/workflows/{id}/" -H "$AUTH"

# workflow を更新
curl -s -X PUT "$API/workflows/{id}/" -H "$AUTH" -H "Content-Type: application/json" -d '{payload}'

# workflow を削除
curl -s -X DELETE "$API/workflows/{id}/" -H "$AUTH"
# 204 が返されることを想定

トラブルシューティング

問題解決方法
401 Unauthorizedトークンに alerts:write スコープが必要です
403 Forbiddenトークンは対象 org に属している必要があります
404 Not FoundOrg slug とリージョン (us vs de) を確認します
400 Bad Requestペイロード JSON 構造を検証し、必須フィールドを確認します
ユーザー ID が見つからないメールが org のメンバーと一致することを確認します

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
getsentry
リポジトリ
getsentry/sentry-for-ai
ライセンス
MIT
最終更新
不明

Source: https://github.com/getsentry/sentry-for-ai / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: getsentry · getsentry/sentry-for-ai · ライセンス: MIT