Zum Dokument springen
Aksu Indexv 1.0

Spezifikation

Der Aksu Index

Version 1.0 · genehmigt am 31. Juli 2026 · diese Seite veröffentlicht am 20. August 2026

Definition

The Aksu Index of an (agent, running user) pair is the number of distinct fields the code behind the agent has been proven able to reach beyond what that user is allowed to see — always reported together with what could not be resolved.
Nicht normative LesehilfeDer Aksu Index eines Paares aus (Agent, ausführender Benutzer) ist die Anzahl unterschiedlicher Felder, für die nachgewiesen wurde, dass der Code hinter dem Agenten sie über das hinaus erreichen kann, was dieser Benutzer sehen darf — stets zusammen mit dem angegeben, was nicht aufgelöst werden konnte.

Der Index wird als vier disjunkte Zahlen angegeben. Abschnitt 04 dieses Dokuments enthält die Regel, die es verbietet, weniger als vier davon zu zitieren.

Kanonische Form

Aksu Index: P proven (C GDPR) · B unproven boundaries · U unresolved

Die Form der Zeile, mit Platzhaltern. Sie ist keine Messung; zwei gemessene Zeilen stehen in Abschnitt 05.

Hinweis zum Einfrieren

Version: 1.0 — approved by the maintainer on 31 July 2026 (the four load-bearing choices: pair-scoped, fields-only, four-bucket reporting, GDPR callout). Freezes permanently at first public reference, and is never silently redefined after that (§8).
Nicht normative LesehilfeVersion 1.0 — genehmigt vom Maintainer am 31. Juli 2026 (die vier tragenden Entscheidungen: paarbezogen, ausschließlich Felder, Berichterstattung in vier Größen, gesonderte Nennung regulierter Felder). Friert mit der ersten öffentlichen Referenz dauerhaft ein und wird danach nie stillschweigend umdefiniert (§8).
Nicht normative Lesehilfe
Die normativen Sätze dieser Spezifikation bleiben auf jeder Sprachfassung englisch. Ein übersetzter normativer Satz ist eine andere Spezifikation: zwei Formulierungen können bei der Überarbeitung auseinanderlaufen, und dann halten zwei Leser zwei Definitionen derselben Zahl in der Hand. Die deutschen Fassungen daneben sind Lesehilfen und ausdrücklich nicht normativ.

Eine Lücke ohne Zahl ist eine Meinung.

Die hier gemessene Lücke wurde nicht hier entdeckt. Anbieter aus dem Identitäts- und SaaS-Sicherheitsumfeld haben sie zuerst benannt und beschreiben sie präzise, und ein Standardisierungsgremium führt sie als Risikokategorie. Ihre Worte folgen, mit Datum und Link, denn ein Beitrag wird erst lesbar, wenn seine Vorarbeiten es sind.

Aufgeführt sind nur Quellen, die gegen die abgerufene Seite geprüft wurden. Die Seiten wurden am 20. August 2026 abgerufen und die zitierten Sätze zeichengenau abgeglichen. Wo eine Quelle geprüft wurde und nicht das sagte, was ihr häufig zugeschrieben wird, steht das in der Einordnung, statt geglättet zu werden.

Die nächstliegende veröffentlichte Kennzahl, offengelegt

Eine bezifferte Kennzahl für überhöhte Rechte ist bereits veröffentlicht, und es ist nicht diese:

OPUR — Over-Privilege Use Rate When Lower Privileges Suffice: Investigating Over-Privileged Tool Selection in LLM Agents, arXiv 2606.20023, 18 June 2026.

OPUR scores model behaviour — how often a language model selects a higher-privilege tool when a lower-privilege one would do — across a synthetic benchmark. It measures a different object: not a specific agent in a specific org against a specific running user's effective permissions. The two are not competing definitions.

Was dieses Dokument hinzufügt

Die Lücke hat einen Namen. Dies gibt ihr eine Zahl.

