Skip to content

Phase 5, Teil 1: was sonst mit den Herkunftsrepos verschwunden wäre - #152

Merged
malkreide merged 2 commits into
mainfrom
claude/mcp-auditor-consolidation-kb45um
Aug 11, 2026
Merged

Phase 5, Teil 1: was sonst mit den Herkunftsrepos verschwunden wäre#152
malkreide merged 2 commits into
mainfrom
claude/mcp-auditor-consolidation-kb45um

Conversation

@malkreide

Copy link
Copy Markdown
Owner

Ein archiviertes Repository fährt keine Workflows mehr. Alles, was nur dort lief, hört damit auf — ohne dass etwas rot wird. Genau die Fehlerklasse, gegen die diese Repositories geschrieben sind, an ihnen selbst. Vor dem Archivieren stand deshalb die Inventur.

Die Inventur

Was Herkunft Stand vorher
validate.sh + pytest alle drei hier, seit 2b-iv
Katalog-Drift (weekly-drift.yml) fidelity hier als fidelity/14, offline
Tag ↔ CHANGELOG fidelity hier als audit/13
GitHub-Description alle drei entfällt mit den Repos
Import gegen die gepinnte mcp transport fehlte
sdk-drift.yml transport fehlte

Die zwei Lücken, beide in transport

transport/12 — die Vorlage importiert gegen die gepinnte SDK. Dessen CI war die einzige Stelle, die reference/patterns.py gegen die echte SDK-Oberfläche hielt statt gegen ihren eigenen Text. Hier übersetzte audit/10 sie nur, und compileall beweist weniger, als es klingt: Die Vorlage importiert from mcp.server.mcpserver import MCPServer, und die 1.x-Fassung (mcp.server.fastmcp) gibt es in 2.0.0 nachweislich nicht mehr. Ein Import auf ein Modul, das es nicht mehr gibt, parst einwandfrei.

sdk-drift.yml ist mitgezogen und liest den Pin jetzt aus requirements-reference.txt statt aus einer fremden ci.yml.

Die beiden sind eine Zusage in zwei Hälften: Der Pin (mcp==2.0.0) macht den PR-Lauf reproduzierbar, der Wochenlauf macht die Drift sichtbar. Einzeln ist jede eine halbe.

G9 hat einen zweiten Gegenstand

Die Import-Mechanik stand in probe/3 und hatte genau einen Anlass («lädt die Vorlage überhaupt?»). transport/12 bringt einen zweiten, aus einem anderen Grund («beschreibt sie noch die Oberfläche, die es gibt?»). Zwei Gründe, ein Mechanismus — tools/gates/references.py::python_imports.

Und die Auslagerung hat sofort etwas gekostet. Das Gate übernahm zunächst den _-Filter von python_sources, und vier Mutationen von probe/3 wurden damit grün — sie legen eine kaputte _mutant.py ab. Die Mutationssuite hat es beim ersten Lauf gemeldet, einen Tag nach ihrem Einzug; ohne sie wäre probe/3 still schmaler geworden.

G13 braucht keine Bindung mehr

Sein Gegenstand waren die Descriptions der drei Herkunftsrepos — die verschwinden mit ihnen. Die Description dieses Repos prüft repo-description.yml seit jeher. G13 steht damit ohne zweiten Fall da; das gehört benannt und nicht durch eine erfundene Bindung zugedeckt.

Was noch nicht drin ist

Der Archiv-Schalter und der Release-Schnitt (für den Pin in mcp-continuous-auditor) liegen beim Betreiber — siehe die begleitende Meldung.

Test

37 checks, all passed   (audit 15, probe 9, fidelity 6, transport 7)
1693 passed

Generated by Claude Code

claude added 2 commits August 11, 2026 11:02
Ein archiviertes Repository faehrt keine Workflows mehr. Alles, was nur dort
lief, hoert damit auf — OHNE dass etwas rot wird. Genau die Fehlerklasse,
gegen die diese Repositories geschrieben sind, an ihnen selbst. Vor dem
Archivieren stand deshalb die Inventur, und sie hat zwei Luecken gefunden,
beide in mcp-transport-hardening-skill:

transport/12 — die Vorlage importiert gegen die gepinnte SDK. Dessen CI war
die einzige Stelle, die reference/patterns.py gegen die ECHTE SDK-Oberflaeche
hielt statt gegen ihren eigenen Text. Hier uebersetzte audit/10 sie nur, und
`compileall` beweist weniger, als es klingt: Die Vorlage importiert
`from mcp.server.mcpserver import MCPServer`, und die 1.x-Fassung
(`mcp.server.fastmcp`) gibt es in 2.0.0 nachweislich nicht mehr. Ein Import
auf ein Modul, das es nicht mehr gibt, parst einwandfrei.

sdk-drift.yml ist mitgezogen und liest den Pin jetzt aus
requirements-reference.txt statt aus einer fremden ci.yml. Die beiden sind
eine Zusage in zwei Haelften: Der Pin macht den PR-Lauf reproduzierbar, der
Wochenlauf macht die Drift sichtbar.

G9 HAT DAMIT EINEN ZWEITEN GEGENSTAND — die Schwelle, ab der dieses
Repository verallgemeinert. Die Import-Mechanik kam aus probe («laedt die
Vorlage ueberhaupt?») und hat mit transport einen zweiten Anlass aus einem
ANDEREN Grund («beschreibt sie noch die Oberflaeche, die es gibt?»).

UND DIE AUSLAGERUNG HAT SOFORT ETWAS GEKOSTET. Das Gate uebernahm zunaechst
den `_`-Filter von python_sources, und vier Mutationen von probe/3 wurden
damit GRUEN — sie legen eine kaputte _mutant.py ab. Die Mutationssuite hat es
beim ersten Lauf gemeldet, einen Tag nach ihrem Einzug; ohne sie waere probe/3
still schmaler geworden.

G13 braucht keine Bindung mehr: Sein Gegenstand waren die Descriptions der
drei Herkunftsrepos, und die verschwinden mit ihnen. Die Description dieses
Repos prueft repo-description.yml seit jeher.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014d5xWfUNe6zewzHwo5id23
`skills/mcp-transport-hardening/reference/patterns.py` importiert pytest auf
Modulebene: Der Skill zeigt zu jeder Regel ein Testrezept, und die Rezepte
sind Teil dessen, was kopiert wird. Wer die Vorlage uebernimmt, uebernimmt sie
mitsamt ihren Tests.

`lint.yml` installiert requirements-reference.txt, aber kein pytest — und
`transport/12` hat es prompt gemeldet, mit der richtigen Datei im Befund. Das
Herkunftsrepo installierte `mcp==2.0.0 pytest==9.1.1` aus genau diesem Grund
in einem Zug; hier steht der Pin jetzt neben dem der SDK.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014d5xWfUNe6zewzHwo5id23
@malkreide
malkreide marked this pull request as ready for review August 11, 2026 11:27
@malkreide
malkreide merged commit f076d64 into main Aug 11, 2026
5 checks passed
@malkreide
malkreide deleted the claude/mcp-auditor-consolidation-kb45um branch August 11, 2026 11:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants