Methodik
Diese Seite legt offen, woher der Bestand stammt, welcher Teil davon veröffentlicht wird und nach welcher Regel jeder abgeleitete Wert entsteht. Werte, die aus der Selbstauskunft eines Anbieters abgeleitet sind, gehen nur dann ohne menschliche Prüfung live, wenn die Ableitungsregel hier offengelegt ist, die Rohangabe unmittelbar neben dem abgeleiteten Wert steht und die Regel ohne Ermessen greift.
Herkunft des Bestands
Der Bestand ruht auf 2 Quellen im Betrieb: MCP-Register und Agentensaat.
Die MCP-Server stammen aus dem öffentlichen MCP-Register unter registry.modelcontextprotocol.io, Endpunkt /v0/servers. Es wird täglich um 01:17 Uhr in einem Durchlauf über alle Seiten abgerufen, vollständig und ohne Auswahl. Das gilt für den Abruf; welcher Teil davon veröffentlicht wird, steht im nächsten Abschnitt. Die Coding-Agenten stammen nicht von dort, sondern aus einer gepflegten Datei dieses Registers (Agentensaat), die im selben Auslieferungsstand liegt wie der Quelltext.
Erhoben wird ausschließlich, was die Quelle selbst führt. Das Register ruft keine der dort genannten Adressen auf und sieht nicht nach, ob unter ihnen etwas liegt; es reichert nichts aus anderen Quellen an und bildet keine Profile. Wo ein Wert aus einer Angabe der Quelle abgeleitet ist, steht die Rohangabe daneben und die Regel in der Tabelle weiter unten.
Gebaut und nicht eingeschaltet
ACP-Register, abgeschaltet seit 2026-08-16.
Adresse: https://cdn.agentclientprotocol.com/registry/v1/latest/registry.json
Werte aus ihr stehen an 0 Einträgen dieses Bestands.
Grund, unverändert aus dem Betriebsvermerk zitiert: Gebaut, aber nicht eingeschaltet: Die Anbindung einer fremden Quelle ist eine Entscheidung des Betreibers (Lizenzlage der Fremddaten, Abwaegung nach Art. 6 Abs. 1 lit. f DSGVO wegen des Feldes authors, Zuordnung der Autoritaet). Einschalten mit UPDATE quelle SET abgeschaltet_seit = NULL, abgeschaltet_grund = NULL WHERE bezeichnung = 'ACP-Register';
Eine abgeschaltete Quelle wird von keinem Lauf abgerufen. Sie steht hier, weil Abschalten sonst Verstecken wäre.
Was ausgeliefert wird
Der Bestand wird vollständig ausgeliefert. Geführt werden 24.507 Einträge, öffentlich abrufbar sind davon 24.507, zurückgehalten werden 0.
Bis zum 8. August 2026 wurde ein Teil des Bestands zurückgehalten: jeder Eintrag, dessen Bezeichner den Kontonamen eines Menschen trägt. Diese Einträge sind seither öffentlich. Wer als betroffene Person nicht in diesem Register stehen möchte, widerspricht formlos an die im Impressum genannte Adresse; der Eintrag wird dann gelöscht und die Kennung dauerhaft gesperrt.
Von den ausgelieferten Einträgen sind 24.507 für Suchmaschinen freigegeben; das ist die Summe der Zahlen, die die Startseite je Bereich nennt. Alle vier Zahlen werden bei jedem Abruf aus der Datenbank gezählt.
Lizenzstand, geprüft am 2026-08-06: Das Vorhaben modelcontextprotocol/registry regelt in seiner LICENSE nur Code und Dokumentation; zu den eingereichten Servereinträgen steht dort nichts. Das ist ein belegter Stand mit Prüfdatum und keine Rechtsauskunft. Das Register gibt wieder, was die Quellen führen, und sichert nicht zu, dass die Angaben zutreffen.
Die offengelegten Regeln
Jede Regel, nach der dieses Register aus einer Angabe der Quelle etwas anderes bildet, steht hier mit ihrer Fassung. Die Tabellen sind aus dem Quelltext gelesen und nicht abgeschrieben: Eine Regel, die dort dazukommt, steht am selben Tag auch hier.
Ableitungsregeln
Fassung der Ableitungsregeln: 2
| zugangsdaten_erforderlich | Wahr, wenn das Register mindestens eine Umgebungsvariable ODER mindestens eine Kopfzeile eines Remote-Endpunkts mit isSecret = true und isRequired = true fuehrt. Beide Rohangaben stehen getrennt daneben.
Rohangabe:
roh_geheime_pflichtvariablenGilt für:
mcp_serverGreift ohne Ermessen |
|---|---|
| ausfuehrungsort | „entfernt", wenn ausschliesslich Remotes oder HTTP-Transporte gefuehrt sind; sonst „lokal".
Rohangabe:
roh_transportartenGilt für:
mcp_serverGreift ohne Ermessen |
| dateisystem_pfadargument | Wahr, wenn mindestens ein Paket- oder Laufzeitargument ODER mindestens eine Umgebungsvariable das Format filepath traegt.
Rohangabe:
roh_pfadargumenteGilt für:
mcp_serverGreift ohne Ermessen |
| quelloffen_einsehbar | Wahr, wenn das Register eine Repository-Adresse fuehrt. Ob dort etwas liegt, ist damit nicht gesagt: Das Register ruft die Adresse nie ab.
Rohangabe:
roh_repository_urlGilt für:
mcp_serverGreift ohne Ermessen |
Zerlegungsregeln der Rohangaben 17 Regeln · Fassung 1
Wie aus einem Feld des Rohsatzes ein gespeicherter Wert wird: welche Teile zusammengefasst, wie sie sortiert und womit sie getrennt werden. Eine Zerlegung urteilt nicht, sie schreibt um.
| Regel | Feld im Rohsatz | Was sie tut |
|---|---|---|
roh_geheime_pflichtkopfzeilen | remotes[].headers[] | Die Namen aller Kopfzeilen eines Remote-Endpunkts mit isSecret = true UND isRequired = true, entdoppelt, alphabetisch, durch Komma getrennt. Eine Kopfzeile ohne Namen erscheint als „Kopfzeile ohne Bezeichnung". |
roh_pfad_umgebungsvariablen | packages[].environmentVariables[] mit format = filepath | Die Namen aller Umgebungsvariablen mit format = filepath, entdoppelt, alphabetisch, durch Komma getrennt. |
roh_remote_adressen | remotes[].url | Jede Adresse unveraendert, entdoppelt, alphabetisch, durch Komma getrennt. Gemessen am 15.08.2026 traegt keine der 11600 Adressen des Rohabzugs Leerraum; das Trennzeichen ist damit eindeutig. |
roh_remote_hosts | remotes[].url, Hostname | Der Hostname jeder Remote-Adresse, ohne Port, entdoppelt, alphabetisch. Eine nicht zerlegbare Adresse liefert keinen Host; die Adresse selbst bleibt daneben stehen. Dass zwei Eintraege denselben Host nennen, sagt nichts darueber, wem er gehoert. |
roh_statusmeldung | _meta["io.modelcontextprotocol.registry/official"].statusMessage | Der Text des Registers zum Statuswechsel, unveraendert und ungekuerzt. Kein Text heisst: Das Register fuehrt keinen. |
roh_veroeffentlicht_am | _meta["io.modelcontextprotocol.registry/official"].publishedAt | Der Kalendertag der Ersteintragung im Register. Der Zeitstempel wird auf den Tag gekappt; der volle Wert steht im archivierten Rohabzug. |
roh_aktualisiert_am | _meta["io.modelcontextprotocol.registry/official"].updatedAt | Der Kalendertag der letzten Aenderung im Register, gekappt wie oben. Weicht er vom Tag der Ersteintragung ab, wurde nachgepflegt. |
roh_schemafassung | server.$schema | Die Adresse des Schemas, gegen das der Rohsatz veroeffentlicht wurde, unveraendert. |
roh_bereitstellungsform | packages[] und remotes[] | „paket", wenn der Rohsatz Pakete fuehrt und keine Remotes; „remote" umgekehrt; „paket und remote", wenn beides; „keines", wenn nichts. Gezaehlt wird, ob die Liste Eintraege hat, sonst nichts. |
roh_repository_quelle | repository.source | Die Plattformangabe des Repositorys, unveraendert. Ob dort etwas liegt, ist damit nicht gesagt: Das Register ruft die Adresse nie ab. |
roh_repository_unterordner | repository.subfolder | Der Unterordner im Repository, unveraendert. Er steht dort, wo der Server in einem gemeinsamen Repository liegt. |
roh_paketbezeichner | packages[].identifier | ALLE Paketbezeichner, entdoppelt, alphabetisch, durch Komma getrennt. Die Spalte `paket_koordinate` fuehrt nur den ranghoechsten; gemessen am 15.08.2026 fiel damit bei 173 Eintraegen der Rest weg. |
roh_paketversionen | packages[].version | Die Versionsangaben aller Pakete, entdoppelt, alphabetisch. Sie koennen von der Serverversion abweichen. |
roh_laufzeithinweise | packages[].runtimeHint | Die Laufzeithinweise aller Pakete, entdoppelt, alphabetisch, durch „ · " getrennt. Das Feld ist Freitext: Gemessen am 15.08.2026 tragen 2 von 396 Werten selbst ein Komma, einer einen ganzen Absatz. Deshalb nicht das Komma als Trenner. |
roh_umgebungsformate | packages[].environmentVariables[].format | Die vorkommenden Formatangaben, entdoppelt und alphabetisch. Welche Variable welches Format traegt, steht hier nicht. |
roh_umgebungsbeschreibungen | packages[].environmentVariables[].description | Je Umgebungsvariable mit Beschreibung ein Paar „NAME=Text", nach Namen sortiert, durch „ · " getrennt. Getrennt wird am ERSTEN Gleichheitszeichen: Gemessen am 15.08.2026 tragen 12 von 1720 Beschreibungen selbst eines, aber keine einzige das Trennzeichen „ · ". Der Text bleibt unveraendert. |
roh_symbolformate | icons[].mimeType | Die Formatangaben der Symbole, entdoppelt und alphabetisch. Die BILDADRESSE wird ausdruecklich nicht gefuehrt: Gemessen am 15.08.2026 verteilen sich 895 Symboladressen auf 601 fremde Hosts, und eine ausgelieferte Bildadresse gaebe jedem von ihnen die IP des Besuchers. |
gelesen aus: lib/ableitung.js
Fundregeln der Koordinatensuche 9 Regeln · Fassung 2
Aus welchen Eingabeformen die Koordinatensuche eine Paketkennung herauslöst. Die Reihenfolge ist Teil der Regel: Die Befehlsformen greifen vor dem nackten Bezeichner. Greift keine, wird nichts geraten.
Muster und Beispiel stehen sprachlos im Quelltext und werden wörtlich wiedergegeben.
| Regel | Muster | Beispiel | Was sie tut |
|---|---|---|---|
koordinate | ^(npm|pypi|oci|nuget|mcpb|cargo|name):(@?[\w.-]+(?:\/[\w.-]+)*)$ | pypi:unraid-mcp | Eine Paketkoordinate in der Form, die dieses Register selbst ausgibt: Quelle, Doppelpunkt, Kennung. Der Teil hinter dem Doppelpunkt muss selbst ein Bezeichner sein. |
purl | ^pkg:(?:npm|pypi|oci|nuget|cargo|mcpb)\/(\S+?)(?:@[^/@\s]*)?$ | pkg:npm/@modelcontextprotocol/server-filesystem | Eine Paket-URL nach der purl-Schreibweise. |
npx | \bnpx\s+(?:-{1,2}[a-z-]+\s+)*(@?[\w.-]+(?:\/[\w.-]+)?) | npx -y @modelcontextprotocol/server-filesystem | Ein Startbefehl mit npx. Die Schalter von npx selbst werden uebersprungen. |
uvx | \b(?:uvx|pipx\s+run)\s+(?:-{1,2}[a-z-]+\s+)*([\w.-]+) | uvx mcp-server-git | Ein Startbefehl mit uvx oder pipx run. |
pip | \b(?:uv\s+)?pip\s+install\s+(?:-{1,2}[a-z-]+\s+)*([\w.-]+) | pip install mcp-server-git | Eine Installation mit pip oder uv pip. |
docker | \b(?:docker|podman)\s+run\b[^\n]*?\s((?:[\w.-]+\/)+[\w.-]+)(?::[\w.-]+)?\s*$ | docker run -i --rm mcp/everything | Ein Containerabbild aus einem docker- oder podman-Befehl. Eine angehaengte Fassung faellt weg, weil der Befehl davor sagt, was gemeint ist. |
dnx | \bdnx\s+(?:-{1,2}[a-z-]+\s+)*([\w.-]+) | dnx Some.Mcp.Server | Ein Startbefehl mit dnx. |
registername | ^([\w.-]+\/[\w.-]+)$ | io.github.modelcontextprotocol/servers | Zwei durch einen Schraegstrich getrennte Teile, die Form eines Registerbezeichners. Die Regel beschreibt die Form, nicht die Herkunft. |
bezeichner | ^(@?[\w.-]+(?:\/[\w.-]+)*)$ | @modelcontextprotocol/server-filesystem | Ein nackter Paketname, mit oder ohne Geltungsbereich. |
gelesen aus: lib/koordinatenfund.js
Startvorlagen des Konfigurationsbaukastens 3 Regeln · Fassung 1
Aus welcher Paketquelle welcher Startbefehl gebildet wird. Für eine Paketquelle ohne Vorlage wird nichts erzeugt, auch nichts Vorsichtiges.
| Paketquelle | Befehl | Was sie tut |
|---|---|---|
npm | npx -y {kennung} | Paketquelle npm: Aufruf über npx mit der Kennung aus der Paketkoordinate. |
pypi | uvx {kennung} | Paketquelle PyPI: Aufruf über uvx mit der Kennung aus der Paketkoordinate. |
oci | docker run -i --rm {kennung} | Paketquelle OCI: Aufruf über docker run mit dem Abbildnamen aus der Paketkoordinate. |
gelesen aus: lib/konfiguration.js
Bildung des Namensraums 1 Regel · Fassung 1
Wie aus dem Registernamen eines Eintrags sein Namensraum wird. Dass zwei Einträge denselben Namensraum tragen, heißt, dass sie denselben gemessenen Wert tragen, und nichts darüber hinaus.
| Regel | Was sie tut |
|---|---|
namensraum | Der Teil des Registernamens vor dem ersten Schrägstrich. Enthält der Name keinen Schrägstrich, hat er keinen Namensraum. Die Regel greift ohne Ermessen; wem ein Namensraum gehört, ist damit nicht gesagt. |
gelesen aus: lib/namensraum.js
Namensnachbarn 5 Regeln · Fassung 1
Nach welcher Regel zwei Bezeichner als nahe gelten. Die Schwelle entscheidet über jede Zahl auf der Werkzeugseite: Derselbe Vergleich liefert ohne sie 2161 Paare und mit ihr 165.
| Regel | Was sie tut |
|---|---|
anzeigename | Zwei Eintraege tragen denselben Anzeigenamen. Verglichen wird ohne Ruecksicht auf Gross- und Kleinschreibung und ohne Leerraum am Rand, und nur ueber die Namensraumgrenze hinweg. |
lokalname | Zwei Eintraege tragen denselben Teil hinter dem ersten Schraegstrich, in verschiedenen Namensraeumen. Rein gattungsmaessige Namen bleiben draussen: mcp, mcp-server, server, api. |
abstand | Die Levenshtein-Distanz zwischen zwei vollstaendigen Bezeichnern, kleingeschrieben. Abstand 1 und Abstand 2 stehen in getrennten Abschnitten, weil sie verschieden weit gefasst sind. |
kontoname | Traegt ein Bezeichner den Kontonamen eines Menschen, wird sein Abstand zu anderen Bezeichnern nicht gerechnet - weder ueber den ganzen Bezeichner noch ueber den Lokalnamen, und auf beiden Seiten des Vergleichs. Gleichheit wird weiter gezeigt: Dass zwei Eintraege denselben Lokalnamen tragen, ist eine Feststellung. Ein Abstand ist eine Behauptung ueber die Naehe zweier Namen, und dieses Register behauptet nichts ueber die Namen von Menschen. |
mindestlaenge | Fuer den Aehnlichkeitsvergleich ueber den Lokalnamen gilt eine Mindestlaenge von 6 Zeichen. Gemessen am 15.08.2026 liefert derselbe Vergleich ohne sie 2161 Paare und mit ihr 165: „mcp" hat zu „mc" und zu „rmcp" je einen Abstand von eins. Fuer die GLEICHHEIT gilt sie nicht - dass zwei Eintraege denselben Lokalnamen tragen, ist eine Feststellung und keine Vermutung. |
gelesen aus: lib/nachbarn.js
Umgebungsvariablen 4 Regeln · Fassung 1
Wie aus einer gespeicherten Rohangabe einzelne Variablennamen werden, warum gewöhnliche und geheime nie addiert werden und wie eine Beschreibungszeile in Name und Text zerfällt.
| Regel | Was sie tut |
|---|---|
namen | Die Namen entstehen, indem die gespeicherte Rohangabe am Trennzeichen geteilt wird, das dieses Register beim Einlesen gesetzt hat. Je Eintrag wird entdoppelt: Wer denselben Namen zweimal nennt, ist trotzdem ein Eintrag, der ihn nennt. |
getrennt | Gewoehnliche und geheime Pflichtvariablen werden GETRENNT gezaehlt und nirgends addiert. Derselbe Name kann in beiden stehen - gemessen tut APIFY_TOKEN das 30-mal -, und eine Summe waere deshalb nicht ungenau, sondern falsch. |
beschreibung | Eine Beschreibungszeile der Quelle hat die Form NAME=Text und wird am ERSTEN Gleichheitszeichen geteilt. Der Text dahinter enthaelt haeufig weitere; wer am letzten teilte, machte aus dem gemessenen Text einen anderen. Ein Stueck ohne Gleichheitszeichen faellt heraus statt als Name mit leerem Text zu erscheinen. |
variablensatz | Verglichen wird die MENGE der Namen eines Eintrags: entdoppelt und sortiert. Die Reihenfolge, in der die Quelle sie nennt, bleibt ausser Betracht - sie ist keine Aussage. Festgestellt wird damit ausschliesslich, dass zwei Eintraege denselben gemessenen Wert tragen. |
gelesen aus: lib/variablen.js
Domänen 4 Regeln · Fassung 1
Wie aus einer Adresse eine Domäne wird, warum Homepage und Remote-Endpunkt getrennt gezählt werden und was aus einer geteilten Domäne ausdrücklich nicht folgt.
| Regel | Was sie tut |
|---|---|
domaene | Die Domaene entsteht, indem die Adresse als URL gelesen und ihr Rechnername genommen wird, kleingeschrieben und ohne ein fuehrendes www. Der Port gehoert zur Adresse und nicht zur Domaene. Eine Adresse, die sich nicht als URL lesen laesst, faellt aus der Zaehlung und wird auf der Seite angesagt. |
getrennt | Homepage und Remote-Endpunkt werden GETRENNT gezaehlt. Wo die Seite eines Eintrags liegt und wohin sein Server verbindet, sind zwei verschiedene Angaben; eine gemeinsame Zahl behauptete einen Zusammenhang, den es nicht gibt. |
plattform | Domaenen, auf denen viele Unbeteiligte veroeffentlichen, stehen in einer eigenen Tabelle: github.com, gitlab.com, bitbucket.org, codeberg.org, gitea.com, git.sr.ht, github.io, gitlab.io, sourceforge.net. Gemessen wird github.com von 816 Namensraeumen als Homepage genannt; neben einer Domaene mit sechs saehe diese Zahl aus wie ein Befund ueber 816 Anbieter, und sie ist keiner. |
keine_identitaet | Aus einer geteilten Domaene wird NICHTS abgeleitet. Gesagt wird ausschliesslich, dass diese Namensraeume dieselbe Domaene nennen - nicht, dass derselbe Anbieter dahintersteht oder dass einer zum anderen gehoert. Wem eine Domaene gehoert, steht in keiner Quelle, die dieses Register liest. |
gelesen aus: lib/domaenen.js
Trennung der mehrwertigen Rohangaben 4 Regeln · Fassung 1
Wie eine Zelle mit mehreren Werten wieder in ihre Werte zerfällt. Diese Regel entscheidet jede Zahl des Transportprofils, des Variablenverzeichnisses und des Domänenspiegels; wer an einem anderen Zeichen trennt, erfindet Werte, die die Quelle nie genannt hat.
| Regel | Was sie tut |
|---|---|
trenner_liste | Eine Rohangabe aus kurzen Bezeichnern zerfaellt an ", " und ausdruecklich nicht an jedem Komma. Gemessen am 15.08.2026 ueber die Liefermenge: die Trennung an jedem Komma ergab 5795 Stuecke aus den Remote-Adressen, davon 44 zerschnittene; die Trennung am ganzen Trenner ergab 5751 und keine einzige zerschnittene. |
trenner_freitext | 2 Rohangaben tragen Saetze statt Bezeichner und zerfallen deshalb an " · ": roh_laufzeithinweise und roh_umgebungsbeschreibungen. In jeder von ihnen kommt das Komma erwiesen im Text selbst vor. |
keine_entdopplung | Nennt eine Zelle denselben Wert zweimal, steht er zweimal da. Die Doppelnennung ist eine Beobachtung ueber die Quelle und kein Schmutz; gemessen nennen 93 Eintraege "stdio, stdio" und 61 "npm, npm". Sortiert wird ebenfalls nicht: Die Reihenfolge ist die der Quelle. |
leere_zelle | Die leere Zelle ergibt keine Nennung, nicht eine leere. Sie heisst in diesem Register "die Quelle erklaert ausdruecklich nichts" und ist damit eine Messung - aber eben keine Nennung. |
gelesen aus: lib/mehrwert.js
Zwei Registernamen, ein Paket 5 Regeln · Fassung 1
Wann zwei Einträge als derselbe Gegenstand gelten und wie gemessen wird, worin sie übereinstimmen. Das Ergebnis ist eine Beobachtung über die Quelle und kein Urteil darüber, welcher der beiden Einträge der richtige ist.
| Regel | Was sie tut |
|---|---|
gruppe | Eine Gruppe sind zwei oder mehr Eintraege mit derselben Paketkoordinate. Die Koordinate ist die Identitaet des PAKETS, der Registername die des EINTRAGS; fallen zwei Registernamen auf eine Koordinate, hat die Quelle zweimal dasselbe Paket eingetragen. |
vergleichswert | Ob zwei Eintraege einer Gruppe in einem Merkmal uebereinstimmen, entscheidet die SORTIERTE MENGE ihrer Projektionszeilen und nicht die erste Zeile. Sonst haenge die Zahl auf der Seite an der Einfuegereihenfolge der Datenbank. |
gemessene_merkmale | Verglichen werden nur die Merkmale, die der Bestand wirklich fuehrt, nicht die des Schemas. Ein Merkmal, das kein Eintrag traegt, waere in jeder Gruppe "gleich" und schoebe die Zahl der Uebereinstimmungen nach oben, ohne dass etwas gemessen worden waere. |
name_koordinate | Ein Eintrag ohne Paket traegt "name:<Registername>" als Koordinate. Solche Koordinaten sind nicht ausgenommen, sie koennen nur nie eine Gruppe bilden, weil der Registername eindeutig ist; gemessen tragen 5222 Eintraege eine, und keine einzige Gruppe entsteht daraus. Eine Ausnahmeregel, die nie greift, waere eine Regel, deren Ausfall niemandem auffiele. |
kein_urteil | Der Befund sagt, dass zwei Saetze dieselbe Koordinate nennen, und nichts darueber hinaus: kein Wort ueber Verwechslung, keine Angabe, welcher der "richtige" Eintrag ist, keine Empfehlung. Das Register hat dafuer keine Grundlage. |
gelesen aus: lib/zwillinge.js
Lesen der Versionsangaben 6 Regeln · Fassung 1
Wie aus einer Versionsangabe ihre Zahlen und daraus eine Klasse wird. Die Klasse beschreibt, welche Ziffern dastehen – sie ist keine Note für Reife oder Pflege.
| Regel | Was sie tut |
|---|---|
muster | Gelesen wird ausschliesslich die strenge Form: drei durch Punkte getrennte Ziffernfolgen am Anfang der Angabe. Was danach kommt, bleibt als Zusatz stehen und wird nicht gedeutet. Geraten wird nichts - kein "v1.0.0", kein "1.0", kein "nightly". Gemessen fallen dadurch 13 von 6486 Eintraegen in die Klasse unlesbar, und das ist die richtige Auskunft und keine Luecke. |
vor_eins | Hauptversion 0. Damit sagt die QUELLE selbst, dass die Schnittstelle noch nicht festliegt (so ist SemVer 2.0.0 formuliert). Das Register gibt diese Aussage wieder und trifft sie nicht. |
erstfassung | x.0.0 mit x groesser oder gleich 1: Weder Neben- noch Korrekturstelle sind hochgezaehlt worden. |
weitere | Jede andere lesbare Angabe. |
zwei_fassungen | Die Fassung des REGISTEREINTRAGS und die Fassung des PAKETS stehen nebeneinander und werden nie addiert. Sie beantworten verschiedene Fragen, und eine Summe zaehlte dieselben Eintraege zweimal. |
keine_note | Die Klasse beschreibt, welche Ziffern in der Angabe stehen. Sie ist kein Urteil ueber Reife, Pflege oder Eignung - darueber weiss dieses Register nichts. |
gelesen aus: lib/versionsreife.js
Messung des gelieferten Wortlauts 6 Regeln · Fassung 1
Wie Namen und Beschreibungstexte gezählt, gebündelt und auf Dubletten geprüft werden. Was daraus folgt, folgt aus der Zählung: Eine Beschreibung am Höchstwert ist gemessen, „abgeschnitten" wäre ein Schluss.
| Regel | Was sie tut |
|---|---|
laenge | Gezaehlt werden CODEPUNKTE und nicht Bytes und nicht UTF-16-Einheiten. Gemessen tragen 830 Eintragsnamen der Liefermenge Zeichen jenseits der Grundebene, und die zaehlt "x".length doppelt. Wer das aendert, aendert Median und Hoechstwert. |
anzeigename | Ein Eintrag fuehrt genau dann keinen eigenen Anzeigenamen, wenn sein Name dem Registerbezeichner gleicht. Dann steht der nackte Bezeichner als Ueberschrift. |
dublette | Eine Dublette ist ein Beschreibungstext, den mehr als ein Eintrag WOERTLICH fuehrt. Verglichen wird der Text unveraendert, ohne Kuerzung und ohne Normalisierung. |
am_hoechstwert | Gezaehlt wird, wie viele Beschreibungen genau auf dem Hoechstwert des Bestands liegen. Dass sie deshalb "abgeschnitten" seien, ist ein Schluss und keine Messung - eine Kappungsgrenze der Quelle ist naheliegend und nicht bewiesen. Deshalb heisst die Zahl am Hoechstwert und nicht abgeschnitten. |
raster | Die Laengen werden in Felder von 10 Zeichen gebuendelt. Die obere Kante des letzten Feldes ist der gemessene Hoechstwert und nicht das Ende des Rasters: Ein Feld "100 bis 109" verspraeche eine Spanne, in der die Messung nur einen einzigen Wert kennt. |
sackgasse | Zwei getrennte Zahlen, weil es zwei Fragen sind: wer keine Homepage fuehrt, und wer weder Homepage noch Repository-Adresse fuehrt. Aus einem Eintrag der zweiten Art fuehrt keine Zeile aus dem Register hinaus. |
gelesen aus: lib/wortlaut.js
Zeitachse der Quelle 5 Regeln · Fassung 1
Wie aus den beiden Datumsangaben der Quelle Tage und Monate werden. Die Kurve zeigt die Geschichte des fremden Registers und nicht das Wachstum dieses hier; die eigene Erhebung steht getrennt daneben.
| Regel | Was sie tut |
|---|---|
kalendertag | Gezaehlt wird je Kalendertag, den die Quelle selbst nennt: roh_veroeffentlicht_am und roh_aktualisiert_am. Ein Eintrag zaehlt je Tag genau einmal, auch wenn mehrere Zeilen auf ihn zeigen. |
leerer_wert | Die leere Zeichenkette wird getrennt ausgewiesen und nicht als Tag gezaehlt. Sie heisst "die Quelle erklaert ausdruecklich nichts" und ist damit eine Messung, aber kein Datum. |
monatsraster | Die Tage werden zu Monaten gebuendelt, und das Raster ist LUECKENLOS: Ein Monat ohne Eintrag steht mit 0 da und faellt nicht heraus. Sonst zeichnete das Bild elf ruhige Monate und einen vollen als zwei gleich breite Balken nebeneinander. |
nachgepflegt | Als nachgepflegt zaehlt ein Eintrag, dessen Aenderungstag SPAETER liegt als sein Eintragungstag. Beide Tage stammen aus der Quelle; die Aussage ist ihre, nicht unsere. |
eigene_erhebung | Die Zeitachse ist die der QUELLE und nicht das Wachstum dieses Registers. Die eigene Erhebung steht getrennt daneben; ihre Zahl der Tage ist die Auskunft, dass es hier keinen Verlauf gibt, und nicht der Anfang einer Kurve. |
gelesen aus: lib/quellhistorie.js
Auflösung des Kontonamens 4 Regeln · Fassung 1
Wie aus einem Bezeichner der Kontoname gelöst wird, der in ihm steht. Auf dieser Regel entscheidet sich, welche Kennungen zu einem Widerspruch gehören – eine Regel, nach der gelöscht wird, gehört offengelegt.
| Regel | Was sie tut |
|---|---|
plattform_praefix | Diese Aufloesung erfasst Bezeichner, die mit einem der 6 Plattform-Namensraeume beginnen: io.github, io.gitlab, io.bitbucket, io.codeberg, io.gitea, ht.sr. Ein Bezeichner ausserhalb davon benennt in der Regel eine Domaene; dass er dennoch einen Kontonamen tragen kann, ist gemessen und wird ueber den Vergleich mit der Repository-Adresse gesondert erkannt. |
bis_zum_schraegstrich | Der Kontoname ist alles zwischen diesem Praefix und dem ERSTEN Schraegstrich. Fehlt der Schraegstrich, gibt es kein Paket und damit keinen Kontoteil. |
normalisierung | Verglichen wird ueber genau eine Normalisierung (Leerraum am Rand entfernt, Kleinschreibung in ganz Unicode) - dieselbe, die auch der Loeschweg benutzt. Gemessen tragen 3976 von 20380 Kennungen Grossbuchstaben; zwei Normalisierungen nebeneinander waeren der Befund vom 07.08.2026. |
kein_schluss | Die Aufloesung zerlegt eine Zeichenkette und sonst nichts. Aus dem Kontonamen wird nicht auf einen Anbieter, eine Identitaet oder eine Zugehoerigkeit geschlossen; zwei Eintraege mit demselben Kontonamen tragen denselben gemessenen Wert im Bezeichner, und mehr steht hier nicht. |
gelesen aus: lib/konto.js
tracevero · https://tracevero.de/methodik