コンテンツにスキップ

HTML レポート

pyscn analyze が生成する HTML 出力の仕様です(--json/--yaml/--csv フラグが指定されない場合のデフォルト)。

ファイル特性

プロパティ
パス .pyscn/reports/analyze_YYYYMMDD_HHMMSS.html
エンコーディング UTF-8
外部アセット なし(CSS と JS はインライン)
依存関係 なし(CDN なし、リモートフォント読み込みなし)
サイズ 通常 50〜500 KB

ファイルは自己完結型で、アーカイブ、メール送信、任意の静的ホストからの配信が安全に行えます。

ドキュメント構造

要素 内容
ヘッダー プロジェクト名、生成タイムスタンプ、pyscn バージョン、処理時間。
総合スコアカード ヘルススコア(0〜100)、グレードバッジ(A〜F)。
カテゴリスコアカード 有効な各分析器ごとに1つ、0〜100 のスコア。
タブ サマリー、複雑度、デッドコード、クローン、結合度、凝集度、依存関係、アーキテクチャ。
フッター pyscn リポジトリへのリンクとバージョン文字列。

カテゴリスコアカードとタブは、実行された分析器のみ表示されます。アーキテクチャは [architecture] のレイヤーが設定されている場合のみ表示されます。

タブ

タブ 内容
サマリー ハイレベルな数値とグレード。
複雑度 McCabe / 認知的複雑度、ネスト深度、リスクを含むソート可能な関数テーブル。
デッドコード 重大度別にグループ化された検出結果(ファイル:行番号と理由)。
クローン 類似度とクローンタイプを含むクローングループ。
結合度 依存タイプの内訳を含む CBO 別のクラス一覧。
凝集度 メソッドグルーピングを含む LCOM4 別のクラス一覧。
依存関係 モジュールグラフ、Ca/Ce/I/A/D メトリクス、循環依存。
アーキテクチャ レイヤールール違反。

JavaScript

インライン関数 showTab(id) が1つあり、タブを切り替えます。他のスクリプトは実行されません。ネットワークリクエストもありません。

CSS

スタイルは以下の名前の CSS カスタムプロパティを使用します:

変数 意味
--color-success 低リスクの検出結果、グレード A。
--color-warning 中リスクの検出結果、グレード B/C。
--color-danger 高リスクの検出結果、グレード D/F。
--color-text 本文テキスト。
--color-muted 補助テキスト。

ダークモードは prefers-color-scheme メディアクエリに従います。トグルはありません。

自動オープン動作

以下の すべて が真の場合、レポートはデフォルトブラウザで開かれます:

  • 形式が HTML。
  • stdin が TTY。
  • 環境変数 SSH_TTY および SSH_CONNECTION が未設定。
  • 環境変数 CI が未設定。
  • --no-open が渡されていない。

オープン方法: macOS では open、Linux では xdg-open(または gnome-open / kde-open)、Windows では cmd /c start

ファイル URL 形式: file:///{absolute-path-to-report}

自動オープンの有無にかかわらず、レポートパスは常に stderr に出力されます。

自動オープンの抑制

pyscn analyze --no-open .

または環境で CI=true をエクスポートします。

グレードバッジの対応表

グレード スコア バッジの背景色
A 90〜100 緑(--color-success
B 75〜89 緑系
C 60〜74 オレンジ(--color-warning
D 45〜59 赤系(--color-danger
F 0〜44 赤(--color-danger

関連項目