Breit gebaut, am Rand noch nicht belegt

Der MZP hat in vier Wochen 56 % mehr Code bekommen und dabei seine Disziplin gehalten: 2.439 Tests laufen grün, fünf Ratschen halten den Bestand, die Agenten-Evals stehen bei 15 von 15. Was fehlt, ist selten Funktion. Es sind die Ränder: Aufrufe, die Erfolg melden und falsch liegen, Kosten, die gezählt statt gemessen werden, und Bereiche wie Gestaltung und Deploy, die kein eigenes Gate tragen.

Stand 2. Oktober 2026, main 8ec6013, Produktion am selben Tag befragt. Fünf Achsen, 40 Befunde: 34 gemessen, 6 Einschätzung, bei 21 habe ich selbst nachgeprüft.

Die Stärken-Matrix

Eine Spalte je Achse. Über der Mittellinie steht, was trägt, darunter, was kostet. Die Höhe einer Platte ist ihr Gewicht, gefüllt heißt gemessen, umrandet heißt Einschätzung. Jede Platte führt zum Absatz mit Beleg und Quelle.

  • Stärke, gemessen
  • Stärke, Einschätzung
  • Schwäche, gemessen
  • Schwäche, Einschätzung
  • Höhe: Gewicht 1 bis 3
Stärken-Matrix des MZP auf fünf Achsen Fünf Spalten, eine je Achse. Über der Mittellinie stehen Stärken in Blau, darunter Schwächen in Orange; die Höhe einer Platte ist ihr Gewicht von eins bis drei. Gefüllte Platten sind gemessen, umrandete sind Einschätzungen. Jede Platte verweist auf ihren Absatz im Text. ↑ trägt ↓ kostet Design Optik, Vokabular, Skins Leistung 4,0 Beleg 2,5 D-S1, Stärke, gemessen: Ein Vokabular, versioniert und unveränderlich Ein Vokabular, versioniert und unveränderlich mzone-ui 1.8.0 · 76 Klassen D-S2, Stärke, gemessen: Falsche Klassen fallen beim Publish auf Falsche Klassen fallen beim Publish auf UNKNOWN_STYLE_CLASS D-S3, Stärke, gemessen: Zehn Skins, vier Branding-Profile Zehn Skins, vier Branding-Profile 10 + custom · 4 Profile D-S4, Stärke, gemessen: Handschrift-Stil mit Werkzeug Handschrift-Stil mit Werkzeug analog 1.1.0 · FIGURE_FIT D-W1, Schwäche, Einschätzung: Gestaltung wird kaum gemessen Gestaltung wird kaum gemessen a11y aus · kein Pixel-Test D-W2, Schwäche, gemessen: Tokens nur als Fließtext Tokens nur als Fließtext MZP-115 offen D-W3, Schwäche, gemessen: Analog-Blätter stumm für Screenreader Analog-Blätter stumm für Screenreader 41 Elemente · MZP-140 D-W4, Schwäche, Einschätzung: Mehr Effekt als Daten Mehr Effekt als Daten 27 Transitions · 3 Daten Diagramm Engine, Layout, Viewer Leistung 4,5 Beleg 4,0 G-S1, Stärke, gemessen: 45 Typen, vier Eingabewege 45 Typen, vier Eingabewege JSON · Mermaid · ASCII · Lage G-S2, Stärke, gemessen: Das Layout misst sich selbst Das Layout misst sich selbst LAYOUT_QUALITY · hotspots[] G-S3, Stärke, gemessen: Viewer mit Tiefe, auch im Chat Viewer mit Tiefe, auch im Chat im Claude-Host nachgewiesen G-S4, Stärke, gemessen: Der Kern ist hoch abgesichert Der Kern ist hoch abgesichert 97,9 % Abdeckung der Pakete G-W1, Schwäche, gemessen: Die Layout-Politur stockt Die Layout-Politur stockt Korpus: 235 Überlappungen G-W2, Schwäche, gemessen: Ein stiller Phantomknoten Ein stiller Phantomknoten MZP-135 · ok:true, falsch G-W3, Schwäche, gemessen: Erstansicht bei flachen Abläufen zu klein Erstansicht bei flachen Abläufen zu klein 5–6 px Text im Median G-W4, Schwäche, gemessen: Simulationsmodus wartet Simulationsmodus wartet MZP-85 · seit 25 Tagen Publish Prüfen, Veröffentlichen, Export Leistung 4,0 Beleg 3,5 P-S1, Stärke, gemessen: Prüfen, ohne zu speichern Prüfen, ohne zu speichern echter Browser · stagingToken P-S2, Stärke, gemessen: Zurück ist immer möglich Zurück ist immer möglich 5 Versionen · Rollback P-S3, Stärke, gemessen: Selbstkontrolle nach dem Publish Selbstkontrolle nach dem Publish 7 artifact-Evals grün P-S4, Stärke, gemessen: Die Datenbank im Test ist echt Die Datenbank im Test ist echt Postgres · Flyway · validate P-W1, Schwäche, gemessen: Ein leeres PDF gilt als Erfolg Ein leeres PDF gilt als Erfolg MZP-131 · Fix MZP-142 wartet P-W2, Schwäche, Einschätzung: Der Weg ins Netz liegt außerhalb des Repos Der Weg ins Netz liegt außerhalb des Repos kein CI · nginx von Hand P-W3, Schwäche, Einschätzung: Große Bündel gehen durch den Modellkontext Große Bündel gehen durch den Modellkontext nur Inline-Inhalt P-W4, Schwäche, gemessen: Unbekannte Pfade melden 502 Unbekannte Pfade melden 502 /foo · /llms.txt Effizienz Kosten für Agent und Team Leistung 3,0 Beleg 2,5 E-S1, Stärke, gemessen: Wenige Aufrufe je Aufgabe Wenige Aufrufe je Aufgabe Median 2 · 2,8 im Mittel E-S2, Stärke, Einschätzung: Nichts doppelt senden Nichts doppelt senden stagingToken · fromSlug E-S3, Stärke, gemessen: Beschreibungen schrumpfen Beschreibungen schrumpfen 7.160 → 3.780 Zeichen E-S4, Stärke, gemessen: Die Ratschen halten den Bestand Die Ratschen halten den Bestand Code +56 % · Ausnahmen +3 E-W1, Schwäche, gemessen: Vier Tests brauchen 27 % der Zeit Vier Tests brauchen 27 % der Zeit KnowledgeMcpToolsTest · 81 s E-W2, Schwäche, gemessen: 42 Tools, mindestens neun Alt oder Wiki 42 Tools, mindestens neun Alt oder Wiki ≈ 29.700 Zeichen Beschreibung E-W3, Schwäche, gemessen: Zwei Typen brauchen vier Versuche Zwei Typen brauchen vier Versuche quadrant · radar (Haiku) E-W4, Schwäche, gemessen: Kosten werden gezählt, nicht gemessen Kosten werden gezählt, nicht gemessen Tokens und Zeit fehlen Agent-Usability Auskunft, Meldungen, Messung Leistung 4,0 Beleg 3,5 A-S1, Stärke, Einschätzung: Auskunft in Stufen Auskunft in Stufen Landkarte → getCapabilityFor A-S2, Stärke, gemessen: Fehler zeigen den Weg Fehler zeigen den Weg Notices mit Vorschlag A-S3, Stärke, gemessen: Gemessen statt behauptet Gemessen statt behauptet 15 von 15 · Sonnet 15/15 A-S4, Stärke, gemessen: Mensch und Agent am selben Graphen Mensch und Agent am selben Graphen Hotspots · Wünsche · Abfrage A-W1, Schwäche, gemessen: Die Messung deckt wenig ab Die Messung deckt wenig ab LLM-Stufe: 5 von 15 Aufgaben A-W2, Schwäche, gemessen: Das Gedächtnis wächst nur Das Gedächtnis wächst nur llms.txt 90 KB · 12 Wegwerf A-W3, Schwäche, gemessen: Meldungen, die irreführen Meldungen, die irreführen doppelte, falsche Hinweise A-W4, Schwäche, gemessen: Ticket und Code passen nicht immer Ticket und Code passen nicht immer MZP-100 doppelt · MZP-18 alt

