dora-metrics について
ローカルの Git 履歴と GitHub API から、4つの DORA デリバリーパフォーマンス指標を算出し、段階別に分類するスキルです。エンジニアリングレビューやエージェント型ワークフローの監査に使え、最も弱い指標を改善対象として示します。
主な機能
- 014つの DORA 指標を算出
- 024段階で指標を分類
- 03総合評価とボトルネックを提示
- 04期間とブランチを指定
- 05テキストまたは JSON でレポート
活用シーン
- 01エンジニアリングの四半期レビュー
- 02AI 支援 PR の失敗率を比較
- 03リリース健全性ゲートへの評価連携
- 04複数期間の傾向をグラフ化
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ athola/ claude-night-market --skill dora-metricsインストール後、Claude Code で/dora-metricsを入力して読み込まれたか確認します。
同梱ファイルmodules/agentic-workflow-signals.mdmodules/thresholds.md
詳細
DORA メトリクス
目的
ローカルの Git 履歴と GitHub API から、DORA のデリバリーパフォーマンスに関する 4 つのメトリクス(デプロイ頻度、変更のリードタイム、変更失敗率、サービス復旧時間)を算出します。DORA の「State of DevOps」調査に基づくしきい値を使って各メトリクスを Elite、High、Medium、Low に分類し、最も弱いディメンションを次の改善対象として提示します。
使用する場面
- エンジニアリングマネジメントのふりかえりや四半期レビュー。
- エージェント型ワークフロー(AI 支援 PR、自動デプロイ)が速度と安定性を向上させているのか、あるいは気付かないうちに悪化させているのかを監査する場合。
minister:release-health-gatesにティアのシグナルを渡す場合。
使用しない場面
- デリバリーパフォーマンスの根拠ではなく、ストーリーポイントのバーンダウンが必要な、単一チームのベロシティ追跡。
- 本番ブランチやリリース頻度が明確でないリポジトリ。DORA はそのいずれかがあることを前提としています。
ワークフロー
-
希望する期間を指定してヘルパースクリプトを実行します。
python3 -m minister.dora_metrics --window 30 --branch main -
出力を確認します。メトリクスごとの値、ティア分類、ボトルネックの指標が表示されます。
-
エージェント型ワークフローを監査する場合は、同じ期間で 2 回実行します。1 回目は AI が作成した PR に絞り(例:
--failure-label ai-bug)、2 回目はすべての PR を対象にします。CFR の差を比較します。modules/agentic-workflow-signals.mdを参照してください。 -
必要に応じて
--jsonをトラッカーにパイプし、トレンドデータをrelease-health-gatesのスナップショットと併せて保存します。 -
複数の期間を確認する場合や、エージェント型ワークフローの変更前後を比較する場合は、kuva でトレンドチャートを描画できます。
# Collect weekly snapshots into a TSV, then plot all four metrics # week<TAB>metric<TAB>value kuva line trends.tsv --x week --y value --color-by metric \ --title "DORA trends (30-day windows)" -o dora-trends.svg # Quick terminal preview without writing a file kuva line trends.tsv --x week --y value --color-by metric --terminal
kuva は、標準入力またはファイルパスから TSV/CSV を読み取ります。インストールは 1 回だけ実行してください。
cargo install kuva --features cli。プロジェクトのソースを変更する必要はありません。プロット形式の全リファレンスについては、kuva を参照してください。
入力
| フラグ | デフォルト | 意味 |
|---|---|---|
--window | 30 | 測定期間(日数) |
--branch | HEAD | 本番ブランチ |
--failure-label | bug | 本番障害を示す GitHub ラベル |
--json | off | 人間が読みやすい形式ではなく JSON を出力 |
--repo-path | cwd | リポジトリのディレクトリ |
出力
以下を含む短いテキストレポートまたは JSON ペイロードです。
- メトリクスごとの数値(例:
4.2/day、2.1 hours、8%)。 - メトリクスごとのティア(Elite、High、Medium、Low)。
- 全体のティア(4 つのうち最も弱いもの)。
- 改善に注力すべきメトリクスを示すボトルネックキー。
ティアのしきい値
完全な表については modules/thresholds.md を参照してください。概要は以下のとおりです。
| メトリクス | Elite | High | Medium | Low |
|---|---|---|---|---|
| DF | >= 1/day | >= 1/week | >= 1/month | < 1/month |
| LT | <= 1 day | <= 1 week | <= 1 month | > 1 month |
| CFR | <= 15% | <= 30% | <= 45% | > 45% |
| TRS | < 1 hour | < 1 day | < 1 week | >= 1 week |
検証
DORA レポートが実データに基づいていることを確認するには、より短い期間でスクリプトを再実行し、DF と LT が予測どおりに変化することを確認してください。CFR と TRS については、対象となった GitHub Issue を 2、3 件サンプルし、それぞれに bug(または選択したラベル)が正しく付いていることを確認してください。
テスト
ユニットテストは
plugins/minister/tests/unit/test_dora_metrics.py にあります。各ティアの境界値をしきい値でテストしているため、不等号(> と >=)を変更すると、将来の変更で意図しない回帰が起きた場合に検出されます。分類ロジックを拡張する場合は、しきい値のテストを追加してください。
完了条件
- 指定された期間の DORA レポートが生成されている。
- 4 つすべてのメトリクスがティアに分類されている。
- ボトルネックとなるディメンションが提示されている。
- ターミナルまたは PR コメントで出力を読み取れる。