Eng formuliert, damit man es prüfen kann: Die Lücke wird von Anbietern aus dem Identitäts- und SaaS-Sicherheitsumfeld benannt und von OWASP als Kategorie geführt. Was bisher fehlte, ist eine veröffentlichte Spezifikation für eine Zahl, die zitiert und anschließend von jemandem geprüft werden kann, der sie nicht erzeugt hat.

Spezifikation §1, §2, §3

The Aksu Index of an (agent, running user) pair is the number of distinct fields the code behind the agent has been proven able to reach beyond what that user is allowed to see — always reported together with what could not be resolved.
Nicht normative LesehilfeDer Aksu Index eines Paares aus (Agent, ausführender Benutzer) ist die Anzahl unterschiedlicher Felder, für die nachgewiesen wurde, dass der Code hinter dem Agenten sie über das hinaus erreichen kann, was dieser Benutzer sehen darf — stets zusammen mit dem angegeben, was nicht aufgelöst werden konnte.

Die drei Größen

Für das Paar (Agent, ausführender Benutzer) sei:

outer
the set of qualified fields (Object.Field; relationship paths kept verbatim) reachable by the agent's resolved code chain. “Resolved” means execution semantics are computed per operation under the precedence law: explicit mode clause ▸ apiVersion default (≥ v67 → user mode) ▸ sharing declaration (record axis, system mode only).
inner
the subset of outer the running user could read anyway under their effective permissions.
gap
outer \ inner, restricted to operations proven to execute not bounded by the running user (the FLS axis resolved False).

Invariant, enforced by the tool: outer = inner + gap (the concentric circles).

Die vier Größen des Index

Der Index gibt anschließend vier disjunkte Größen an. Sie sind konstruktionsbedingt disjunkt: über die Aktionen eines Agenten hinweg gewinnt das schwerwiegendste Urteil, sodass ein Feld nicht in zwei Größen landen kann.

GrößeBedeutungBeweisgrad
P — provenfields in gap whose escalation is proven (ERROR findings, PS502/PS506)P — nachgewiesen: Felder in der Lücke, deren Rechteausweitung nachgewiesen ist (ERROR-Befunde, PS502/PS506). Beweisgrad: nachgewiesen.proven
C — classifiedsubset of P carrying the org's own compliance labels (GDPR/PII — PS506)C — klassifiziert: die Teilmenge von P, die die org-eigenen Compliance-Kennzeichnungen trägt (DSGVO/PII — PS506). Beweisgrad: nachgewiesen.proven
B — unproven boundariessame rules at WARN: a real boundary the analysis could not prove crossed (e.g., a sanitizer present but the path unprovable)B — nicht nachgewiesene Grenzen: dieselben Regeln auf WARN-Stufe, also eine reale Grenze, deren Überschreitung die Analyse nicht nachweisen konnte. Beweisgrad: eingegrenzt, nicht nachgewiesen.bounded, unproven
U — unresolvedreach that could not be determined at all: dynamic SOQL, SOSL without RETURNING, undetermined sharing context (PS504)U — ungeklärt: Reichweite, die überhaupt nicht bestimmt werden konnte (dynamisches SOQL, SOSL ohne RETURNING, unbestimmter Sharing-Kontext — PS504). Beweisgrad: ehrliches Unbekanntes.honest unknown
P is the headline number. C is why it matters. B and U are why the headline can be trusted — they are printed, never absorbed into P and never dropped.
Nicht normative LesehilfeP ist die Leitzahl. C ist der Grund, warum sie zählt. B und U sind der Grund, warum man der Leitzahl trauen kann — sie werden ausgegeben, nie in P aufgelöst und nie weggelassen.
C liegt innerhalb von P
C ist eine Teilmenge von P, nie ein Summand. Jedes in C gezählte Feld ist bereits in P gezählt. Jede Darstellung, die beide als gleichrangig nebeneinanderstellt, ist falsch — deshalb steht C auf dieser Seite innerhalb des Kastens von P.
Zum Wort „reguliert“
Welche Felder als reguliert gelten, entscheidet die Org, nicht diese Spezifikation. Die Messung liest die Datenklassifizierungs-Kennzeichnungen, die die Administratoren der Org selbst vergeben haben — ob sie für die DSGVO, den CCPA, HIPAA oder eine interne Richtlinie kennzeichnen. Der Mechanismus ist regimeunabhängig; ihn eine DSGVO-Messung zu nennen, würde die Nutzung durch einen Kunden für das Merkmal selbst ausgeben.