Auf schmalen Schirmen seitlich wischen. Dieselben Befunde stehen weiter unten als Text.

Abb. 1: Stärken und Schwächen des MZP auf fünf Achsen. Die zwei Meter je Spalte zeigen Leistung (wie gut ist es) und Beleg (wie viel davon prüft ein Gate oder eine Messung), jeweils von 1 bis 5. Gezeichnet für diesen Bericht, Datenquelle sind die 40 Befunde unten.
Wertung je Achse in Zahlen
AchseLeistungBelegAbstandKernaussage
Design4,02,51,5Handwerk ohne Gate
Diagramm4,54,00,5Breit und gemessen; Politur und ein stiller Fehler
Publish4,03,50,5Der Weg trägt; Export, Deploy und Transport nicht
Effizienz3,02,50,5Gespart wird gezielt, gemessen kaum
Agent-Usability4,03,50,5Der klarste Vorsprung; die Messbreite fehlt
Mittel3,93,20,7Die Leistung eilt dem Beleg voraus.

Der Abstand zwischen Leistung und Beleg ist der eigentliche Befund. Er beträgt im Mittel 0,7 Punkte, bei Design aber 1,5: Dort ist am meisten gebaut und am wenigsten gesichert. Maßstab. Leistung: 5 ist Stand der Technik für diesen Zuschnitt ohne bekannte Lücke, 4 stark mit kleinen Lücken, 3 trägt, kostet aber spürbare Reibung, 2 Baustelle, 1 fehlt. Beleg: 5 heißt, jede Kernaussage hat ein Gate oder eine Messung gegen Produktion, 3 etwa die Hälfte, 1 nur Behauptung. Beides ist mein Urteil, keine Messung.

Die Empfehlung vorab

Erst die Ränder, dann der Glanz. Spur A (Tage): die zwei stillen Fehler schließen, den Phantomknoten im Mermaid-Import (MZP-135) und das leere PDF (MZP-131, Fix MZP-142), dazu die Eval-Messung auf alle 15 Aufgaben ausdehnen und Tokens und Zeit mitschreiben.

Spur B (Wochen): MZP-85 ziehen, den Simulationsmodus. Es ist die Extravaganz mit dem besten Verhältnis aus Beleg und Hebel: Der Spike ist fertig, das Schema steht, und drei Funde hängen daran (WebM, Klangspur, Schritt-Beschriftung).

Spur C (erst entscheiden): Tool-Profile, Upload-Schleuse für große Bündel, Design messbar machen. Isometrie (A6), Plotter (M3) und neue Wiki-Funktionen bleiben liegen. Begründung und Reihenfolge stehen weiter unten.

Die fünf Achsen im Einzelnen

Jede Achse hat vier Stärken und vier Schwächen, so wie sie in der Matrix stehen. Ein Absatz nennt Beleg und Quelle. „Gemessen“ heißt: Es steht eine Zahl aus einem Gate, Eval, Test, einer Zählung oder Live-Probe dahinter. „Einschätzung“ heißt: Ich schließe aus Lesen, Abwesenheit oder einem Einzelfall. „Selbst nachgeprüft“ heißt: Ich habe es in dieser Sitzung selbst gezählt, gelaufen oder abgerufen.

Design

Leistung 4,0Beleg 2,5Abstand 1,5

Das Haus kann viel und sieht erkennbar nach sich selbst aus. Fast nichts davon prüft ein Gate: Gestaltung ist hier Handwerk und keine Messgröße. Das ist die größte Lücke zwischen Leistung und Beleg im ganzen Haus.

