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 に出力されます。
自動オープンの抑制¶
または環境で 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) |