Geltungsbereich

One Index describes exactly one agent × one running user, at one moment, under one tool version. It is not an org score.
Nicht normative LesehilfeEin Index beschreibt genau einen Agenten × einen ausführenden Benutzer, zu einem Zeitpunkt, unter einer Werkzeugversion. Er ist kein Org-Score.

A hypothetical holder of a single permission set may be substituted, but the report must label it as a hypothesis, not a person.

Spezifikation §1 · ADR-013

Dies ist die Disziplin, um derentwillen die Spezifikation existiert. Es ist die Klausel, die am ehesten bricht, wenn jemand die Zahl in Eile zitiert.

Spezifikation §1

Quoting the proven number alone while unresolved > 0 is a violation of this specification. An unknown never reads as clean.
Nicht normative LesehilfeDie nachgewiesene Zahl allein zu zitieren, während „ungeklärt“ größer als null ist, verstößt gegen diese Spezifikation. Ein Unbekanntes liest sich nie als unbedenklich.

ADR-013, angenommen am 19. August 2026

The headline is P — the count of fields proven reachable beyond the running user — rendered large, first, and always with C, B and U beside it. No ratio is computed, stored or displayed.
Nicht normative LesehilfeDie Leitzahl ist P — die Anzahl der Felder, für die nachgewiesen ist, dass sie über den ausführenden Benutzer hinaus erreichbar sind — groß dargestellt, an erster Stelle und stets zusammen mit C, B und U. Es wird kein Verhältniswert berechnet, gespeichert oder angezeigt.

Zwei Folgen für die Darstellung

  1. 01

    The band renders four numbers as one visual object. C is rendered inside P, never as a peer tile that could read as P + C.

  2. 02

    When P = 0 and U > 0, the not-clean statement renders inside the band, adjacent to the zero, and may not be styled as a pass. This is the design's primary test case, not an edge case.

Warum kein Verhältniswert

Ein Verhältniswert mit einer Nachkommastelle wurde vorgeschlagen und verworfen. Es lohnt sich festzuhalten, warum — denn er ist das Naheliegende und versagt genau in dem Fall, auf den es ankommt:

Der disqualifizierende Fall — ein Agent mit 0 nachgewiesenen Feldern und ungeklärter Reichweite (Abschnitt 05)
Its ratio is 1.0: a perfect reading for an agent the analyzer explicitly refuses to call clean. The ratio has no term for U, so it cannot express the one thing [the honesty discipline] exists to protect. This alone is disqualifying.

In dieser Spezifikation wird nirgends ein Verhältniswert, Prozentsatz, Notenwert, Schwellenwert oder Buchstabenrating berechnet, gespeichert oder angezeigt.

Konstruktiv durchgesetzt
Die Regel wird nicht der Sorgfalt von Prüfern überlassen. In der Referenzimplementierung gibt keine Funktion weniger als alle vier Zahlen zurück, und auf dieser Seite nimmt die Anzeigekomponente die vier als ein einziges Objekt entgegen — es gibt keine Aufrufstelle, die P allein darstellen könnte.

Gemessen am 31. Juli 2026 · Salesforce Summer '26

Beide Agenten laufen in den eigenen Demonstrations-Orgs des Autors. Es gibt keine Kunden, und es wird keine fremde Org beschrieben. Beide Läufe stammen vom 31. Juli 2026 gegen Salesforce Summer '26.

TechnoStore Revenue Assistant

Zwei Aktionen, beide unterhalb der API-Version 67 und damit standardmäßig im Systemmodus. Für sechs Felder ist nachgewiesen, dass sie über den ausführenden Benutzer hinaus erreichbar sind; eines davon trägt die org-eigene Compliance-Kennzeichnung. Eine Operation konnte überhaupt nicht aufgelöst werden — deshalb ist die vierte Zahl nicht null.

