← ClaudeAtlas

security-alertlisted

Dependabot の security alert(GHSA / CVE 起因の脆弱性アラート)をトリアージして 解決するワークフロー。未解決の alert を一括取得し、direct / transitive を判別して 修正方針(PR マージ / 直接 bump / package manager の override)を決め、トラッキング Issue を作成して修正 PR を出し、判断根拠を ADR に記録する。transitive 依存で Dependabot が PR を起票しないケースを主対象にする。 Trigger when the user says: "security alert", "セキュリティアラート", "Dependabot alert", "脆弱性対応", "GHSA", "CVE 対応", "security alert 対応", "handle security alerts", "triage security alerts", "dependabot security", "依存の脆弱性", or similar phrases requesting to process Dependabot security alerts.
kompiro/hane · ★ 0 · AI & Automation · score 70
Install: claude install-skill kompiro/hane
# Dependabot Security Alert Triage Workflow Dependabot の security alert(GitHub Advisory に基づく脆弱性アラート)を一括でトリアージし、 direct / transitive を判別して適切な修正方法で解決する。トラッキング Issue を作成し、修正 PR を 出し、判断結果と根拠を ADR に記録する。 ## なぜ security alert を update PR と別 skill で扱うのか `dependabot` skill は Dependabot が開いた **依存更新 PR** を捌く。security alert は別物として扱う。 - security alert は `gh api repos/{owner}/{repo}/dependabot/alerts` から取得する。open PR 一覧 には現れない。 - **alert に対応する PR が存在しないことがある**。脆弱なパッケージが transitive 依存の場合、 bump すべき直接の宣言行が `package.json` に無いため、Dependabot は security update PR を 合成できず、alert だけが残る。 - **alert の `state` は安全性の証明ではない**。GitHub の auto-triage は通知量を減らすために alert を `auto_dismissed` にするが、脆弱版は lock に残ったままである(ステップ 1)。 - transitive 依存の解決には、bot PR のマージではなく package manager の **override 機構** (pnpm `overrides` / npm `overrides` / yarn `resolutions`)を使うことが多い。 このため、`dependabot` skill の「open PR を列挙してトリアージ」とは収集元も解決手段も異なる。 本 skill は特に **transitive 依存で PR が起票されないケース**を主対象にする。 ## 前提条件 - `gh auth status` で GitHub 認証済みであること - ホスト repo が Dependabot security alert を有効化していること(リポジトリ設定の "Dependabot alerts") - alert / advisory の取得のため `gh api` および WebFetch でアクセスできること - alert を読むには `gh` のトークンに security_events スコープ(または対象 repo の admin / security 権限)が必要 ## ホスト repo に依存する慣習について 本 skill には以下の任意(optional)ステップが含まれる。ホスト repo がその慣習を採用して いない場合は該当ステップをスキップする。 - **status ラベル**: `status: *` ラベル運用がある repo のみ、トラッキング Issue のラベルを 更新する。 - **ADR**: `docs/adr/` を採用する repo のみ、判断結果を ADR に記録する(ステップ 8)。 不採用の repo ではスキップし、結果を