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:
tlg
2026-04-25 22:43:02 +02:00
parent 24ff8ad48e
commit c95afb8eed
3 changed files with 19 additions and 20 deletions

View File

@@ -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.