TechnoStore Revenue Assistant
Ausführender Benutzer: hypothetisches Berechtigungsmodell — Berechtigungssatz TechnoStore_Revenue_Assistant2098228049_Permissions. Eine Hypothese, keine Person.

Aksu Index: 6 nachgewiesen, davon 1 mit den org-eigenen Compliance-Kennzeichnungen; 0 nicht nachgewiesene Grenzen; 1 ungeklärt.

Die Ausgabezeile des Werkzeugs, zeichengetreu
Aksu Index: 6 proven (1 GDPR) · 0 unproven boundaries · 1 unresolved
Gemessener Kontext — nicht Teil des Index
actions
2
legacy
2 / 2 pre-v67
fields
8 reachable
fingerprint
09789b487c84

HW Energy Agent

Neun Aktionen, keine unterhalb der API-Version 67. Für kein Feld ist nachgewiesen, dass es über den ausführenden Benutzer hinaus erreichbar wäre. Zwei Operationen verwenden dynamisches SOQL, ihre Reichweite konnte daher überhaupt nicht bestimmt werden.

HW Energy Agent
Ausführender Benutzer: hypothetisches Berechtigungsmodell — Berechtigungssatz HW_ServiceAgent. Eine Hypothese, keine Person.

Aksu Index: 0 nachgewiesen, davon 0 mit den org-eigenen Compliance-Kennzeichnungen; 0 nicht nachgewiesene Grenzen; 2 ungeklärt.

Die Ausgabezeile des Werkzeugs, zeichengetreu
Aksu Index: 0 proven (0 GDPR) · 0 unproven boundaries · 2 unresolved
Gemessener Kontext — nicht Teil des Index
actions
9
legacy
0 / 9 pre-v67
fields
4 reachable
fingerprint
464add656d38
Warum dies das wichtigere Beispiel ist
Eine Null ist hier keine bestandene Prüfung. Zwei ungeklärte Operationen bedeuten zwei Stücke Reichweite, die niemand gemessen hat, und ein Unbekanntes wird nie unbedenklich. Genau diesen Fall hätte ein Verhältniswert mit Bestnote bewertet — und genau deshalb wird die vierte Zahl nie weggelassen.
Warum die Zeile „GDPR“ sagt und der Fließtext „reguliert“
Die Zeilen oben sind die zeichengetreue Ausgabe des Werkzeugs. Das Wort GDPR erscheint, weil das der ComplianceGroup-Wert ist, den die Administratoren dieser Org dem Feld selbst zugewiesen haben. Der Mechanismus liest, welche Kennzeichnungen er vorfindet — deshalb sagt der Fließtext dieser Spezifikation „reguliert“.
Org-weiter Kontext, der nicht der Index ist
Bei TechnoStore liegen 113 von 113 der eigenen Apex-Dateien unterhalb der API-Version 67. Bei HanseWatt sind es 182 von 219, und dennoch stehen alle neun Aktionen des Agenten auf v67. Keine dieser Zahlen ist Teil eines der beiden Indizes. Sie stehen hier, weil sie zeigen, dass beide Zahlen unabhängig sind: Die Exposition eines Agenten lässt sich nicht am Durchschnitt seiner Org ablesen.

HerkunftAnalyzer-Fingerabdruck d3a0cb4d683c · Parser 5.1.0. Der Fingerabdruck je Bericht benennt, welches Werkzeug welche Zahl erzeugt hat; siehe Abschnitt 07.

Spezifikation §4, wortgetreu

