PowerShell / Terminal Workflow & Pager

Ziel: Einen deterministischen Ablauf für Skriptläufe, Bug-Log-Analyse und Encoding-Stabilität bereitstellen – zwischen Ahoiiiiiiii (menschlicher Kurator) und Geniestreich (KI‑Cokurator/Assistenz / Skript‑Generator).

Ausgangslage

Terminal-Mojibake (ÔÇ– etc.) entstand durch falsche Codepage oder Pager-Fallback. Dieses Kapitel fixiert den Standardablauf.

Profileinstellungen (PowerShell 7)

In $PROFILE:

[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
[Console]::InputEncoding  = [System.Text.UTF8Encoding]::new()
$env:LESSCHARSET = 'utf-8'

Pager-Optionen

| Option | Konfiguration | Vorteile | Nachteile | |——–|—————|———-|———–| | less -R | git config --global core.pager "less -R" | Scroll + Suche | Externe Abhängigkeit | | cat | git config --global core.pager cat | Einfach, keine Mojibake | Keine Navigation | | delta | git config --global core.pager delta | Syntax-Highlight, Navigation | Extra Installation | | none (einzelaufruf) | git -c core.pager=cat show ... | Schneller Vergleich | Manuell je Befehl |

Session-Start Checkliste

  1. git status → sauber?
  2. Encoding setzen (falls Profil fehlt).
  3. Write-Output "ÄÖÜß → – —" → visuelle Kontrolle.
  4. Stashes prüfen: git stash list (alte Work-in-Progress bereinigen).
  5. Phase für Lauf festlegen (0–4).
  6. Skript ausführen (Parser / Mapping).
  7. Bug-Log inspizieren (Pager ohne Artefakte).

Mojibake Troubleshooting

| Symptom | Ursache | Sofortmaßnahme | |———|———|—————-| | „ÔÇ–“ statt „–“ | falsche Codepage | chcp 65001 + Encoding neu setzen | | Umlaute falsch | Terminal nicht UTF‑8 | Profil/OutputEncoding setzen | | Pfeile verschwinden | Font limitiert | Terminal-Font wechseln (Cascadia Code) | | Bindestrich mischt sich | NB-Hyphen unpassend | Ersetzen durch normales - |

Schnelle Diagnose-Befehle

git config --show-origin --get-all core.pager
git config --show-origin --get-all core.autocrlf
git -c core.pager=cat show HEAD:docs/making-of/00-inhaltsverzeichnis.md

Standard-Abbruchkriterien vor Lauf

  • Offene Stash mit relevanten Änderungen → zuerst Triage.
  • Nicht commitete Konfigurationsdateien (.editorconfig, .gitattributes) → zuerst committen.
  • Pager zeigt Artefakte → auf cat oder delta wechseln.

Integration ins Qualitätsprozess-Modell

  • Phase 0–1: cat empfohlen (reiner Inhalt).
  • Phase 2+: delta/less für fokussierte Reviews.
  • Phase 4 (Freeze): Keine Encoding-Änderungen mehr erlaubt; Monitoring-Skript bestätigt UTF‑8 Reinheit.

Revisionen:

  • 2025-11-10 Initialfassung