Phase 5, Teil 1: was sonst mit den Herkunftsrepos verschwunden wäre - #152
Merged
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
validate.sh+ pytestweekly-drift.yml)fidelity/14, offlineaudit/13mcpsdk-drift.ymlDie zwei Lücken, beide in transport
transport/12— die Vorlage importiert gegen die gepinnte SDK. Dessen CI war die einzige Stelle, diereference/patterns.pygegen die echte SDK-Oberfläche hielt statt gegen ihren eigenen Text. Hier übersetzteaudit/10sie nur, undcompileallbeweist weniger, als es klingt: Die Vorlage importiertfrom 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.ymlist mitgezogen und liest den Pin jetzt ausrequirements-reference.txtstatt aus einer fremdenci.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/3und hatte genau einen Anlass («lädt die Vorlage überhaupt?»).transport/12bringt 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 vonpython_sources, und vier Mutationen vonprobe/3wurden damit grün — sie legen eine kaputte_mutant.pyab. Die Mutationssuite hat es beim ersten Lauf gemeldet, einen Tag nach ihrem Einzug; ohne sie wäreprobe/3still 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.ymlseit 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
Generated by Claude Code