Sechs Aussagen, die der Index nicht trifft. Sie sind unverändert aus §4 der Spezifikation übernommen.

  1. 01

    It counts fields, never records. Record-level visibility is sharing-dependent; the honest answer is “run as the user to measure”, so the record axis is disclosed in prose (PS501) and never as a number in the Index.

    Er zählt Felder, nie Datensätze. Datensatzsichtbarkeit hängt vom Sharing ab; die ehrliche Antwort lautet, als dieser Benutzer zu messen.

  2. 02

    Org row counts are context, not the Index. A COUNT() is an upper bound — “could reach up to N rows”, never “reaches N”.

    Zeilenzahlen der Org sind Kontext, nicht der Index. Ein COUNT() ist eine obere Schranke — „kann bis zu N Zeilen erreichen“, nie „erreicht N“.

  3. 03

    Index = 0 with U > 0 is not clean. It is “0 proven, U unresolved”, and must be said that way.

    Index = 0 bei U > 0 ist nicht unbedenklich. Es heißt „0 nachgewiesen, U ungeklärt“ und muss so gesagt werden.

  4. 04

    It measures authority, not behaviour. The Index says what the code chain can reach as built — not what the agent has done in any conversation.

    Er misst Berechtigungsreichweite, nicht Verhalten. Er sagt, was die Codekette erreichen kann — nicht, was der Agent in irgendeinem Gespräch getan hat.

  5. 05

    It is not a certificate. It is evidence for a security review / DPIA, produced statically, with zero agent invocations and zero Flex Credits.

    Er ist kein Zertifikat. Er ist Nachweismaterial für eine Sicherheitsprüfung oder eine Datenschutz-Folgenabschätzung, statisch erzeugt, ohne einen einzigen Agentenaufruf.

  6. 06

    It is version-bound. A number is comparable only under the same tool version; the report's fingerprint (a sha256 over the rule/extractor source, parser version, analysis coverage, backend, and each class's own apiVersion) says exactly which tool produced it.

    Er ist versionsgebunden. Eine Zahl ist nur unter derselben Werkzeugversion vergleichbar; der Fingerabdruck des Berichts nennt genau, welches Werkzeug sie erzeugt hat.

Spezifikation §7

Die Messung wird veröffentlicht, damit eine Zahl von Menschen geprüft werden kann, die sie nicht erzeugt haben. Das Verfahren ist kurz.

Same org state + same running user + same tool version ⇒ byte-identical reports (proven live: two runs, equal sha256). To verify a Index someone quotes: run the tool twice on the same inputs, hash both outputs, compare fingerprints. The live COUNT() context lines are outside the deterministic fingerprint and say so.
Nicht normative LesehilfeGleicher Org-Zustand + gleicher ausführender Benutzer + gleiche Werkzeugversion ⇒ bytegleiche Berichte (live nachgewiesen: zwei Läufe, gleicher sha256). Um einen zitierten Index zu prüfen: das Werkzeug zweimal auf denselben Eingaben ausführen, beide Ausgaben hashen, die Fingerabdrücke vergleichen. Die live erhobenen COUNT()-Kontextzeilen liegen außerhalb des deterministischen Fingerabdrucks und sagen das auch.

Verfahren

  1. 01

    Die drei Eingaben festhalten, von denen die Zahl abhängt: Org-Zustand, ausführender Benutzer und Werkzeugversion.

  2. 02

    Die Analyse zweimal auf genau diesen Eingaben ausführen.

  3. 03

    Beide Ausgaben hashen. Bytegleiche Berichte ergeben gleiche Hashes; alles andere bedeutet, dass sich eine der drei Eingaben bewegt hat.

  4. 04

    Den Fingerabdruck im Bericht mit dem Fingerabdruck vergleichen, der zur Zahl zitiert wurde. Eine Zahl ist nur unter der Werkzeugversion vergleichbar, die ihr Fingerabdruck nennt.

  5. 05

    Die live erhobenen Zeilenzahl-Kontextzeilen gesondert lesen. Sie liegen außerhalb des deterministischen Fingerabdrucks und sagen das auch, denn ein COUNT() ist eine obere Schranke, und eine obere Schranke ist keine Messung.

Obere Schranken sind keine Messungen
Wo ein Bericht eine Zeilenzahl nennt, lautet die ehrliche Form „kann bis zu N Zeilen erreichen“, nie „erreicht N“. Prädikate und LIMIT-Klauseln werden nicht aufgelöst; die Zahl grenzt die Reichweite ein, statt sie zu messen.

