コンテンツにスキップ

Health レポート

Health スコアは、分析結果に存在するカテゴリ全体のプロジェクトの総合的な品質を要約した 0〜100 の単一の数値です。CI パイプラインをゲートするために --min-health フラグで使用されます。

Health は 2 段階で計算されます:

アクティブな各カテゴリ(SEO、パフォーマンス)に対して、svelte-vitals は独立したスコアを計算します:

  • すべてのルートは 100 から始まります。
  • 各失敗した検出結果は重大度に基づいてポイントを差し引きます:
    • critical → ルートごとに −15
    • warning → ルートごとに −5
    • info → ルートごとに −1
  • 差し引きは(ルート、ルール)ペアごとに一度だけ行われます — 重複は合計ではなく最大の差し引きを取ります。
  • ルートスコアを平均してカテゴリの見出しスコアを算出します。
  • クリティカルな検出結果が存在する場合、見出しスコアは 79 にキャップされます。

Health はカテゴリごとの重みを使用してカテゴリスコアを平均します。デフォルトでは存在する各カテゴリに等しい重み(1)が設定されます。例えば SEO とパフォーマンスだけが存在する場合:

Health = (SEO_score × w_seo + Performance_score × w_perf) / (w_seo + w_perf)

この式は簡潔にするため2カテゴリで示していますが、実際には結果に存在するすべてのカテゴリ(最大5つ:SEO、Performance、Correctness、Security、Architecture)にわたって同じ加重平均が計算されます。

重みは --weights フラグまたは設定ファイルの weights フィールドで指定します — 両方の詳細は 設定ファイル を参照してください。例えば SEO を2倍にするには:

Terminal window
svelte-vitals --weights seo=2

結果に存在するカテゴリのみが含まれます。 プロジェクトに画像がない場合、パフォーマンスルールは発火せず、パフォーマンスカテゴリは結果を生成せず、Health は SEO のみに基づいて算出されます。パフォーマンスは、プロジェクトにパフォーマンスルールをトリガーする画像がある場合にのみ表示されます。

結果は最も近い整数に丸められます。

Health スコアが閾値を下回った場合に実行を失敗させます(終了コード 1):

Terminal window
svelte-vitals --min-health 80

これは --fail-on とは別の CI ゲートとして便利です:

  • --fail-on は個々の検出結果の重大度に反応します。
  • --min-health は集約された重み付きスコアに反応します。

両方を一緒に使用することもできます。

Health: 85 (SEO: 90 · Performance: 75)

SEO ルールのみが発火した場合:

Health: 90 (SEO: 90)

--by-route を追加すると、サイト全体の Health と並んで各ルートのスコアを確認できます:

Terminal window
svelte-vitals --by-route