Claude Code — 05.09.2026, 14:48–15:33 Uhr (ca. 45 Min.)
„Markdown-Dateien Diff-Viewer“ · 6 von Jorge, 33 von Claude · Claude Code 2.1.260
Für die Website gekürzt: ohne Werkzeugergebnisse und ohne Claudes Denkprozess, jeder Werkzeugaufruf als eine Zeile mit seiner Beschreibung. Vollständig in der Anlage.
Jorge · 14:48
hi claude, kannst du mir ein programm bauen, in das ich 2 .md dateien reinladen kann, um mir visuell die unterschiede anzeigen lassen zu können?
Claude · 14:48
→ Bash — List folder and read memory.md
→ Bash — Read about_claude.md and experience.md
→ Bash — Read latest memory.md entries
→ Skill
Ich hab die drei Dateien gelesen — Stand: 04.09., Doku-Korrektur in `00_methode.md`, sieben Tage bis zur Abgabe. Zum Vergleichswerkzeug:
Ich baue dir eine einzelne HTML-Datei, die du lokal öffnen kannst — zwei Dateien reinziehen, Unterschiede zeilen- **und** wortweise farbig markiert. Kein Upload, alles läuft im Browser.
→ Bash
→ Bash
→ Bash — Create standalone local HTML file
→ Artifact — Zwei Markdown-Dateien laden und die Unterschiede zeilen- und wortweise nebeneinander sehen.
Fertig. **Gegenlesen** — zwei Fassungen, nebeneinander:
**Lokal:** `werkzeuge/gegenlesen.html` — doppelklicken, öffnet im Browser.
**Im Web:** https://claude.ai/code/artifact/5daaaaf1-5a6b-4d3c-85f9-492f7e31d187 (privat, nur du)
Beide sind dieselbe Datei. Die Dateien, die du reinziehst, verlassen deinen Rechner nicht — der Vergleich passiert komplett im Browser.
Was drin ist:
- **Wortgenau**, nicht nur zeilenweise: bei „gezeigt" → „gelesen" ist nur das eine Wort markiert, nicht die ganze Zeile
- **Nebeneinander** oder **untereinander** umschaltbar
- **Nur Änderungen** klappt unveränderte Passagen weg — bei langen Texten der Unterschied zwischen brauchbar und unbrauchbar
- <kbd>n</kbd>/<kbd>p</kbd> springt von Änderung zu Änderung
- Beim Öffnen liegt ein Beispiel drin, damit du siehst, was passiert; die erste echte Datei ersetzt es
Was es *nicht* macht: Es vergleicht den Markdown-Quelltext, nicht die gerenderte Ansicht. Für Textfassungen ist das meiner Meinung nach das Richtige — du siehst auch, wenn sich nur eine Überschriftenebene ändert. Wenn du lieber die formatierte Ansicht vergleichen willst, bau ich das dazu.
<!-- buddy: *starrt auf zwei Textspalten* ein Wort hat sich bewegt und ich habe es gesehen -->
Jorge · 15:01
Das ist perfekt. Funktioniert genauso, wie ich das brauche. Kannst du mir das noch kurz erklären, wie das jetzt funktioniert?
Claude · 15:02
Kurz, in vier Schritten — das ist im Kern immer derselbe Trick, den auch Git benutzt:
**1. Zeilen als Bausteine**
Beide Dateien werden in Zeilen zerlegt. Ab hier interessiert der Inhalt nicht mehr, nur noch: „Zeile 12 links ist identisch mit Zeile 14 rechts."
**2. Der kürzeste Weg durch ein Raster**
Stell dir ein Gitter vor: links untereinander die Zeilen von A, oben nebeneinander die von B. Du läufst von oben links nach unten rechts.
- **Diagonal** = die Zeile steht in beiden → kostenlos
- **Nach rechts** = Zeile nur in B → *hinzugefügt*
- **Nach unten** = Zeile nur in A → *entfernt*
Gesucht ist der Weg mit den wenigsten teuren Schritten. Der Algorithmus (Myers, 1986) findet genau den — deshalb sieht das Ergebnis „vernünftig" aus statt technisch korrekt-aber-blöd. Vorher schneidet das Programm noch identische Anfänge und Enden weg, das spart den Großteil der Arbeit.
**3. Zusammengehörige Zeilen erkennen**
Jetzt steht da nur „diese Zeile weg, jene Zeile neu" — nicht, dass es dieselbe Zeile in zwei Fassungen ist. Also: bei einem Block aus Entfernungen und Ergänzungen werden sie paarweise verglichen. Teilen sich zwei Zeilen mehr als ein Drittel ihrer Wörter, gelten sie als *dieselbe Zeile, geändert* — und dann läuft derselbe Vergleich nochmal, eine Ebene tiefer, auf den Wörtern. Das ist die farbige Markierung mitten im Satz.
Darunter behandelt das Programm sie als zwei unabhängige Zeilen. Deshalb siehst du bei „Studierende im dritten Semester" → „Studierende ab dem dritten Semester, auch ohne Vorwissen" die Wortmarkierung, bei einem komplett neuen Absatz aber nicht.
**4. Anzeigen**
Der Rest ist Layout: ein CSS-Raster mit vier Spalten (Zeilennummer, Text, Zeilennummer, Text). „Nur Änderungen" blendet lange unveränderte Strecken aus und merkt sich, welche du wieder aufgeklappt hast.
Ein Sicherheitsnetz gibt's noch: Wenn zwei Dateien praktisch nichts gemeinsam haben, würde die Suche nach dem kürzesten Weg zu teuer. Ab etwa 3000 Änderungsschritten zeigt es dann schlicht „alles alt raus, alles neu rein".
<!-- buddy: *nickt zum Raster* der kürzeste Weg ist selten der offensichtliche -->
Jorge · 15:03
Alles klar. Klingt eigentlich ganz simple. Würde das auch gehen, dass man mehrere Dokumente in ein neues Tool reinladen würde, welche über längere Zeit immer mal wieder verändert wurde und dann am Ende aufzeigt, was wann und wie verändert wurde?
Claude · 15:04
→ Bash — Check whether Diplom folder is a git repo
Ja, das geht — und zwar mit genau derselben Maschine. Der Zweiervergleich ist der Baustein: Bei sechs Fassungen rechnest du fünf Vergleiche (1→2, 2→3, …) und hast die ganze Kette.
**Das „wann" ist geschenkt:** Jede Datei bringt ihr Änderungsdatum mit, der Browser liest es direkt aus. Reinziehen, nach Datum sortieren, fertig. Ein Haken: Das Datum ist unzuverlässig, sobald Dateien kopiert, heruntergeladen oder über iCloud synchronisiert wurden — dann steht da das Kopierdatum. Falls deine Dateinamen ohnehin Datum oder Versionsnummer tragen, sortiere ich lieber danach, mit Möglichkeit zum Umsortieren von Hand.
**Was daran nicht simpel ist:** Zu sagen „von Fassung 3 auf 4 kam dieser Absatz dazu" ist leicht. Zu sagen „*dieser* Absatz hier wurde in Fassung 2 geschrieben und in Fassung 5 nochmal überarbeitet" ist die eigentliche Arbeit — dafür muss das Programm eine Zeile über alle Fassungen hinweg wiedererkennen, auch wenn sie inzwischen zwei Kapitel weiter unten steht und halb umformuliert wurde. Machbar, aber das ist der Teil, an dem die Zeit hängt.
Und damit die Frage, die die Form entscheidet:
**A — Zeitleiste.** Oben eine Leiste mit allen Fassungen, du klickst dich Schritt für Schritt durch. Pro Schritt: „+18 Zeilen, −4, Abschnitt ‚Zielgruppe' neu." Antwortet auf: *Was ist zwischen Februar und März passiert?*
**B — Alterskarte.** Nur das aktuelle Dokument, aber jede Zeile eingefärbt nach dem Tag, an dem sie entstand. Altes blass, Neues kräftig. Antwortet auf: *Welche Teile stehen seit Monaten unangetastet — und woran habe ich zuletzt geschraubt?*
A ist der halbe Aufwand, B ist das ungewöhnlichere Bild. Welches von beiden brauchst du — oder soll ich A bauen und B als zweite Ansicht danebenlegen?
<!-- buddy: *legt sechs Fassungen nebeneinander* irgendwo dazwischen ist ein Satz gealtert -->
Jorge · 15:06
Ich finde eigentlich beide Versionen gut. Dann kann man immer das verlgeichen, wie man das braucht. Bekommst du das alles in das eine Tool vernünftig eingebaut, oder braucht es dafür eins extra?
Claude · 15:07
Ein Tool. Der Zweiervergleich ist ja nur der Sonderfall „Liste mit zwei Fassungen" — es wäre unsinnig, dafür zwei Programme zu pflegen, die dieselbe Rechnerei machen. Das Tool hält also ab jetzt eine *Liste* von Fassungen, und du wählst nur die Brille: **Vergleich**, **Zeitleiste**, **Alterskarte**.
Die alte Fassung lege ich vorher als Kopie weg, damit dir nichts wegbricht, falls die neue Version irgendwo hakt.
→ Bash — Back up the working two-file version
→ Bash
→ Bash — Regenerate local standalone file
→ Artifact — Markdown-Fassungen vergleichen: zwei nebeneinander, als Zeitleiste über viele Fassungen oder als Alterskarte.
Drin. Gleicher Link, gleiche Datei — nichts Neues zu merken:
**Lokal:** `werkzeuge/gegenlesen.html`
**Im Web:** https://claude.ai/code/artifact/5daaaaf1-5a6b-4d3c-85f9-492f7e31d187
Du ziehst jetzt beliebig viele Dateien rein, sie ordnen sich nach Änderungsdatum in eine Leiste. Darunter drei Reiter:
**Vergleich** — wie vorher, aber du wählst „von" und „bis" frei. Voreingestellt sind die zwei jüngsten.
**Zeitleiste** — eine Zeile pro Schritt: Datum, wie viel sich bewegt hat, und *welche Abschnitte* betroffen waren. Das Programm sucht dafür zu jeder Änderung die nächste Überschrift darüber — deshalb steht da „Zielgruppe · Umsetzung" und nicht nur „+8 −3". Klick auf eine Zeile springt in den Vergleich genau dieses Schritts.
**Alterskarte** — die neueste Fassung, jede Zeile nach Alter eingefärbt. Blass = steht seit Anfang unverändert da, kräftig = zuletzt angefasst. Links daneben das Datum.
Zum Ausprobieren liegen vier Beispielfassungen eines Konzepts drin, über vier Monate gewachsen. Sobald du echte Dateien reinziehst, sind sie weg — über „Beispiel zurückholen" kommen sie wieder.
Die alte Zwei-Datei-Fassung liegt unter `werkzeuge/archiv/`, falls doch was klemmt.
Eine Einschränkung, die dir begegnen wird: Wenn Dateien kopiert oder aus der Cloud geladen wurden, stimmt ihr Änderungsdatum nicht mehr. Dann steht die Reihenfolge falsch — Umschalter auf „Name" behebt das, wenn deine Dateinamen nummeriert sind.
<!-- buddy: *fährt mit der Pfote über die blassen Zeilen* die hier hat seit Februar niemand angefasst -->
Jorge · 15:24
Alles klar. Danke dir. Ich würde das tatsächlich auch dokumentieren, weil ich das Rückblickend nutzen werde, um Dokumente die ich für den Vortrag erstellt habe, nochmal gegenzuchecken, was Claude (online) eigentlich immer geändert hat.
Claude · 15:25
Gut. Beim Sitzungsende läuft der Export ohnehin, dann liegt diese Sitzung mit drin — und ich lege wie immer einen Zweck-Entwurf in `zwecke.json`, markiert als ENTWURF. Die Formulierung machst du, du unterschreibst.
Eine Sache solltest du vorher prüfen, weil daran dein ganzer Plan hängt: **Hast du die alten Fassungen überhaupt noch?**
Das Werkzeug kann nur vergleichen, was als Datei existiert. Wenn du die Vortragsdokumente jedes Mal überschrieben hast, gibt es keine Zwischenstände — dann steht am Ende nur die letzte Fassung da und es gibt nichts gegenzulesen. Drei mögliche Quellen, in der Reihenfolge, in der ich sie prüfen würde:
- **Der claude.ai-Datenexport.** Da stecken die Gespräche samt der Artefakt-Fassungen drin — also genau die Zwischenstände, die du suchst. Steht seit dem 03.09. auf deiner Liste und dauert bei Anthropic teils Tage. Wenn das die Quelle sein soll, ist es das Erste, was raus muss.
- **macOS-Versionen.** Bei Dateien, die du in Pages, TextEdit o. ä. bearbeitet hast, liegt oft eine Versionshistorie im Hintergrund („Ablage → Zurücksetzen auf").
- **Time Machine**, falls es lief.
Und ein technischer Vorbehalt, damit du nicht überrascht wirst: Wenn Online-Claude ein Dokument komplett neu geschrieben statt überarbeitet hat, zeigt der Vergleich nur „alles raus, alles rein" — richtig, aber nutzlos. Aussagekräftig wird es bei den Fassungen, die nah beieinander liegen. Falls dir das begegnet, sag Bescheid; dann kann ich den Vergleich auf Absätze statt Zeilen umstellen, das hält solche Fälle besser aus.
<!-- buddy: *späht in einen leeren Ordner* zwei Fassungen braucht es mindestens, sonst gibt es nichts zu sehen -->
Jorge · 15:27
Ja, keine Sorge hab ich noch. Ist alles in einem Projekt bei claude.ai. Wir sind dann hier auch feritg.
Claude · 15:27
Alles klar — dann mache ich den Abschluss. Erst schaue ich, was schon da ist:
→ Bash — Read moments.md and list scripts
→ Bash — Locate and read zwecke.json
Dann mache ich den Abschluss. Zuerst die drei Gedächtnisdateien:
→ Bash
→ Bash
→ Bash
Jetzt die beiden Dokumentationsskripte. Das erste zieht die Sitzungsprotokolle aus dem Claude-Code-Verzeichnis, schwärzt persönliche Notizen und legt sie in `Diplom/ai-dokumentation/` ab:
→ Bash — Run transcript export script
Die Sitzung ist als `2026-09-05_db81fcda.md` drin. Jetzt der Zweck-Entwurf — Wortlaut prüfst du:
→ Bash
→ Bash — Regenerate the KI-Verzeichnis
Alles synchronisiert:
- **`memory.md`** — Eintrag zum Werkzeug, wie es rechnet (falls du es später erklären musst), und die offenen Fäden unverändert übernommen
- **`moments.md`** — „Klingt eigentlich ganz simple"
- **`experience.md`** — wie es war
- **Export gelaufen** — die Sitzung liegt als `2026-09-05_db81fcda.md` in der Anlage, Verzeichnis neu erzeugt (6 Zeilen)
Zwei Dinge warten dort auf dich: der **Zweck-Entwurf** in `zwecke.json` (Wortlaut ist meiner, unterschreiben musst du) und die Frage in der Anmerkung — ob eine Sitzung, in der ein Werkzeug entstand, das selbst nicht Teil der Arbeit ist, ins Verzeichnis gehört. Ich habe sie erstmal auf „ja" gesetzt, weil das Werkzeug auf die Vortragsdokumente angewendet wird; rausnehmen ist leichter als vergessen.
Viel Erfolg beim Gegenlesen — ich bin gespannt, was du in den Fassungen findest. Bis bald.
<!-- buddy: *rollt sich auf dem frisch geschriebenen Eintrag zusammen* alles gesichert, du kannst gehen -->