Spezifikation §5

Verdichtet aus §5 der Spezifikation — genug, dass eine Implementierung ihr folgen kann, und genug, dass eine Leserin erkennt, was zutreffen müsste, damit eine Zahl falsch wäre.

  1. 01

    Resolve execution semantics per operation — the precedence law above, on both axes separately: enforces_fls (object CRUD + field security) and enforces_sharing (record visibility). Each is True / False / None = undetermined, and None is reported, never assumed safe.

  2. 02

    Extract reach SOQL (subqueries are reads of their own), SOSL, DML, async hand-offs (Queueable/Batch/@future, EventBus.publish as a write), trigger cascades, Flow runInMode, prompt-template merges — via two backends (AST and regex) feeding the same precedence core.

  3. 03

    Resolve the user effective permissions from a snapshot: profile + permission sets + PSG aggregates (muting measured to apply).

  4. 04

    Intersect with the org's own compliance labels (FieldDefinition.ComplianceGroup), including single-target relationship fields; polymorphic lookups are honestly skipped.

  5. 05

    Subtract and classify into P / C / B / U per §3.

Der Schweregrad ist eine Aussage über den Beweis, nicht über die Auswirkung
ERROR heißt nachgewiesen. WARN heißt: eine reale Grenze, deren Überschreitung nicht nachgewiesen werden konnte. Beide verschmelzen nie, denn der Schweregrad ist es, der ein Feld in P statt in B einordnet.
Die leitende Disziplin
Ein stilles falsches „unbedenklich“ ist schlimmer als ein ehrliches Unbekanntes. Alles, was die Analyse nicht auflösen kann, wird als ungeklärt gemeldet und in U gezählt — nie weggelassen und nie als Abwesenheit von Reichweite behandelt.

Spezifikation §9 · Messungen in der Org

Das Vorrangprinzip, auf dem die Methode beruht, ist in einer echten Org gemessen und nicht aus Dokumentation abgeleitet. Wo Dokumentation und laufende Org sich widersprachen, wurde der Org geglaubt.

Aus §9 der Spezifikation

Die Messungen in der Org

Sechzehn Experimente sind verzeichnet. Fünfzehn lieferten ein Ergebnis; eines (E12, Eingaben von Formelfeldern) ließ sich nicht ausbringen und wird als offen ausgewiesen, nicht als Befund.

