コンテンツにスキップ

品質シグナル

sentruxは品質シグナルと呼ばれる単一の連続スコアを算出します。これは5つの根本原因メトリクスそれぞれを[0, 1]に正規化し、その幾何平均を取って0〜10,000にスケーリングしたものです。

quality_signal = (modularity × acyclicity × depth × equality × redundancy) ^ (1/5) × 10000

ナッシュ社会福祉定理(1950)は、幾何平均が以下を満たす唯一の集約方法であることを証明しています:

  1. パレート最適性 — すべてのスコアが改善されれば、シグナルも改善される
  2. 対称性 — すべての根本原因が等しく重み付けされる
  3. 独立性 — 無関係な次元が結果に影響しない

実用的には:1つのメトリクスを不正に上げながら別のメトリクスを下げることはできません。幾何平均を上げる唯一の方法は、すべての要素を改善することです。これにより真のアーキテクチャ改善が強制されます。

なぜレターグレードではないのか?

Section titled “なぜレターグレードではないのか?”

レターグレードは人為的な境界を作ります。スコア79 = B、スコア81 = A。AIエージェントは真の改善ではなく境界のゲーミングを行います。連続スコアでは、すべての+1が等しく重要です。改善が限界的になるとエージェントは自然に収束します — 勾配降下法と同じです。

なぜ20個のプロキシメトリクスではないのか?

Section titled “なぜ20個のプロキシメトリクスではないのか?”

プロキシメトリクス(結合度、デッドコード率、関数の長さ)は根本原因ではなく症状を測定します。AIエージェントは個々のプロキシをゲーミングできます — 偽のインポートを追加して凝集度を上げたり、関数を表面的に分割したりできます。メトリクスは改善されますが、コードは改善されません。

根本原因メトリクスは、真のアーキテクチャ変更によってのみ改善できる基本的な構造特性を測定します。

コードベースは有向グラフ G = (V, E) であり、V = ファイル、E = 依存関係です。このグラフには正確に5つの独立した構造特性があります:

メトリクス理論測定対象エッジまたはノード?
モジュール性Newman 2004エッジはモジュールにクラスタリングされているか?エッジ
非循環性Martin 2003循環エッジは存在するか?エッジ
深度Lakos 1996エッジチェーンの深さは?エッジ
均等性Gini 1912ノードの特性は集中しているか?ノード
冗長性Kolmogorov不要なノードはあるか?ノード

3つのエッジ特性 + 2つのノード特性 = 合計5つ。これ以上追加すると冗長になります。

modularity = (Q + 0.5) / 1.5 # 有界 [-0.5, 1] → [0, 1]
acyclicity = 1 / (1 + cycles) # 非有界 → シグモイド
depth = 1 / (1 + max_depth / 8) # 非有界 → シグモイド、中間点8
equality = 1 - gini # 有界 [0, 1] → 反転
redundancy = 1 - ratio # 有界 [0, 1] → 反転

5つのメトリクスのうち3つは任意のパラメータがゼロです。シグモイドの中間点が必要なのは2つだけです。

Iteration 1: signal = 5800 → equalityが最低(3500)
→ god関数をリファクタリング → equalityが改善 → signal = 6300
Iteration 2: signal = 6300 → modularityが最低(5500)
→ モジュールを抽出 → modularityが改善 → signal = 6900
Iteration 3: signal = 6900 → redundancyが最低(7200)
→ 不要な関数を削除 → redundancyが改善 → signal = 7400
...収穫逓減 → 自然な収束

人為的な停止点はありません。AIは変更あたりの限界改善がゼロに近づいたときに収束します — 勾配降下法と全く同じです。

理論年提供するもの
サイバネティクス(Wiener)1948フィードバックループアーキテクチャ
システム工学(Tsien)1954独立サブシステムへの分解
コルモゴロフ複雑性1963理論的な真の基準
グラフモジュール性(Newman)2004モジュール性Qメトリクス
ナッシュ交渉1950最適な集約としての幾何平均
ジニ係数1912不平等の測定
Tarjanのアルゴリズム1972循環検出
Lakosレベル化1996依存関係の深度