Was trägt

  • D-S1Ein Vokabular, versioniert und unveränderlichgemessenselbst nachgeprüft

    mzone-ui 1.8.0 bringt 76 CSS-Klassen und rund 50 Module, dazu ein Dunkel/Hell-Theme über CSS-Variablen. Neun ältere Versionen werden weiter ausgeliefert, und /lib/ ist immutable: eine geänderte Bibliothek bekommt eine neue Nummer, eine veröffentlichte Seite ändert sich nie unter den Füßen.

    Quelle: getCapabilities, nginx-Konfiguration

  • D-S2Falsche Klassen fallen beim Publish aufgemessen

    Wer eine Klasse rät, bekommt beim Publish UNKNOWN_STYLE_CLASS als WARNING mit Vorschlag zurück, statt ungestyltes HTML zu veröffentlichen. Der Eval art-live-report zeigt es am 2. Oktober: mz-stat-label wird zu mz-stat__label korrigiert.

    Quelle: Eval-Report 2026-10-02, getCapabilities

  • D-S3Zehn Skins, vier Branding-Profilegemessenselbst nachgeprüft

    Zehn Diagramm-Skins (minimal, dark, full-editorial, quiet, kontrast, gematik, blueprint, terminal, journal, signal) plus eine freie custom-Variante, dazu vier Branding-Profile (nightline, ledger, monoblock, arcade) mit Farbrollen, Typografie und Voice. Ein Diagramm lässt sich damit umkleiden, ohne dass der Agent Farben anfasst.

    Quelle: DiagramVariant.java, getDesignMdFor

  • D-S4Handschrift-Stil mit Werkzeuggemessen

    analog@1.1.0 liegt versioniert unter /lib/, trägt 30 Bausteine und wird vom Server erklärt (getCapabilityFor('analog')). Der Render-Check misst, ob Text im Rahmen bleibt und ob fremde Elemente Knoten schneiden (FIGURE_FIT, FIGURE_COLLISION); der Tuschestrich wird beim Publish in Java gerechnet (TUSCHE_APPLIED), die Schriften kommen aus dem Haus statt von Google. Der Eval art-analog-tusche ist grün: 4 Schwellstriche, 2 Rahmen ohne Befund.

    Quelle: Eval-Report 2026-10-02, getCapabilities

Was kostet

  • D-W1Gestaltung wird kaum gemessenEinschätzungselbst nachgeprüft

    Der Zugänglichkeits-Blick (axe-core, WCAG 2.2 AA) ist ein Opt-in und steht standardmäßig auf false. Ein Pixel-Vergleich ist offen (E1 aus Band 4). Von 15 Eval-Aufgaben prüft eine die Zugänglichkeit und zwei die Geometrie (Text im Rahmen, Text in der viewBox); keine prüft, wie eine Seite aussieht. Was die Seiten gut aussehen lässt, merkt kein Gate, wenn es kippt. Der Schluss „kaum“ beruht auf Abwesenheit und ist deshalb eine Einschätzung.

    Quelle: validateArtifact-Beschreibung, Eval-Korpus, Band 4

  • D-W2Tokens nur als Fließtextgemessenselbst nachgeprüft

    getDesignMdFor liefert die vier Branding-Profile als Markdown. Als CSS-Variablen oder DTCG-JSON gibt es sie nicht (MZP-115, IDEA); ein Artefakt kann die Werte nicht als Datei beziehen, nur abschreiben. Der Token-Satz von mzone-ui selbst ist sauber dokumentiert — die Lücke betrifft die Profile.

    Quelle: MZP-115, lookupStyles('tokens')

  • D-W3Analog-Blätter stumm für Screenreadergemessen

    Beide veröffentlichten Blätter tragen je 41 Elemente mit tabindex='0', aber nur ein aria-label auf der ganzen Seite; Name und Erklärung stehen in data-name und data-desc und erreichen nur das Tooltip-Skript. Ein Screenreader landet auf 41 namenlosen Gruppen (MZP-140, IDEA) — der Stil verletzt seine eigene Regel „Form vor Farbe“. Die Zahl stammt aus dem Ticket, ich habe sie nicht nachgezählt.

    Quelle: MZP-140

  • D-W4Mehr Effekt als DatenEinschätzungselbst nachgeprüft

    27 Transition-Klassen, vier Effekt-Klassen und rund 50 Module für Optik, Physik und Energie stehen drei Daten-Klassen gegenüber (mz-table-wrap, mz-table, mz-stat). Für Berichte reicht das Vokabular bei Gerüst, Tabelle und Legende; wer Kennzahlen-Zeilen oder Vorher/Nachher-Gegenüberstellungen braucht, schreibt eigenes CSS — wie dieser Bericht. Wie viele der 448 Seiten das tun, habe ich nicht gezählt.

    Quelle: getCapabilities (styling, modules)

Was ich gesehen habe. Ich habe vier Live-Seiten im Browser angesehen. Der Diagramm-Viewer wirkt ausgearbeitet (schwebende Titelkarte, Suche, Kapitelleiste, Radar), die Analog-Musterkarte ist klar als Handschrift erkennbar, und die Architekturskizze ist sauber, aber die Zonenbeschriftung „BACKEND“ ist dort kaum zu lesen. Der Hausstil ist konsequent und nicht unverwechselbar: dunkle Fläche mit einem roten Akzent auf der einen, Papier mit Serife und Rost auf der anderen Seite gehören zu den häufigsten Defaults generierter Seiten. Das ist ein Geschmacksurteil und deshalb nicht in der Matrix gewichtet.

Diagramm

Leistung 4,5Beleg 4,0Abstand 0,5

Der stärkste Teil des Hauses: breit, getestet und mit eigenem Maß. Die Schwächen sind Politur im Layout, ein stiller Fehler im Import und eine Erstansicht, die bei flachen Abläufen zu klein ausfällt.

