S06: Session-Abschluss S06. Teilgebiet 01 Iteration A inhaltlich umgesetzt: Ausbildung als 2-Spalten-Layout via Pandoc-Multiline-Tabelle ohne Header, Template um array, calc, booktabs, longtable und providecommand real ergänzt, alle Linienbreiten auf 0pt. DOCX-Layout von Thomas visuell bestätigt (nur Default-Tabellenrahmen offen, Rahmen-Aus in Iteration B). PDF-Build mit Hotfix steht noch aus — erste Aufgabe der nächsten Session ist build.ps1 laufen lassen und das Ausbildungs-Layout im PDF prüfen. Tooling-Fix in checkpoint.ps1 abgeschlossen (Quoting-Bug, Pipe-Validierung, Whitespace-Normalisierung, Pre-flight-Checks, atomarer Rollback bei Fehler). agent-prompt.md Aktueller-Stand-Abschnitt für S07 fortgeschrieben mit verbleibender Iterationsreihenfolge B-C-D, neuen Lehren aus S06 dokumentiert (Sandbox-Reads über NTFS-Mount können stale sein, Sandbox-Pandoc 2.9 vs Thomas' Pandoc 3.x Output-Unterschiede).
This commit is contained in:
@@ -1,8 +1,4 @@
|
||||
S06
|
||||
Tooling-Fix: checkpoint.ps1 robust gegen problematische Eingabedaten gemacht.
|
||||
Commit-Message wird jetzt via Temp-Datei und git commit -F uebergeben statt via -m mit String, damit doppelte Anfuehrungszeichen im Summary nicht mehr das Argument zerlegen (Ursache des fehlgeschlagenen Hotfix-Commits zuvor).
|
||||
Pipe-Zeichen im Summary werden vorab abgelehnt, da sie mit dem Changelog-Format Timestamp Pipe Session Pipe Summary kollidieren.
|
||||
Whitespace und Zeilenumbrueche im Summary werden zu einem einzelnen Leerzeichen normalisiert.
|
||||
Pre-flight-Checks ergaenzt: Existenz von .git, verwaiste .git/index.lock mit klarer Anleitung melden, changelog.md muss vor dem Lauf clean sein.
|
||||
Atomarer Rollback bei Fehler im Hauptablauf: changelog.md wird auf Original-Stand zurueckgeschrieben und Index-Stagung von changelog.md per git restore --staged oder git reset HEAD zurueckgesetzt, sodass der naechste Lauf nicht doppelt anhaengt.
|
||||
Cleanup-Robustheit: Temp-Message-Datei wird in finally geloescht, das Loeschen der Pending-Datei ist nicht mehr fatal sondern nur eine Warnung.
|
||||
Session-Abschluss S06. Teilgebiet 01 Iteration A inhaltlich umgesetzt: Ausbildung als 2-Spalten-Layout via Pandoc-Multiline-Tabelle ohne Header, Template um array, calc, booktabs, longtable und providecommand real ergänzt, alle Linienbreiten auf 0pt. DOCX-Layout von Thomas visuell bestätigt (nur Default-Tabellenrahmen offen, Rahmen-Aus in Iteration B). PDF-Build mit Hotfix steht noch aus — erste Aufgabe der nächsten Session ist build.ps1 laufen lassen und das Ausbildungs-Layout im PDF prüfen.
|
||||
Tooling-Fix in checkpoint.ps1 abgeschlossen (Quoting-Bug, Pipe-Validierung, Whitespace-Normalisierung, Pre-flight-Checks, atomarer Rollback bei Fehler).
|
||||
agent-prompt.md Aktueller-Stand-Abschnitt für S07 fortgeschrieben mit verbleibender Iterationsreihenfolge B-C-D, neuen Lehren aus S06 dokumentiert (Sandbox-Reads über NTFS-Mount können stale sein, Sandbox-Pandoc 2.9 vs Thomas' Pandoc 3.x Output-Unterschiede).
|
||||
|
||||
@@ -88,23 +88,25 @@ Setze zwischen sinnvollen Zwischenständen Checkpoints (z.B. nach "Marketing.md
|
||||
**Letzte Session:** S06 (2026-04-25)
|
||||
|
||||
**Was wurde gemacht:**
|
||||
- **Iteration A für Teilgebiet 01 — Ausbildung als 2-Spalten-Layout, Revision auf Tabellen-Variante.** Erster Versuch mit Definition-List ergab im PDF zwar das gewünschte 2-Spalten-Layout, im DOCX aber nicht (Pandoc rendert Definition-Lists als zwei separate Absatzstile, Word kann zwei Absätze nicht in eine Zeile zwingen — visuell sichtbar nach Build von Thomas: Datum fett auf eigener Zeile, Inhalt darunter). Auf Wunsch von Thomas auf Tabellen-Variante umgestellt: `source/cv.md` Ausbildungs-Abschnitt nutzt jetzt eine Pandoc-Multiline-Tabelle ohne Header (Strich-Verhältnis 10:70 ergibt Spaltenbreiten ca. 14 % / 80 %). `templates/template.tex` um Tabellen-Setup erweitert: `booktabs` und `longtable` geladen, alle booktabs-Linienbreiten und Rule-Separationen auf 0 pt, `\LTpre`/`\LTpost` auf 0.4 em reduziert. Description-List-Block wieder entfernt.
|
||||
- **Sandbox-Verifikation der Tabellen-Revision:** Pandoc-LaTeX-Output zeigt `\begin{longtable}[]{@{}ll@{}}` mit vier Datenzeilen und Minipage-Auto-Wrap (`0.14\columnwidth` + `0.80\columnwidth`). Pandoc-DOCX-Output enthält eine native Word-Tabelle mit vier Zeilen und acht Zellen, keine Reste der zwischenzeitlich genutzten Definition-List-Stile.
|
||||
- **Hotfix für PDF-Build-Fehler:** Beim ersten Build der Tabellen-Revision auf Thomas' System schlug LuaLaTeX mit `! LaTeX Error: No counter 'none' defined.` in der Tabellen-Spaltenangabe fehl. Ursache: Pandoc 3.x emittiert calc-basierte Spaltenbreiten der Form `p{(\columnwidth - 2\tabcolsep) * \real{0.8554}}`, die das `calc`-Paket und das Pandoc-Hilfsmakro `\real` voraussetzen. Beides war im Template nicht vorhanden, weil Sandbox-Pandoc 2.9 die simplere `ll`-Spaltenform emittiert und den Fehler nicht reproduziert. Behoben durch Ergänzung von `\usepackage{array}`, `\usepackage{calc}` und `\providecommand{\real}[1]{#1}` im Tabellen-Block des Templates. Mit synthetischem Pandoc-3.x-Spalten-Format in der Sandbox via LuaLaTeX zu PDF kompiliert (eine harmlose `Rerun LaTeX`-Warnung, die der Pandoc-Build automatisch behandelt).
|
||||
- **Visuelle Bestätigung im DOCX (nach Tabellen-Revision):** Tabelle sieht gut aus; offen sind nur die Default-Word-Tabellenrahmenlinien — Rahmen-Aus erfolgt in Iteration B über die `reference.docx`.
|
||||
- **Visuelle Bestätigung im PDF:** Steht nach Hotfix-Build aus.
|
||||
|
||||
**Stand zum Vergleich (S05):** CV-Pipeline steht (Pandoc/LuaLaTeX, IBM Plex Sans, Markdown-Quelle, build.ps1 mit sichtbarem Fortschritt). Zahlreiche typographische Mängel aus S05 behoben: Listen-Rendering (PDF + DOCX), Section-Nummerierung (PDF), Level-2-Bullets als Striche (PDF), einsame Einheiten (PDF + DOCX), Trainings als Liste (PDF + DOCX), Ausbildungs-Einrückung (PDF), Schusterjungen-Schutz Stations-Titel (PDF), Hyperlink-Farbe (PDF). Plex-Fonts v1.1.0 system-weit installiert (Doku in Teilgebiet 25).
|
||||
- **Iteration A für Teilgebiet 01 — Ausbildung als 2-Spalten-Layout, Tabellen-Variante.** Erster Versuch mit Pandoc-Definition-List ergab im PDF das gewünschte 2-Spalten-Layout, im DOCX aber nicht (Pandoc rendert Definition-Lists als zwei separate Absatzstile, Word kann zwei Absätze nicht in eine Zeile zwingen). Auf Wunsch von Thomas auf Pandoc-Multiline-Tabelle ohne Header umgestellt — Strich-Verhältnis 10:70 ergibt Spaltenbreiten ca. 14 % / 80 %. `templates/template.tex` um Tabellen-Setup erweitert: `array`, `calc`, `booktabs`, `longtable` geladen, `\providecommand{\real}[1]{#1}` (Pandoc-Hilfsmakro) ergänzt, alle booktabs-Linienbreiten und Rule-Separationen auf 0 pt, `\LTpre`/`\LTpost` auf 0.4 em.
|
||||
- **Hotfix für PDF-Build-Fehler.** Erster Build auf Thomas' System schlug mit `! LaTeX Error: No counter 'none' defined.` in der Tabellen-Spaltenangabe fehl. Ursache: Pandoc 3.x emittiert calc-basierte Spaltenbreiten der Form `p{(\columnwidth - 2\tabcolsep) * \real{0.8554}}`, die `calc` und `\real` voraussetzen. Sandbox-Pandoc 2.9 emittiert die simplere `ll`-Spaltenform und hat den Fehler nicht reproduziert (wichtige Lehre: Sandbox-Verifikation deckt Pandoc-Versionsunterschiede nicht ab). Hotfix mit synthetischem Pandoc-3.x-Spalten-Format in der Sandbox kompiliert.
|
||||
- **DOCX nach Tabellen-Revision visuell bestätigt:** Tabelle sieht gut aus; nur die Default-Word-Tabellenrahmenlinien sind noch da (Rahmen-Aus erfolgt in Iteration B über `reference.docx`).
|
||||
- **PDF-Build mit Hotfix steht aus** — Thomas hat nach dem Hotfix-Commit nicht erneut gebaut. Erste Aufgabe der nächsten Session: `build/build.ps1` laufen lassen, Hotfix verifizieren.
|
||||
- **Tooling-Fix: `checkpoint.ps1` robust gemacht.** Im Verlauf der Session ist ein Hotfix-Commit am PowerShell-Argument-Quoting gescheitert, weil die Commit-Message via `git commit -m $commitMsg` mit doppelten Anführungszeichen im Summary von PS5.1 zerlegt wurde. Behoben durch Übergabe der Commit-Message über eine Temp-Datei mit `git commit -F`. Zusätzlich: Pipe-Zeichen im Summary werden vorab abgelehnt (kollidieren sonst mit Changelog-Format), Whitespace wird normalisiert, Pre-flight-Checks für `index.lock` und Cleanliness von `changelog.md`, atomarer Rollback bei Fehler im Hauptablauf (changelog-Anhang und Index-Stagung werden zurückgerollt), Cleanup-Robustheit in `finally`-Block.
|
||||
|
||||
**Nächste Aufgabe:** Teilgebiet 01 — drei verbleibende Iterationen in dieser Reihenfolge:
|
||||
1. **B) `templates/reference.docx` in Word polieren** (Header/Footer setzen, Schriften auf Calibri vereinheitlichen, Listen-Schutz „Keep with next" und Widow-Control via Word-Stile, Stile `DefinitionTerm` und `Definition` für 2-Spalten-Verhalten konfigurieren — z.B. fester linker Einzug auf `Definition`, hängende Einrückung). Behebt mehrere DOCX-Mängel auf einmal.
|
||||
2. **C) Foto-Einbindung** in cv.md mit Pandoc-Image-Syntax und Template-Anpassung für Position/Größe (z.B. oben rechts neben Name, ca. 3 cm).
|
||||
3. **D) Hyphenation-Feintuning für PDF** — kurze Wortteile am Zeilenanfang mit höherer Penalty oder gezielten `\hyphenation`-Ausnahmen reduzieren. Iterativ.
|
||||
|
||||
Vor B steht ein Build auf Thomas' MiKTeX-System aus, um Iteration A im PDF + DOCX visuell zu verifizieren (`build/build.ps1` ausführen, `output/build.log` prüfen).
|
||||
1. **Verifikation Iteration A**: `build/build.ps1` einmal laufen lassen, prüfen dass PDF jetzt erzeugt wird und das Ausbildungs-Layout dem PDF-Wunsch entspricht (linke Spalte Datum normal, rechte Spalte Titel fett).
|
||||
2. **B) `templates/reference.docx` in Word polieren** — Header/Footer setzen, Schriften auf Calibri vereinheitlichen, Listen-Schutz „Keep with next" und Widow-Control via Word-Stile, Tabellen-Stile so konfigurieren, dass die Ausbildungs-Tabelle ohne Rahmen rendert (Default-Tabellenstil oder benannter Stil).
|
||||
3. **C) Foto-Einbindung** in cv.md mit Pandoc-Image-Syntax und Template-Anpassung für Position/Größe (z.B. oben rechts neben Name, ca. 3 cm).
|
||||
4. **D) Hyphenation-Feintuning für PDF** — kurze Wortteile am Zeilenanfang mit höherer Penalty oder gezielten `\hyphenation`-Ausnahmen reduzieren. Iterativ.
|
||||
|
||||
Nach D): Status von Teilgebiet 01 in `zentral-index.md` auf „abgeschlossen" setzen (R2-OK von Thomas). Anschließend nächstes Teilgebiet nach Priorität (laut Index Teilgebiet 02 „Zeugnis von ASMPT").
|
||||
|
||||
**Offene Punkte (unverändert seit S04):** Zuschnitt und Festpreise der KI-Produkte (marketing.md Abschnitt 2), KMU-Direkthonorarsatz festlegen (marketing.md Abschnitt 2), Vergütungsmodell-Wahl bei erstem konkreten Fall (Notiz in marketing.md Abschnitt 2).
|
||||
|
||||
**Hinweis für die nächste Session:** Das Write-Tool hat in S05 zweimal das `template.tex` beim Schreiben verstümmelt (Datei wurde mit ~93 Zeilen statt 130+ gespeichert, mitten im Wort abgeschnitten). Workaround: für längere Schreibvorgänge `mcp__workspace__bash` mit `cat > file << 'EOF' ... EOF` verwenden statt das Write-Tool. Wiederherstellung über `git checkout HEAD -- <pfad>` möglich, solange das Original im letzten Commit ist.
|
||||
**Hinweise für die nächste Session:**
|
||||
- **Sandbox-Reads über den NTFS-Mount können stale/inkonsistent sein.** In S06 zeigte mir die Sandbox mehrfach Dateiinhalte, die im echten Repo nicht existierten (vermeintliche Truncation auf Working-Tree-Dateien, vermeintliche Index-Korruption). Thomas' PowerShell-Outputs waren immer die Wahrheitsquelle. Wenn Sandbox-Reads Schäden zeigen, die unplausibel sind, **nicht panisch reagieren** — erst Thomas via PowerShell verifizieren lassen, bevor Reparaturmaßnahmen ergriffen werden.
|
||||
- **Sandbox-Schreibvorgänge sind aber zuverlässig** (nach Thomas' Bestätigung mehrerer Schreibziele in S06). Sowohl Write-Tool als auch `mcp__workspace__bash` mit Heredoc funktionieren. Bei längeren Skript-Dateien (>100 Zeilen) bleibt Heredoc trotzdem die robustere Wahl.
|
||||
- **Sandbox kann nichts an `.git/` schreiben** (NTFS-Permission-Issue): Lock-Files, korrupte Index — alles muss von PowerShell aus repariert werden.
|
||||
- **Sandbox-Pandoc ist 2.9.x, Thomas' System läuft Pandoc 3.x.** Output-Unterschiede zwischen den Versionen können Build-Probleme verursachen (siehe Hotfix für `\real` und `calc`). Im Zweifel synthetisch den 3.x-Output nachbauen und gegen Template testen.
|
||||
- **`checkpoint.ps1` ist jetzt robust** gegen Anführungszeichen, Pipes, Whitespace-Anomalien und Index-Lock-Reste. `.checkpoint-pending.txt` darf wieder ganz normal Sonderzeichen enthalten.
|
||||
|
||||
@@ -41,3 +41,4 @@ Chronologisches Log aller Entscheidungen und Prozessereignisse.
|
||||
2026-04-25 20:58 | S06 | Iteration A revidiert: Ausbildungs-Layout von Definition-List auf Pandoc-Multiline-Tabelle umgestellt, weil Definition-List im DOCX kein echtes 2-Spalten-Layout liefert (Word kann Term und Definition als zwei Absatzstile nicht in eine Zeile zwingen). source/cv.md Ausbildungs-Abschnitt nutzt jetzt headerless Multiline-Tabelle mit Strich-Verhaeltnis 10:70 (Pandoc berechnet Spaltenbreiten von ca. 14 Prozent und 80 Prozent der Textbreite). templates/template.tex Description-List-Block wieder entfernt; neuer Tabellen-Block mit booktabs und longtable, Linienbreiten und Rule-Separations auf 0pt, LTpre/LTpost auf 0.4em. Sandbox-Verifikation: Pandoc-LaTeX rendert longtable mit Minipage-Auto-Wrap und vier Datenzeilen, Pandoc-DOCX rendert eine native Word-Tabelle mit vier Zeilen und acht Zellen, keine Reste der Definition-List-Stile. teilgebiete/01-lebenslauf.md Iteration-A-Block umgeschrieben mit Begruendung der Revision und Beschreibung des neuen Setups. agent-prompt.md Aktueller-Stand-Abschnitt auf die Tabellen-Variante fortgeschrieben.
|
||||
2026-04-25 22:15 | S06 | PDF-Build-Hotfix nach erstem Build der Tabellen-Revision: LuaLaTeX schlug in der Tabellen-Spaltenangabe mit der Meldung ueber einen nicht definierten Counter none fehl, weil Thomas Pandoc-Version (3.x) calc-basierte Spaltenbreiten der Form p von Klammer Spaltenbreite minus 2 mal tabcolsep Klammerzu mal real Faktor emittiert und das Template weder das calc-Paket noch das Pandoc-Hilfsmakro real bereitstellte (Sandbox-Pandoc 2.9 emittiert die simplere ll-Spaltenform und hat den Fehler nicht reproduziert). templates/template.tex Tabellen-Block ergaenzt um usepackage array, usepackage calc und providecommand real. Sandbox-Verifikation: synthetischer Pandoc-3.x-Spalten-Output kompiliert mit dem erweiterten Template via LuaLaTeX zu PDF, nur eine harmlose longtable-Rerun-Warnung. DOCX nach Tabellen-Revision von Thomas visuell bestaetigt (Tabelle sieht gut aus, nur Default-Word-Tabellenrahmenlinien noch da, Rahmen-Aus in Iteration B). teilgebiete/01-lebenslauf.md und agent-prompt.md um Hotfix-Eintrag und DOCX-Bestaetigung ergaenzt.
|
||||
2026-04-25 22:35 | S06 | Tooling-Fix: checkpoint.ps1 robust gegen problematische Eingabedaten gemacht. Commit-Message wird jetzt via Temp-Datei und git commit -F uebergeben statt via -m mit String, damit doppelte Anfuehrungszeichen im Summary nicht mehr das Argument zerlegen (Ursache des fehlgeschlagenen Hotfix-Commits zuvor). Pipe-Zeichen im Summary werden vorab abgelehnt, da sie mit dem Changelog-Format Timestamp Pipe Session Pipe Summary kollidieren. Whitespace und Zeilenumbrueche im Summary werden zu einem einzelnen Leerzeichen normalisiert. Pre-flight-Checks ergaenzt: Existenz von .git, verwaiste .git/index.lock mit klarer Anleitung melden, changelog.md muss vor dem Lauf clean sein. Atomarer Rollback bei Fehler im Hauptablauf: changelog.md wird auf Original-Stand zurueckgeschrieben und Index-Stagung von changelog.md per git restore --staged oder git reset HEAD zurueckgesetzt, sodass der naechste Lauf nicht doppelt anhaengt. Cleanup-Robustheit: Temp-Message-Datei wird in finally geloescht, das Loeschen der Pending-Datei ist nicht mehr fatal sondern nur eine Warnung.
|
||||
2026-04-25 22:43 | S06 | Session-Abschluss S06. Teilgebiet 01 Iteration A inhaltlich umgesetzt: Ausbildung als 2-Spalten-Layout via Pandoc-Multiline-Tabelle ohne Header, Template um array, calc, booktabs, longtable und providecommand real ergänzt, alle Linienbreiten auf 0pt. DOCX-Layout von Thomas visuell bestätigt (nur Default-Tabellenrahmen offen, Rahmen-Aus in Iteration B). PDF-Build mit Hotfix steht noch aus — erste Aufgabe der nächsten Session ist build.ps1 laufen lassen und das Ausbildungs-Layout im PDF prüfen. Tooling-Fix in checkpoint.ps1 abgeschlossen (Quoting-Bug, Pipe-Validierung, Whitespace-Normalisierung, Pre-flight-Checks, atomarer Rollback bei Fehler). agent-prompt.md Aktueller-Stand-Abschnitt für S07 fortgeschrieben mit verbleibender Iterationsreihenfolge B-C-D, neuen Lehren aus S06 dokumentiert (Sandbox-Reads über NTFS-Mount können stale sein, Sandbox-Pandoc 2.9 vs Thomas' Pandoc 3.x Output-Unterschiede).
|
||||
|
||||
Reference in New Issue
Block a user