品質シグナル
1つの数値:0〜10,000
Section titled “1つの数値:0〜10,000”sentruxは品質シグナルと呼ばれる単一の連続スコアを算出します。これは5つの根本原因メトリクスそれぞれを[0, 1]に正規化し、その幾何平均を取って0〜10,000にスケーリングしたものです。
quality_signal = (modularity × acyclicity × depth × equality × redundancy) ^ (1/5) × 10000なぜ幾何平均なのか?
Section titled “なぜ幾何平均なのか?”ナッシュ社会福祉定理(1950)は、幾何平均が以下を満たす唯一の集約方法であることを証明しています:
- パレート最適性 — すべてのスコアが改善されれば、シグナルも改善される
- 対称性 — すべての根本原因が等しく重み付けされる
- 独立性 — 無関係な次元が結果に影響しない
実用的には:1つのメトリクスを不正に上げながら別のメトリクスを下げることはできません。幾何平均を上げる唯一の方法は、すべての要素を改善することです。これにより真のアーキテクチャ改善が強制されます。
なぜレターグレードではないのか?
Section titled “なぜレターグレードではないのか?”レターグレードは人為的な境界を作ります。スコア79 = B、スコア81 = A。AIエージェントは真の改善ではなく境界のゲーミングを行います。連続スコアでは、すべての+1が等しく重要です。改善が限界的になるとエージェントは自然に収束します — 勾配降下法と同じです。
なぜ20個のプロキシメトリクスではないのか?
Section titled “なぜ20個のプロキシメトリクスではないのか?”プロキシメトリクス(結合度、デッドコード率、関数の長さ)は根本原因ではなく症状を測定します。AIエージェントは個々のプロキシをゲーミングできます — 偽のインポートを追加して凝集度を上げたり、関数を表面的に分割したりできます。メトリクスは改善されますが、コードは改善されません。
根本原因メトリクスは、真のアーキテクチャ変更によってのみ改善できる基本的な構造特性を測定します。
5つの根本原因
Section titled “5つの根本原因”コードベースは有向グラフ 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) # 非有界 → シグモイド、中間点8equality = 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 | 依存関係の深度 |