Was trägt

  • G-S145 Typen, vier Eingabewegegemessenselbst nachgeprüft

    DiagramType kennt 45 Typen, von flowchart, sequence und er über sankey und wardley bis medallion und polar. Eingaben: die JSON-Spec, Mermaid (flowchart, state, er, class), seit dem 2. Oktober ASCII-Skizzen, dazu Lage-Vorgaben (constraints[], höchstens 12), die Rang und Reihenfolge im Auto-Layout festlegen.

    Quelle: DiagramType.java, Evals dia-ascii-architecture und dia-constraints

  • G-S2Das Layout misst sich selbstgemessenselbst nachgeprüft

    validateDiagram meldet Kreuzungen, Überlappungen und Knicke als Zahlen (LAYOUT_QUALITY) und die Stellen als hotspots[] mit Ort und beteiligten Kanten. Ein Korpus aus 62 Graphen hält die Summen als Ratsche; der Property-Test über 300 Graphen hat seit E3 keine Verletzung mehr (vorher 50).

    Quelle: ratchet/layout-quality.txt, baseline.md

  • G-S3Viewer mit Tiefe, auch im Chatgemessen

    Der Viewer kann suchen, fokussieren, Erreichbarkeit verfolgen, Routen sondieren, ein Radar und eine Rollen-Linse zeigen, Steckbriefe öffnen, in Unterdiagramme springen und Kapitel abspielen. Der Chat-Viewer (MCP Apps) ist seit dem 29. September im echten Claude-Host nachgewiesen; Auswahl, Hotspots und Layout-Wünsche gehen als ein Kontextbericht zurück an den Agenten. Aus Berichten übernommen, im Host habe ich es nicht nachgespielt.

    Quelle: MZP-126, MZP-128, MZP-132, MZP-146

  • G-S4Der Kern ist hoch abgesichertgemessenselbst nachgeprüft

    Die Diagramm-Pakete erreichen zusammen 97,9 % Instruktionsabdeckung (55.345 Instruktionen, mein Lauf vom 2. Oktober), das Layout-Paket 99,3 %. Die Mutationsquote im delta-Paket liegt bei 78 % (Messung vom 3. September, seither nicht wiederholt): dort fangen die Tests nachweislich etwas, sie führen nicht nur Code aus.

    Quelle: jacoco-Lauf 2026-10-02, baseline.md

Was kostet

  • G-W1Die Layout-Politur stocktgemessenselbst nachgeprüft

    Das Eval-Diagramm dia-mermaid-flow (7 Knoten) hat 2 Kreuzungen und 12 Knicke, dia-architecture-auto 3 Kreuzungen, 8 Überlappungen und 24 Knicke. Im Korpus halbierte E3 die Kreuzungen (108 auf 54), verdoppelte aber die Überlappungen (112 auf 235) und trieb die Knicke von 576 auf 936. Der Tausch ist ehrlich dokumentiert („Der ehrliche Tausch“); die Ursache im Router, Kehrtwenden an der Quelle (N5), ist offen.

    Quelle: ratchet/layout-quality.txt, Evals 2026-10-02, mzp-48h-tausch

  • G-W2Ein stiller Phantomknotengemessen

    Eine Kante, deren Ende die Id eines Subgraphen ist, erzeugt im Mermaid-Import einen zusätzlichen Knoten, mit ok:true und ohne Notice (MZP-135, IDEA). Es war der einzige Fehlschlag der 15 LLM-Läufe vom 30. September und stand schon im Bericht vom 28.; ein Agent kann diesen Erfolg nicht als falsch erkennen. Dazu N4: Kanten über Ebenen (drillDown) werden nicht gegeneinander geprüft.

    Quelle: MZP-135, Eval-Report 2026-09-30

  • G-W3Erstansicht bei flachen Abläufen zu kleingemessenselbst nachgeprüft

    Vier Live-Diagramme im Browser (Chromium, 1280×900): die zwei breiten, flachen Abläufe mzp-48h-layout und mzp-48h-mcp-apps zeigen Knotentext mit 5 bis 6 px Höhe im Median; der Inhalt füllt dort 39 bis 46 % der viewBox. Ein kompakter Fluss kommt auf 14 px, ein nicht-interaktives Diagramm auf 19 px. Eine Stichprobe von vier Seiten bei einem Viewport; die Ursache habe ich nicht untersucht.

    Quelle: eigene Messung per Browser, 2026-10-02

  • G-W4Simulationsmodus wartetgemessen

    MZP-85 steht seit dem 7. September auf READY (P3); der Spike MZP-87 hat Schema und DOM-Vertrag bestätigt. Daran hängen der WebM-Export (A7), die Klangspur (D5) und die Schritt-Beschriftung aus dem LikeC4-Vergleich — alle drei bleiben blockiert, solange das Ticket nicht gezogen wird.

    Quelle: MZP-85, MZP-87, Band 4 (N6)

Publish

Leistung 4,0Beleg 3,5Abstand 0,5

Der Weg von der Datei zur Seite ist ausgereift und hat Sicherheitsnetze. Die Risiken liegen drumherum: im Export, im Deploy und beim Transport großer Bündel.

Was trägt

  • P-S1Prüfen, ohne zu speicherngemessen

    validateArtifact lädt die Seite in einem echten Browser (Konsolenfehler, Ausnahmen, fehlende Dateien, optional axe), liefert eine Preview-URL und einen stagingToken; publishArtifact nimmt das schon übertragene Bündel, es wird nur einmal gesendet. Review-Links halten bis zu 7 Tage.

    Quelle: Eval art-report, getCapabilities

  • P-S2Zurück ist immer möglichgemessen

    Je Slug bleiben bis zu 5 Versionen, rollbackArtifact stellt sie her; Patch-Publish und fromSlug lassen unveränderte Dateien stehen (Eval art-patch: der Diff zeigt nur index.html).

    Quelle: getCapabilities, Eval art-patch

  • P-S3Selbstkontrolle nach dem Publishgemessen

    Der Server prüft Erreichbarkeit (HTTP 200, Content-Type) und Render-Fehler; die sieben artifact-Aufgaben der Evals liefen am 2. Oktober gegen Produktion grün. Live-Reports (E11) rechnen _data.json beim Abruf aus den Quellen, der Snapshot ist die Deklaration und läuft durch Version und Rollback.

    Quelle: Eval-Report 2026-10-02, AGENTS.md

  • P-S4Die Datenbank im Test ist echtgemessenselbst nachgeprüft

    Postgres-Testcontainer, Flyway-Migrationen laufen durch, ddl-auto=validate gleicht jede Spalte samt Typ ab; zwei Guard-Tests halten das fest. Eine kaputte Migration fällt in der Suite auf, nicht erst beim Deploy. Mein Lauf vom 2. Oktober: 2.439 Tests, 0 Fehler, 2 übersprungen.

    Quelle: AGENTS.md, mvn test -o 2026-10-02