Kennungwas gemessen wurdeErgebnis
E1System-mode read versus user-mode read, on both axes.5 records vs 0
E2The same without sharing source at two API versions. Also: no declaration is not the same as without sharing.v58 = 5, v67 = 0
E2bThe two-axis proof at v67: the record axis enforced, and the FLS read blocked rather than silently stripped.0 rows; read BLOCKED
E3WITH USER_MODE on a without sharing class. The operation clause beats the declaration.0
E4FieldDefinition.ComplianceGroup is readable without cost, but the query must be bounded per EntityDefinition, and FieldDefinition is itself FLS-gated.
E5Flow runInMode is declarative and static, so Flow actions are analysable without parsing Apex.
E6A trigger's DML runs in the mode of the trigger's own apiVersion. The v58 half of a matched pair with E13.v58 child write lands
E7Agent Script apex:// syntax is vendor-validated.sf agent validate → success
E8Permission Set Groups: the platform-computed aggregate's ObjectPermissions equalled the union of its components.exact match
E9Muting is applied by the aggregate, and the runtime agrees: WITH USER_MODE is blocked while a pre-v67 class still reads the muted value.aggregate has no row
E10Three pre-v67 invocables differing only in the sharing declaration, same caller, same admin-owned rows on a Private object.without sharing = 5, no declaration = 0, with sharing = 0
E11Platform-event publish by a user holding no ObjectPermissions row at all.v58 publish lands, v67 publish blocked
E12Formula-field inputs. The fixture that would settle whether a formula carries a value past the running user's FLS could not be deployed. Reported as open, not as a result.BLOCKED — not measured
E13A v67 trigger's own DML is bounded by the running user. Re-measured with controls on 2026-08-04; the org named the child entity and the trigger's own line in the exception.v58 writes / v67 blocks
E14WITH SECURITY_ENFORCED does not compile at v67, with the v66 control. Same source, only the apiVersion differs.v66 deploys / v67 fails
E15The record axis inside a trigger body, read two ways: a plain read (which reads the operation's mode) and WITH SYSTEM_MODE (which exposes the ambient context).v58: PLAIN=5 SYS=5 · v67: PLAIN=0 SYS=5
E16A trigger body does not inherit its caller's sharing declaration, in the form an Apex caller can express. Three call shapes at two versions.all six readings identical
Zur Dokumentation
Drei voneinander unabhängige Prüfungen haben, jeweils unter Berufung auf eine echte Herstellerquelle, argumentiert, das Vorrangprinzip sei falsch. Jede wurde mit einem Experiment beantwortet statt mit einer Änderung, und jedes Mal widersprach die laufende Org der Quelle. Dokumentation beschreibt Absicht; die Org beschreibt Verhalten — und nur eines von beidem ist das, was ein Kunde betreibt.

Eine Referenzimplementierung existiert — Agent Blast Radius — und sie hat die beiden durchgerechneten Beispiele in Abschnitt 05 erzeugt. Sie wird gegen einen gesondert veröffentlichten Korpus bewertet, den Agent Authority Benchmark v1.1 vom 19. August 2026: 28 Apex-Fälle, davon 21 durch eine echte Org entschieden und 7 als nicht entscheidbar gekennzeichnet. Die Spezifikation wird unabhängig davon veröffentlicht, damit eine von ihr erzeugte Zahl gegen die Definition geprüft werden kann und nicht gegen das Werkzeug.

Spezifikation §8, wortgetreu

Dieses Dokument friert mit seiner ersten öffentlichen Referenz ein. Diese Referenz ist diese Seite.

  • This specification freezes at its first public reference. After that, any change to §3 (the formula) or §4 (the non-claims) is a new major version, published side by side — an existing number is never silently redefined.
  • The tool fingerprint identifies which specification version produced a number.
  • Extensions that only add reporting (new sub-buckets, new labels) are minor versions and must not change P/C/B/U for an unchanged input.
Entscheidungsprotokoll
ADR-013, angenommen am 19. August 2026, hat P als Leitzahl festgelegt und einen Verhältniswert verworfen. Die Entscheidung erscheint unter v1.0, weil §3 — die Formel — unberührt blieb. Eine Änderung, die §3 oder §4 berührt hätte, hätte eine neue Hauptversion erfordert, nebeneinander veröffentlicht.

Der Quelltext der Version 1.0 enthält Kennzahlen und eine Formulierung, die diese Seite nicht wiedergibt. Sie werden aufgeführt statt stillschweigend berichtigt: Eine Spezifikation, die sich selbst heimlich ändert, begeht genau den Fehler, den zu verhindern sie da ist — eine Ebene höher. Die Klauseln, die die Messung definieren — §1, §3, §4, §7 und §8 — sind nicht betroffen.

Mustafa Aksu, Aksu Software.

Die Spezifikation des Aksu Index wird veröffentlicht, damit jede Zahl, die seinen Namen trägt, gegen eine Definition geprüft werden kann, über die ihr Autor im Augenblick des Zitierens keine Verfügungsgewalt hat.

Lizenz

Das Repository der Referenzimplementierung steht unter der MIT-Lizenz (Copyright © 2026 Mustafa Aksu), deren Rechteeinräumung die Software und die zugehörigen Dokumentationsdateien umfasst. Ob diese Spezifikation in der hier veröffentlichten Form unter jener Lizenz oder unter einer gesonderten Dokumentationslizenz steht, ist im Quellmaterial nicht angegeben. Die Lizenzlage ist daher noch zu klären und wird hier nicht behauptet.