github-analytics-scoring について
GitHub リポジトリの健全性を評価し、Issue、プルリクエスト、ディスカッションに優先順位を付けるスキルです。レポート向けにスコア、確信度、傾向、変更追跡のルールを定めています。
主な機能
- 01リポジトリ健全性スコア
- 02Issue・PR・議論の優先順位付け
- 03所見の確信度分類
- 04レポート間の変更追跡
- 05速度とコントリビューター指標
- 06ボトルネックと傾向の分類
活用シーン
- 01単一・複数リポジトリのスコアカード作成
- 02ダッシュボード用のIssueとPRの順位付け
- 03複数回の分析結果の比較
- 04開発とチームのボトルネック特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ community-access/ accessibility-agents --skill github-analytics-scoringインストール後、Claude Code で/github-analytics-scoringを入力して読み込まれたか確認します。
詳細
GitHub 分析のスコアリング
リポジトリの健全性スコア
Health Score = 100 - (sum of weighted penalties)
Penalties - CI & Reliability:
Failing workflow, high confidence: -10 points
Flaky test (3+ failures/week): - 5 points
No CI configured: - 8 points
Penalties - Issues & PRs:
Critical unresolved bug (P0): -10 points
Security alert (critical severity): -10 points
Security alert (high severity): - 5 points
PR open >14 days (stale): - 3 points each (max -9)
Issue @mentioned, no response >7 days: - 5 points each (max -10)
>10 open issues with no labels/triage: - 3 points
Penalties - Community Health:
No CONTRIBUTING.md: - 5 points
No CODE_OF_CONDUCT.md: - 3 points
No branch protection on main: - 5 points
0 open "good first issue" labels: - 2 points
Floor: 0 (minimum score)
スコアのグレード
| スコア | グレード | 意味 |
|---|---|---|
| 90-100 | A | 優秀 — リポジトリは健全で、問題は最小限です |
| 75-89 | B | 良好 — 軽微な問題があり、適切に管理されています |
| 50-74 | C | 要対応 — 対処が必要な兆候が複数あります |
| 25-49 | D | 不良 — 進捗に影響する重大な問題があります |
| 0-24 | F | 危機的 — チームの進捗を妨げる重大な問題があります |
Issue の優先度スコアリング
ダッシュボードやレポートでの並び順を決定するため、各 Issue を内部的にスコアリングします。
| シグナル | ポイント |
|---|---|
| ユーザーが @メンションされており、まだ返信していない | +5 |
P0、P1、critical、urgent、blocker ラベル | +3 |
| 今後予定されているリリースのマイルストーンに関連している | +3 |
| ユーザーの最終アクティビティ以降に、他のユーザーから新しいコメントがある | +2 |
| コミュニティの関心が高い(肯定的なリアクションが5件以上) | +2 |
bug ラベル | +1 |
| ユーザーに割り当てられている | +1 |
| 関連する議論スレッドがアクティブ | +1 |
wontfix、duplicate、question ラベル | -1 |
| 14日を超えてアクティビティがない | -2 |
プルリクエストの優先度スコアリング
| シグナル | ポイント |
|---|---|
| レビューを依頼されており、ユーザーがまだレビューしていない | +5 |
| PR に「変更を要求しました」が付いている — 作成者による更新が必要 | +4 |
| PR が承認済みで、マージ可能な状態 | +3 |
| 期限が迫っているリリースブランチを対象としている | +3 |
| この PR の CI が失敗した | +2 |
| マージコンフリクトがある | +2 |
| コミュニティの関心が高い(肯定的なリアクションが5件以上) | +2 |
| PR に新しいコメントがある | +1 |
| この PR に関連付けられた議論スレッドがアクティブ | +1 |
| ドラフト PR | -1 |
| 7日を超えてアクティビティがない | -2 |
ディスカッションの優先度スコアリング
| シグナル | ポイント |
|---|---|
| ユーザーが @メンションされた | +3 |
| アクティビティが多い(24時間以内にコメントが10件以上) | +2 |
| ユーザーが担当する Issue/PR に関連付けられている | +1 |
| 7日を超えてアクティビティがない | -1 |
分析結果の信頼度レベル
すべてのボトルネックの検出結果、健全性スコアの減点、異常検出に信頼度レベルを適用します。レポート内のすべての検出結果には、必ず信頼度レベルを含めてください。
| レベル | 使用する状況 | レポートへの影響 |
|---|---|---|
| 高 | 複数のシグナルで裏付けられ、明確に確認されている(例:今週 CI が5回失敗したことをログで確認) | 事実として報告し、是正措置を推奨します |
| 中 | 1つの情報源で見つかり、問題の可能性が高い(例:PR が14日間オープンしているが、作成者が休暇中の可能性がある) | 検出結果として報告し、調査を提案します |
| 低 | パターンの可能性があり、人による確認が必要(例:進捗が遅いように見えるが、季節的な要因かもしれない) | 観察事項として示し、スコアから減点しません |
レポートでの信頼度タグの形式
| Finding | Severity | Confidence | Recommendation |
|---------|----------|-----------|----------------|
| 3 PRs stale >14 days | High | **High** | Assign reviewers or close |
| Velocity 40% below 4-week avg | Medium | **Medium** | Verify - may be holiday period |
| Issue activity spike on Fridays | Low | **Low** | Monitor for 2 weeks before acting |
差分の追跡
以前のレポートに対して分析を再実行する際は、各検出結果を変更状況に応じて分類します。
| ステータス | 定義 |
|---|---|
| 解決済み | 以前のレポートにあり、現在は存在しない |
| 新規 | 以前のレポートにはなく、今回新たに現れた |
| 継続中 | 以前のレポートから残っており、変化していない |
| 再発 | 以前は解決済みだったが、再び発生した |
差分レポートセクションの形式
## Changes Since Last Report ({previous date})
| Change | Finding | Details |
|--------|---------|---------|
| Fixed | 3 stale PRs resolved | Team cleared the backlog |
| New | CI failing on main | Build broke in last 24h |
| Persistent (#3) | Velocity 30% below baseline | Third consecutive week |
| Regressed | Security alert reopened | lodash advisory re-filed |
**Progress:** {N} fixed, {M} new, {P} persistent, {Q} regressed
**Score change:** {current_score} ({+/-N} from {previous_score})
エスカレーションルール
検出結果が3回以上連続するレポートで継続中の場合、エスカレーションします。
エスカレーション: [{Finding}] は連続する {N} 件のレポートで確認されています。解決に向けて、チームでの話し合い、または明確な担当者の割り当てを検討してください。
ベロシティ指標
| 指標 | 計算式 | 健全 | 注意 | 重大 |
|---|---|---|---|---|
| PR マージ率 | 週あたりのマージ済み PR 数 | >3件/週 | 1-3件/週 | <1件/週 |
| Issue クローズ率 | 週あたりのクローズ済み Issue 数 | >5件/週 | 2-5件/週 | <2件/週 |
| レビュー所要時間 | PR のオープンから初回レビューまでの平均時間 | <24時間 | 24-72時間 | >72時間 |
| Issue の応答時間 | チームから初回応答があるまでの平均時間 | <8時間 | 8-48時間 | >48時間 |
| 古い PR の比率 | 14日を超えてオープンしている PR 数/オープン中の PR 総数 | <10% | 10-30% | >30% |
| CI の信頼性 | 成功した実行数/実行総数(7日間) | >95% | 80-95% | <80% |
コントリビューター指標
| 指標 | 計算式 | 備考 |
|---|---|---|
| PR コミット比率 | コミット数 / マージされた PR 数 | 比率が高い場合は、PR の規模が大きいことを示します。分割を検討してください |
| レビューカバレッジ | 他の人がレビューした PR 数 / マージされた PR の合計数 | 低い場合は、単一のコントリビューターがボトルネックになっています |
| 初回コントリビューター率 | 新規コントリビューター数 / アクティブなコントリビューターの合計数 | コミュニティの健全な成長を示す指標です |
| コントリビューター定着率 | 先月と今月の両方でアクティブな人数 / 先月アクティブだった人数 | エンゲージメントの健全性 |
| バス係数 | コミットの 50% 以上が停止する、離脱してもよい最小コントリビューター数 | 3 未満は高リスクです |
ボトルネックのカテゴリ
| カテゴリ | シグナル | 検出例 |
|---|---|---|
| レビューボトルネック | PR のオープン期間が長い、レビュー依頼中の PR が 3 日を超えている | 「レビュー待ちの PR が 4 件あり、3 日以上経過しています。担当を割り当てるか、再配分してください」 |
| CI ボトルネック | 頻繁な失敗、実行時間が長い | 「テストスイートの平均実行時間は 45 分で、4 週間平均の 2 倍です」 |
| 停滞中の作業 | 14 日を超えて動きのない Issue / PR | 「30 日以上オープンしていて、最近コメントのない Issue が 7 件あります」 |
| 知識の集中 | コミットの 80% 以上が 1 人のコントリビューターによるもの | 「4 つのコアモジュールのうち 3 つでコントリビューターが 1 人のみです。バス係数は 1 です」 |
| 応答の遅れ | 新しい Issue への初回応答までの平均時間が 24 時間を超えている | 「初回応答までの平均時間は 38 時間です。コミュニティが十分にサポートされていないと感じる可能性があります」 |
| セキュリティ負債 | 未解決の Dependabot アラートが 7 日を超えてオープンしている | 「重大なアラートが 2 件、12 日間オープンしています」 |
| リリースの滞留 | マージ済みで未リリースの PR が 10 件を超えている | 「リリース待ちのマージ済み PR が 11 件あります。リリース日を調整してください」 |
トレンドの分類
| トレンド | 定義 |
|---|---|
| 改善中 | 前回のレポートと比較して、スコアが 5 ポイント以上上昇 |
| 安定 | スコアが前回のレポートから 5 ポイント以内 |
| 低下中 | 前回のレポートと比較して、スコアが 5 ポイント以上低下 |
| 回復中 | 2 回以上連続して低下したレポートの後に、スコアが上昇 |
| 新規 | 比較できる過去のレポートがない |
スコアカードの出力形式
単一リポジトリ
## Repository Health Score
| Metric | Value |
|--------|-------|
| Repo | [owner/repo](url) |
| Score | {0-100} |
| Grade | {A-F} |
| Trend | {Improving / Stable / Declining} |
| Open Security Alerts | {count} |
| Stale PRs (>14 days) | {count} |
| CI Reliability (7-day) | {%} |
| Unanswered @mentions | {count} |
複数リポジトリのスコアカード
## Repository Health Scorecard
| Repo | Score | Grade | Trend | Critical Issues | Notes |
|------|-------|-------|-------|-----------------|-------|
| owner/repo-a | 88 | B | Improving | 0 | |
| owner/repo-b | 54 | C | Declining | 1 | Security alert unresolved |
| owner/repo-c | 22 | F | Stable | 3 | Review bottleneck + stale PRs |
| **Average** | **54.7** | **C** | - | **4** | |
スプリントとイテレーションの指標
プロジェクトボードが設定されている場合は、スプリントの指標を追跡します。
| 指標 | 計算式 |
|---|---|
| スプリント完了率 | 完了した項目数 / スプリント項目の合計数 x 100 |
| 持ち越し率 | 次のスプリントに移動した項目数 / 計画された項目数 |
| サイクルタイム | 「進行中」から「完了」までの平均日数 |
| スループット | スプリントごとの完了項目数 |
| ブロック率 | 「ブロック中」状態の項目数 / 進行中の項目の合計数 |
コメント
Markdown 対応