Was kostet

  • P-W1Ein leeres PDF gilt als Erfolggemessenselbst nachgeprüft

    Der Export (MZP-76) wandelt gespeichertes HTML per pandoc. Bei Bündeln, die im Browser rendern (Slidev, SPA-Hülle), entsteht ein PDF mit leerem #app — ohne Fehler und ohne Hinweis (MZP-131, IDEA). Der Fix, page.pdf im Render-Dienst, steht als MZP-142 auf READY und ist nicht gezogen. Zusatz aus meinem Lauf: die zwei übersprungenen Tests sind genau die Export-Tests (pandoc fehlt auf diesem Rechner), die Strecke wird hier also nicht geprüft.

    Quelle: MZP-131, MZP-142, mvn test -o

  • P-W2Der Weg ins Netz liegt außerhalb des ReposEinschätzungselbst nachgeprüft

    Im Repo liegt keine CI-Konfiguration; der Deploy-Weg steht laut AGENTS.md eine Ebene höher; die Evals nach dem Deploy laufen von Hand (Skill /mzp-eval, „nicht automatisch, nicht in CI“); nginx-Änderungen müssen einzeln auf dem Server eingespielt werden (Commit-Text: „nginx has to be applied“). Folgen sind dokumentiert: MZP-45 (P0, 29. August: alle öffentlichen Seiten 401 nach einer nginx-Regel), ein Stash mit der nginx-Konfiguration für die Bühne, der am 14. September noch unangewendet lag (MZP-18), ein Build-Befund vom 9. September (alte Klasse im inkrementellen Build, mvn clean package nötig; aus einer Arbeitsnotiz). Dass nirgends sonst eine CI läuft, kann ich aus dem Repo nicht ausschließen.

    Quelle: Repo-Wurzel, deployment/, MZP-45, MZP-18-Kommentar

  • P-W3Große Bündel gehen durch den ModellkontextEinschätzung

    publishArtifact und validateArtifact nehmen Inhalt nur inline oder als fromSlug-Verweis; der REST-Weg verlangt OAuth, das ein MCP-Agent nicht hat. Ein 70-KB-Bündel muss also Zeichen für Zeichen durch den Agenten. Am 2. Oktober ging dabei bei einem Patch-Republish ein einzelner Koordinatenpunkt verloren, aufgefallen nur durch einen Byte-Vergleich (Wettbewerbswerk wer-a-sagt). Ein Einzelfall, aber ein stiller.

    Quelle: getCapabilities (conventions.rest), Arbeitsnotiz 2026-10-02

  • P-W4Unbekannte Pfade melden 502gemessenselbst nachgeprüft

    Jeder nicht zugeordnete Pfad an der Wurzel (/foo, /llms.txt) antwortet 502 mit „Der Dienst ist vorübergehend nicht erreichbar“ statt 404; der nginx-Catch-all zeigt auf einen Upstream, der nicht antwortet. Die llms.txt-Konvention erwartet die Datei an der Wurzel, sie liegt unter /published/llms.txt. Außerdem: /published/mzp-api/ mit Schrägstrich antwortet 404, ohne Schrägstrich 200. Das war schon der Anlass von MZP-18 („Web-Root liefert 502 statt 404“). Alles am 2. Oktober live geprüft.

    Quelle: Live-Proben 2026-10-02, deployment/nginx

Effizienz

Leistung 3,0Beleg 2,5Abstand 0,5

Die schwächste Achse. Gespart wird gezielt bei Beschreibungen und Doppelsendungen, aber gemessen werden nur Aufrufe. Tokens und Zeit fehlen, und die Oberfläche wächst schneller, als sie schrumpft.

