Zum Inhalt springen

Qualitaetssignal

sentrux berechnet einen einzigen kontinuierlichen Score namens Qualitaetssignal. Es ist das geometrische Mittel von 5 Ursachen-Metriken, jeweils auf [0, 1] normalisiert und dann auf 0–10.000 skaliert.

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

Das Nash Social Welfare Theorem (1950) beweist, dass das geometrische Mittel die einzige Aggregation ist, die folgende Eigenschaften erfuellt:

  1. Pareto-Optimalitaet — wenn alle Scores sich verbessern, verbessert sich das Signal
  2. Symmetrie — alle Ursachen werden gleich gewichtet
  3. Unabhaengigkeit — irrelevante Dimensionen beeinflussen das Ergebnis nicht

Praktisch bedeutet das: Man kann nicht eine Metrik optimieren und gleichzeitig eine andere verschlechtern. Der EINZIGE Weg, das geometrische Mittel zu erhoehen, ist ALLE Faktoren zu verbessern. Das erzwingt echte architektonische Verbesserung.

Buchstabennoten erzeugen kuenstliche Grenzen. Score 79 = B, Score 81 = A. KI-Agenten optimieren auf die Grenze statt auf echte Verbesserung. Mit kontinuierlichen Scores zaehlt jedes +1 gleich viel. Der Agent konvergiert natuerlich, wenn Verbesserungen marginal werden — wie Gradientenabstieg.

Proxy-Metriken (Kopplungsverhaeltnis, Anteil toter Code, Funktionslaenge) messen Symptome, nicht Ursachen. Ein KI-Agent kann einzelne Proxy-Metriken manipulieren — kuenstliche Imports hinzufuegen, um Kohaesion zu erhoehen, Funktionen oberflaechlich aufteilen. Die Metriken verbessern sich, aber der Code nicht.

Ursachen-Metriken messen fundamentale strukturelle Eigenschaften, die sich nur durch echte architektonische Aenderungen verbessern lassen.

Eine Codebasis ist ein gerichteter Graph G = (V, E), wobei V = Dateien und E = Abhaengigkeiten. Dieser Graph hat genau 5 unabhaengige strukturelle Eigenschaften:

MetrikTheorieWas sie misstKanten oder Knoten?
ModularitaetNewman 2004Clustern sich Kanten in Module?Kanten
AzyklizitaetMartin 2003Gibt es zirkulaere Kanten?Kanten
TiefeLakos 1996Wie tief sind Kantenketten?Kanten
GleichheitGini 1912Sind Knoteneigenschaften konzentriert?Knoten
RedundanzKolmogorovGibt es unnoetige Knoten?Knoten

3 Kanteneigenschaften + 2 Knoteneigenschaften = 5 insgesamt. Mehr hinzuzufuegen waere redundant.

modularity = (Q + 0.5) / 1.5 # bounded [-0.5, 1] → [0, 1]
acyclicity = 1 / (1 + cycles) # unbounded → sigmoid
depth = 1 / (1 + max_depth / 8) # unbounded → sigmoid, midpoint 8
equality = 1 - gini # bounded [0, 1] → invert
redundancy = 1 - ratio # bounded [0, 1] → invert

3 von 5 Metriken haben null willkuerliche Parameter. Nur 2 benoetigen einen Sigmoid-Mittelpunkt.

Iteration 1: signal = 5800 → equality is lowest (3500)
→ refactor god function → equality improves → signal = 6300
Iteration 2: signal = 6300 → modularity is lowest (5500)
→ extract module → modularity improves → signal = 6900
Iteration 3: signal = 6900 → redundancy is lowest (7200)
→ remove dead functions → redundancy improves → signal = 7400
...diminishing returns → natural convergence

Kein kuenstlicher Haltepunkt. Die KI konvergiert, wenn die marginale Verbesserung pro Aenderung gegen null geht — genau wie beim Gradientenabstieg.

TheorieJahrWas sie beitraegt
Kybernetik (Wiener)1948Feedback-Schleifen-Architektur
Systemtechnik (Tsien)1954Zerlegung in unabhaengige Teilsysteme
Kolmogorov-Komplexitaet1963Theoretische Referenzgroesse
Graph-Modularitaet (Newman)2004Modularitaets-Q-Metrik
Nash-Verhandlung1950Geometrisches Mittel als optimale Aggregation
Gini-Koeffizient1912Ungleichheitsmessung
Tarjans Algorithmus1972Zykluserkennung
Lakos-Levelisierung1996Abhaengigkeitstiefe