Was trägt

  • E-S1Wenige Aufrufe je Aufgabegemessen

    15 deterministische Aufgaben brauchen 42 Aufrufe (2,8 im Mittel); in der LLM-Stufe liegt der Median bei 2 Aufrufen je Aufgabe (30. September).

    Quelle: Eval-Reports 2026-10-02 und 2026-09-30

  • E-S2Nichts doppelt sendenEinschätzungselbst nachgeprüft

    stagingToken (ein Upload für validate und publish), fromSlug-Verweise, Patch-Publish, queryDiagram (den Graphen befragen, ohne das JSON zu laden) und getCapabilityFor (Auskunft nach Bedarf) sparen Kontext. Wie viel, ist nicht gemessen; deshalb eine Einschätzung.

    Quelle: getCapabilities, Tool-Katalog

  • E-S3Beschreibungen schrumpfengemessen

    Die Beschreibung von validateDiagram fiel von 7.160 auf 3.780 Zeichen (MZP-127). Die Messung zeigte: A und B sind gleich gut (Sonnet 15/15 beide, Haiku 14/15 gegen 13/15). Beschreibungstext ist in diesem Korpus kein Hebel, Fehlermeldungen sind es — ein nützlicher Befund, weil er Arbeit erspart.

    Quelle: Band 4 (C1, N1), MZP-127

  • E-S4Die Ratschen halten den Bestandgemessenselbst nachgeprüft

    Fünf Gates (Dateigröße, Grenzen, Kontexte, Abdeckung, Layout-Qualität). Seit der Baseline vom 3. September wuchs der Code um 56 % und die Tests um 80 %; die Register-Einträge bei der Dateigröße stiegen von 27 auf 30, die bei den Grenzkanten von 59 auf 61, die Abdeckung von 92,0 auf 94,5 %. Das ist die Aufgabe einer Ratsche: Der Bestand wird nicht schlechter, er wird aber auch nicht besser.

    Quelle: baseline.md, ratchet/*.txt, mvn test -o

Was kostet

  • E-W1Vier Tests brauchen 27 % der Zeitgemessenselbst nachgeprüft

    KnowledgeMcpToolsTest braucht 81 s für 4 von 2.439 Tests, 27 % der summierten Klassenzeit — dieselben 81 s wie in der Baseline vom 3. September. Die Ursache ist seit vier Wochen ungeprüft (MZP-68, IDEA); der Verdacht, fehlende Indizes auf der Abfrage, wäre ein Produktivbefund. Die ganze Suite läuft 5:38 min (Baseline: 3:34 min bei 1.356 Tests). Ausgerechnet der langsamste Test gehört zur Wiki-Abfrage, die als deprecated gilt.

    Quelle: mvn test -o 2026-10-02 (surefire), baseline.md, MZP-68

  • E-W242 Tools, mindestens neun Alt oder Wikigemessenselbst nachgeprüft

    getCapabilities nennt 42 Tools. Zwei sind als Alias gekennzeichnet (publishRawPage, publishRawPageCompressed), sieben gehören zu Wiki und Templates (knowledgeQuery, lintWiki, mergePageContext, publishPage, getTemplate, listTemplates, extractTemplate); die Zuordnung ist meine. Ihre Beschreibungen umfassen zusammen mindestens 29.700 Zeichen (Annotationstexte, ohne zusammengesetzte Konstanten), die ein Host beim Laden des Katalogs mitnimmt.

    Quelle: getCapabilities, Quelltext @McpTool (eigene Zählung)

  • E-W3Zwei Typen brauchen vier Versuchegemessen

    In der LLM-Messung vom 30. September (Haiku 4.5, je 3 Läufe) brauchte dia-quadrant-longlabels in allen Läufen 4 Aufrufe mit je 2 abgelehnten Eingaben, dia-radar-wrapped im Median 4 (2 bis 4). Der Hebel ist laut eigener Auswertung die Fehlermeldung: MZP-134 brachte Mermaid von 13 auf 14 von 15. Ein Modell, drei Läufe: Streuung ist nicht ausgeschlossen.

    Quelle: Eval-Report 2026-09-30

  • E-W4Kosten werden gezählt, nicht gemessengemessen

    Der Eval-Lauf zählt Aufrufe. Millisekunden fehlen („ms ist nicht gemessen, weil der Skill über MCP keine Zeitstempel sieht“), Tokens stehen in keinem Bericht. Ob eine Tool-Diät etwas bringt oder ein Upload-Weg lohnt, lässt sich damit nicht beantworten.

    Quelle: Eval-Report 2026-10-02

Fluss. 108 Commits in 14 Tagen, 35 davon am 1. Oktober. Drei Umsetzungen (A4/N7, D2, D3) liefen ohne Ticket in Produktion, zehn Tickets warteten auf REVIEW. Am 2. Oktober sind alle zehn auf DONE und die drei Umsetzungen als MZP-146 bis 148 verbucht — das Muster „gebaut vor verbucht“ ist nachgeholt, nicht verschwunden.

Agent-Usability

Leistung 4,0Beleg 3,5Abstand 0,5

Hier liegt der klarste Vorsprung gegenüber einem gewöhnlichen Publishing-Dienst: Der Server erklärt sich selbst, meldet strukturiert und lässt sich messen. Die Lücken sind die Messbreite und Fehler, die als Erfolg zurückkommen.

Was trägt

  • A-S1Auskunft in StufenEinschätzungselbst nachgeprüft

    getCapabilities liefert die Landkarte in einem festen Byte-Budget; Details holt der Agent bei Bedarf über getCapabilityFor, lookupStyles und listCapabilities. Ich habe diesen Weg in dieser Sitzung selbst benutzt und er trägt; eine Zahl dafür gibt es nicht, deshalb Einschätzung.

    Quelle: getCapabilities, listCapabilities, lookupStyles

  • A-S2Fehler zeigen den Weggemessen

    Meldungen tragen Code, Schwere und Vorschlag (INVALID_SLUG mit eval-slug-test); eine unbekannte Mermaid-Syntax nennt die vier Dialekte (MZP-134). Gemessen: Haiku 4.5 stieg von 13 auf 14 von 15, die abgelehnten Eingaben bei dia-architecture-auto halbierten sich (4 auf 2).

    Quelle: Eval-Report 2026-09-30

  • A-S3Gemessen statt behauptetgemessen

    MZP-113: 15 Aufgaben gegen Produktion, sechs Läufe seit dem 23. September, grün von 5 auf 15, keine Regression, kein UNEXPECTED_PASS. Die LLM-Stufe misst mit Haiku 4.5 und Sonnet, wie viele Aufrufe ein Agent bis zum Ergebnis braucht. Das ist die Art Beleg, die dem Rest des Hauses fehlt.

    Quelle: Eval-Reports 2026-09-23 bis 2026-10-02

  • A-S4Mensch und Agent am selben Graphengemessen

    Im Chat-Viewer gehen Auswahl, Hotspot-Marker und Layout-Wünsche als ein Kontextbericht an den Agenten, der sie als constraints[] zurückschickt; queryDiagram beantwortet „was hängt von db ab?“, ohne das ganze JSON zu laden. Beides ist live und abgenommen (MZP-132, 133, 146).

    Quelle: MZP-132, MZP-133, MZP-146

Was kostet

  • A-W1Die Messung deckt wenig abgemessen

    Die LLM-Stufe lief zuletzt am 30. September über fünf Diagramm-Aufgaben mit Haiku (Sonnet am 29.). Für die Artefakt-Aufgaben, edge, ASCII, analog und constraints gibt es keine LLM-Messung; dia-constraints hat nicht einmal einen Nachprüf-Schritt. Ob ein Agent eine ASCII-Skizze ohne Korrekturrunde zeichnet, nennt Band 4 „nicht sicher“ — ungemessen.

    Quelle: Eval-Reports 2026-10-02 und 2026-09-30, Band 4

  • A-W2Das Gedächtnis wächst nurgemessenselbst nachgeprüft

    /published/llms.txt hat 89.681 Byte und 444 Einträge, gedacht als schlanker Index; 12 Zeilen tragen „Abnahme“ oder „Wegwerf“ in Name oder Beschreibung. Der Band-4-Bericht ist 94 KB groß, mit vier Abgleichsstempeln im Kopf und drei Empfehlungsständen, von denen zwei „abgelöst“ heißen. Berichte dienen dem Haus als Gedächtnis, und sie werden angehängt statt verdichtet.

    Quelle: Live-Abruf 2026-10-02 (eigene Zählung)

  • A-W3Meldungen, die irreführengemessen

    Beobachtungen aus dem Eval vom 2. Oktober: Bei art-broken endet die Fehlermeldung mit dem Hinweis, renderStrict=false melde „ohne ok zu kippen“, obwohl ok hier false ist; art-a11y-check liefert denselben Befund doppelt (MISSING_ALT und A11Y_IMAGE_ALT); der Klassenvorschlag nennt Kind-Klassen (mz-stat__label), die in der Namensliste nicht stehen und nur über lookupStyles zu finden sind.

    Quelle: Eval-Report 2026-10-02, Beobachtungen

  • A-W4Ticket und Code passen nicht immergemessenselbst nachgeprüft

    Die Regel „Ticket-Key im Kommentar ist die Brücke zum Backlog“ hat Löcher. git log --grep MZP-100 findet zwei Funktionen: 12 Commits zum Rundenpult der Hall of Fame (5. September) und 2 zur Diagramm-Hilfe (12. September), nur Letztere ist das Backlog-Ticket. MZP-18 (angelegt vor 39 Tagen) steht noch auf READY, obwohl die Bühne auf main ist und die Wurzel sie ausliefert. MZP-72 scheint dieselbe Funktion zu beschreiben wie MZP-92 (DONE, 9. September). Zwei Stashes liegen ungenutzt im Arbeitsverzeichnis.

    Quelle: git log, backlogGet MZP-18/72/92, Live-Probe /

Was die Zahlen sagen

Die Baseline vom 3. September (MZP-66) ist die einzige Messreihe, die das Haus über vier Wochen hat. Die rechte Spalte stammt aus meinem Lauf vom 2. Oktober, soweit nichts anderes dasteht.

Kennzahlen im Vergleich
Größe3. September2. OktoberVeränderung
Quelltext (main)29.323 Zeilen, 278 Dateien45.625 Zeilen, 397 Dateien+56 %, +43 %
Testcode24.590 Zeilen, 177 Dateien42.518 Zeilen, 330 Dateien+73 %, +86 %
Tests1.3562.439 (2 übersprungen)+80 %
Laufzeit der Suite3:34 min5:38 min+58 %
Abdeckung (Instruktionen)92,0 %94,5 %+2,5 Punkte
Register: Dateigröße, Grenzkanten27, 5930, 61+3, +2
Layout-Korpus: Kreuzungen, Überlappungen, Knicke108, 112, 576 (23.9., vor E3)54, 235, 936−50 %, +110 %, +63 %
Eval-Aufgaben grün5 von 6 (23.9.)15 von 15kein Rückschritt
Backlognicht erhoben105 DONE, 27 offen (3 READY, 1 DOING, 23 IDEA)
Commitsnicht erhoben479 seit dem 4. August108 in 14 Tagen

Zwei Lesarten stehen dabei gegeneinander. Die gute: Das Haus ist um die Hälfte gewachsen, ohne dass die Gates reißen, und pro Test läuft die Suite schneller als im September. Die unbequeme: Die Layout-Summen zeigen, dass mehr Aufwand nicht überall mehr Qualität bedeutet. Und die Eval-Reihe, das beste Maß des Hauses, deckt nur einen Teil dessen ab, was gebaut wird.

Was als Nächstes gebaut werden sollte

Die Reihenfolge folgt einer Regel: zuerst, was Agenten stillschweigend falsch liegen lässt, dann was die Messung breiter macht, dann der Glanz. Die Nummern sind eine Rangfolge. Die drei Spuren berühren verschiedene Dateien und können parallel laufen: A den Importer und Export, B den Viewer, C braucht erst eine Entscheidung.

  1. Stille Fehler schließen

    Spur A · Aufwand: Tage · MZP-135, N4, MZP-131, MZP-142

    MZP-135: Eine Kante auf eine Subgraph- oder Zonen-Id wird an die Zone gebunden oder meldet eine Notice, statt einen Phantomknoten anzulegen. Mermaid und ASCII teilen sich das Paket importer/, die Prüfung gilt für beide. Danach N4 (DRILLDOWN_EDGE_MISSING). Parallel und in Stunden: Der pandoc-Weg meldet einen leeren Rumpf als Notice, statt ein leeres PDF als Erfolg auszugeben; danach MZP-142 (page.pdf im Render-Dienst) ziehen.

    Warum zuerst: Es sind die belegten Fehler, die ein Agent nicht merken kann. Messgröße: dia-mermaid-flow 3 von 3 mit 7 Knoten; legacy-frontend-migration-playbook liefert ein PDF mit Text.

  2. Die Messung auf alle 15 Aufgaben ausdehnen und Kosten mitschreiben

    Spur A · Aufwand: Tage, kein Produktcode · evals/, run-llm.py

    Die LLM-Stufe für die Artefakt-Aufgaben, edge, ASCII, analog-tusche und constraints (diese mit Nachprüf-Schritt), mit Haiku und Sonnet; Tokens und Dauer je Lauf in results.json. Ohne diese Zahlen bleibt jede Entscheidung über Tool-Diät, Upload-Weg oder Beschreibungstexte ein Bauchgefühl.

    Messgröße: ein Bericht, der je Aufgabe Erfolg, Aufrufe, Tokens und Zeit nennt.

  3. Fehlermeldungen nach dem Mermaid-Muster für quadrant und radar

    Spur A · Aufwand: Tage · diagram/types

    MZP-134 brachte Mermaid von 13 auf 14 von 15, indem die Meldung die gültigen Dialekte nennt. Die zwei Typen, die in der Messung vier Aufrufe brauchten, sind der nächste Hebel: Die Meldung nennt die gültigen Felder und zeigt ein Minimalbeispiel.

    Messgröße: Median von 4 auf 2 Aufrufe bei denselben fünf dia-Aufgaben.

  4. Randpfade und Hygiene

    Spur A · Aufwand: Stunden · nginx, llms.txt, Backlog

    Der nginx-Catch-all antwortet 404 statt 502, und /llms.txt wird an der Wurzel angeboten. Die llms.txt lässt Abnahme- und Wegwerf-Seiten aus und bekommt eine Größe als Ziel. Im Backlog: MZP-18 abschließen oder den Rest benennen, MZP-72 als Duplikat von MZP-92 schließen, MZP-84 und MZP-35 (ohne Rumpf) klären, die sieben Tickets aus dem Wiki- und Wissensbereich (MZP-47, 48, 65, 69, 103, 114, 116) parken. Die zwei Stashes entscheiden und den doppelten Schlüssel MZP-100 im Backlog vermerken.

    Messgröße: /foo antwortet 404; die llms.txt liegt unter einer gesetzten Größe.

  5. MZP-85 ziehen: der Simulationsmodus

    Spur B · Aufwand: Wochen · viewer.js, SimulationValidator · schaltet A7 und D5 frei

    Das Glanzstück, weil vier Gründe zusammenfallen. Der Spike MZP-87 ist fertig, Schema (meta.simulation) und DOM-Vertrag stehen. Es ist reine Viewer-Arbeit ohne Eingriff in Layout oder Router. WebM (A7), Klangspur (D5) und die Schritt-Beschriftung hängen daran. Und die Bewegung läuft von selbst (autoplayMs), Bedienung ist Zugabe.

    Schritt 1 bleibt der offset-path-Prototyp gegen atlas-plate-ii-mzone, das einzige Restrisiko; er braucht einen echten Browser. Danach M1, das Blatt zeichnet sich selbst (pathLength und stroke-dashoffset stecken schon im Snippet), als verwandter zweiter Schritt, der denselben Aufnahmeweg für WebM nutzen kann. Eine Klangspur würde ich direkt mit Web Audio bauen, statt Tone.js hereinzuholen; das ist eine Einschätzung.

    Messgröße: atlas-plate-ii-mzone läuft als Engine-Diagramm mit Play, Schritt und Protokoll; reduced-motion lässt Token und Timer weg.

  6. Entscheidung: Tool-Profile

    Spur C · Aufwand: Tage, nach Punkt 2 · PublisherMcpTools

    Ein Profil nimmt Alias- und Wiki-Tools aus dem Katalog, mindestens 9 von 42. Das berührt den Wiki-Bestand, der als deprecated geführt wird. Ob abgebaut oder nur ausgeblendet wird, ist eine Entscheidung des Auftraggebers und keine Reparatur. Erst nach Punkt 2 sinnvoll, weil sich die Ersparnis sonst nicht in Tokens beziffern lässt.

  7. Spike: Upload-Schleuse für große Bündel

    Spur C · Aufwand: Wochen · ArtifactService, mzone-mcp-common

    Eine kurzlebige, einmalige Upload-URL im Muster von previewToken und stagingToken: Ein Agent mit Shell schickt das Bündel per curl und übergibt nur die Kennung an validateArtifact. Das spart Kontext und schließt die stille Fehlerquelle „Zeichen für Zeichen durch das Modell“. Offen ist das Sicherheitsmodell (Token, Größe, Lebensdauer), deshalb ein Spike. Der Vorschlag stammt von mir und steht in keinem der bisherigen Berichte.

  8. Design messbar machen

    Spur C · Aufwand: Wochen, gestaffelt · MZP-140, MZP-115, N8, E1

    Zuerst a11y als Standard auf true (WARNING, ändert ok nicht, kostet bis zu 3 s), dann MZP-140 (Screenreader-Rollen für Analog-Blätter), dann N8 und E1 (visuelles Diff als Review-Beilage, daraus die Pixel-Ratsche), zuletzt MZP-115 (Token-Export). Ziel ist, den Abstand von 1,5 Punkten zwischen Leistung und Beleg auf der Design-Achse zu schließen.

Hebel gegen Aufwand

Dieselben Punkte als Matrix. Der Hebel ist meine Einschätzung aus dem Beleg, den ein Punkt bereits hat, und aus dem, woran er hängt.

  • 1Spur A, Ränder
  • 5Spur B, Glanz
  • 6Spur C, entscheiden
  • –bleibt liegen
Hebel hoch · Stunden: 1Wächter für leere PDFs4nginx-Catch-all auf 404
Hebel hoch · Tage: 1MZP-135 und N41MZP-142 page.pdf2Messung auf 15 Aufgaben, mit Kosten
Hebel hoch · Wochen: 5MZP-85 Simulationsmodus
Hebel mittel · Stunden: 4llms.txt schlank, Backlog-Hygiene8a11y als Standard
Hebel mittel · Tage: 3Meldungen für quadrant und radar5M1 Blatt zeichnet sich selbst6Tool-Profile8MZP-140 Screenreader
Hebel mittel · Wochen: 5A7 WebM und Share-Card7Upload-Schleuse (Spike)8Pixel-Vergleich (N8, E1)
Hebel gering · Stunden:
Hebel gering · Tage: 8MZP-115 Token-Export–K1 Backlog-Brett
Hebel gering · Wochen: –A6 Isometrie–M3 Plotter-Export–M2 svg2roughjs

Was liegen bleibt, und warum

A6 Isometrie ist groß und hat kein Ticket. M3 Plotter-Export lohnt laut Band 5 nur, wenn ein Plotter im Haus steht. M2 svg2roughjs bringt eine zweite Bibliothek mit und hat einen offenen Spike. C5 ist nur ein Dokument. D5 hängt an Punkt 5. K1 ist niedrig priorisiert. Neue Wiki-Funktionen gelten als deprecated. Keine dieser Ideen ist schlecht; keine löst einen Schmerz, der belegt ist.

Wo dieser Bericht irren kann

Quellen