From 9e594e2f768d95f94cb151c02b1f71c2a1146784 Mon Sep 17 00:00:00 2001 From: Kalina Date: Mon, 2 Nov 2026 18:34:15 +0100 Subject: [PATCH] docs: Startseite auf 1.3.0 nachgezogen (Shell, Paletten, Rohadresse) README beschreibt jetzt shell/ und den Ein-Zeilen-Aufruf ohne Token; Farbregel (Rot nur als Grafik, #E0454F fuer Text) steht dort, wo sie gelesen wird. SKILL.md auf 1.3.0 mit Abschnitt Shell/Terminal. CHANGELOG ohne Maschinen- und Hostnamen (Inhaltsregel). install.sh holt prompt.zsh bei Pipe-Aufruf ueber KALINA_CI_RAW. docs/aenderungen.md: Shell-Rollout per Skript nachziehen. --- CHANGELOG.md | 8 +++++--- README.md | 34 +++++++++++++++++++++++++++++++--- SKILL.md | 22 ++++++++++++++++++++-- docs/aenderungen.md | 2 ++ shell/README.md | 4 +++- shell/install.sh | 22 +++++++++++++++------- 6 files changed, 76 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2c6035..22e053f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,11 +9,13 @@ versioniert. - **Die CI reicht bis in die Shell.** `shell/prompt.zsh` rendert einen zweizeiligen Prompt (`┌─ kalina ~/kalina-ci · main ✚1 ✎2 · 4.2s` / `└─ ❯`) aus denselben Werten wie `themes/kalina-ci-dark.json`: Tinte `#0B0F14`, Knochenweiß `#F5F5EF`, Markenrot `#C1121F` - nur als Grafik, Text-Rot `#E0454F` (4,70:1), Salbei `#7FA88C` nur an Git. Ausgerollt auf - kalina, ROG, imac und Kalini 1 (Gast-VM); die Pixelprobe zeigt auf jedem Host `#0B0F14`. + nur als Grafik, Text-Rot `#E0454F` (4,70:1), Salbei `#7FA88C` nur an Git. Ausgerollt auf vier + Maschinen (Arbeitsplatz, Laptop, iMac, Gast-VM); die Pixelprobe zeigt auf jeder `#0B0F14`. - **`shell/install.sh` richtet weitere Maschinen ohne meinen Zugriff ein.** Idempotent, sichert jede Datei nach `.vor-kalina-ci-`, erkennt foot, qterminal, xfce4-terminal und xterm - und prüft anschließend mit `zsh -n`, `foot --check-config` und `xrdb`-Query. + und prüft anschließend mit `zsh -n`, `foot --check-config` und `xrdb`-Query. Aufruf per + `curl … | bash` funktioniert: fehlt `prompt.zsh` neben dem Skript, holt es das Modul über die + Raw-Adresse des Repos (`KALINA_CI_RAW` überschreibt sie). - **Vier Erkenntnisse, die das Ausrollen gekostet hat:** p10k lässt sich nicht umfärben, nur ablösen (der dreizeilige Instant-Prompt hinterlässt beim Auskommentieren ein `fi`, danach startet keine Shell mehr); `${PWD/#$HOME/~}` ersetzt in zsh 5.9 nichts; `COLORTERM` wird per diff --git a/README.md b/README.md index ccf8698..ef3bf81 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,18 @@ # KALINA CI Corporate Identity der KALINA als versioniertes Artefakt: eine Satzvorlage (CSS), -drei Dokumentvorlagen, die Marke als SVG, ein Stempel-Skript für fremde PDFs und eine -CLI, die alle drei Wege bedient. **Ein Dokument, das nach KALINA aussehen soll, nimmt -diese Dateien — keine nachgebauten Farben, kein selbst gezeichnetes Logo.** +drei Dokumentvorlagen, die Marke als SVG, ein Stempel-Skript für fremde PDFs, eine CLI, +die alle drei Wege bedient — und seit 1.3.0 dieselbe Farbwelt für Shell und Terminal. +**Ein Dokument, das nach KALINA aussehen soll, nimmt diese Dateien — keine nachgebauten +Farben, kein selbst gezeichnetes Logo.** ``` css/kalina-ci.css Satzvorlage: @page A4, Kopfleiste, Tabellen, Plakette, Fußlinie templates/ report.html · page.html · bild-mit-prompt.html assets/ kalina-mark.svg · kalina-wordmark.svg · kalina-logo-combined.svg · favicon/ scripts/stamp_existing_pdf.py fremdes PDF mit Deckblatt/Marke/Fußzeile versehen +shell/install.sh Shell-Prompt und Terminal-Palette auf einer Maschine einrichten +shell/prompt.zsh zsh-Prompt als eigenständiges Modul (kein oh-my-zsh, kein p10k) tools/kalina-pdf CLI: build · stamp · check · tokens tokens.json Farben, Schriften, Geometrie, Zonen (maschinenlesbar) SKILL.md Einstiegspunkt für Agenten (Frontmatter + Regeln + Fallen) @@ -35,6 +38,31 @@ Voraussetzungen: `weasyprint` (Layout), `pymupdf` (Messung/Raster), Ink `#0B0F14` · Bone `#F5F5EF` · Kalina-Rot `#C1121F` · Steel `#3A4250` · Muted `#8A94A2` +Kalina-Rot hat auf Ink nur 3,09:1 Kontrast und ist deshalb **Grafik**, nicht Text. Für Text auf +Ink gilt `#E0454F` (4,70:1) — dieselbe Entscheidung wie im VS-Code-Theme und im Prompt. + +## Shell und Terminal + +Die CI endet nicht am Papier. `shell/` bringt denselben Satz in die Shell: zweizeiliger +Prompt, Terminal-Palette, ein Skript für beides. + +``` +┌─ kalina ~/kalina-ci · main ✚1 ✎2 · 4.2s +└─ ❯ +``` + +```bash +curl -fsSLo install.sh https://gitea.m-m.bio/mm/kalina-ci/raw/branch/main/shell/install.sh +bash install.sh --dry-run # zeigt, was passieren würde +bash install.sh # führt es aus +``` + +Kein Token nötig — das Repo ist öffentlich lesbar. Das Skript ist idempotent, sichert jede +Datei nach `.vor-kalina-ci-` und erkennt **foot**, **qterminal**, **xfce4-terminal** +und **xterm**; zsh installiert es über den vorhandenen Paketmanager. Schalter: +`--shell-only`, `--terminal-only`, `--no-chsh`. Details und die Fallen beim Ausrollen stehen in +[`shell/README.md`](shell/README.md). + ## Wie Agenten das nutzen Zwei Wege, gleicher Inhalt: diff --git a/SKILL.md b/SKILL.md index 18fc012..fe91620 100644 --- a/SKILL.md +++ b/SKILL.md @@ -2,8 +2,8 @@ name: kalina-ci description: Use when a PDF, page or slide must carry the KALINA corporate identity. One CSS, one CLI, one source. metadata: - version: "1.2.0" - stand: "2026-10-23" + version: "1.3.0" + stand: "2026-11-02" --- # KALINA CI — Corporate Identity für Dokumente und Seiten @@ -151,6 +151,24 @@ Bildprüfung läuft **lokal auf dem ROG**, nie in der Cloud — gleiches Ergebni Ink `#0B0F14` · Bone `#F5F5EF` · Kalina-Rot `#C1121F` · Steel `#3A4250` · Muted `#8A94A2` +Kalina-Rot trägt auf Ink nur 3,09:1 und ist **Grafik** (Marke, Cursor, Regel), nie Text. +Text auf Ink ist `#E0454F` (4,70:1). Dieselbe Regel gilt im CSS, im VS-Code-Theme und im +Shell-Prompt — wer sie bricht, bricht die Lesbarkeit, nicht den Geschmack. + +## Shell und Terminal (seit 1.3.0) + +Wer eine Maschine in die CI holen soll: nicht von Hand nachbauen, sondern + +```bash +curl -fsSLo install.sh https://gitea.m-m.bio/mm/kalina-ci/raw/branch/main/shell/install.sh +bash install.sh --dry-run && bash install.sh +``` + +Das Skript ist idempotent, sichert jede Datei und erkennt foot, qterminal, xfce4-terminal +sowie xterm. Die Paletten sind gemessen, nicht geraten — die drei Fallen (qtermwidget6 +kennt kein Benutzerverzeichnis, xfconf überstimmt `terminalrc`, foot will `[colors-dark]`) +stehen in `shell/README.md`. + ## Wenn ein anderer Agent das Design macht Werkzeuge und Agenten, die eine Seite bauen (Bildgeneratoren, externe Design-Dienste), diff --git a/docs/aenderungen.md b/docs/aenderungen.md index 0037d77..623da88 100644 --- a/docs/aenderungen.md +++ b/docs/aenderungen.md @@ -24,6 +24,8 @@ Die CI ist eine Vorlage mit vielen Nutzern (Menschen, Hermes, Paperclip-Agenten) `ref` und `trackingRef`, ein Update ist damit nachvollziehbar statt „irgendwann". - **Bereits ausgelieferte PDFs** werden nicht rückwirkend geändert. Ein Neubau braucht die Quelle (HTML) oder ein `kalina-pdf stamp` auf das alte PDF. +- **Maschinen mit Shell-Prompt:** `shell/install.sh` erneut ausführen (idempotent, sichert + jede Datei) — nicht die Dateien einzeln nachziehen, sonst laufen die Fassungen auseinander. ## Was NICHT über die CI läuft diff --git a/shell/README.md b/shell/README.md index 71f77e6..ece0c1b 100644 --- a/shell/README.md +++ b/shell/README.md @@ -22,7 +22,9 @@ kein oh-my-zsh und kein powerlevel10k noetig. ## Installation auf einer neuen Maschine ```sh -git clone http://192.168.188.161:3000/mm/kalina-ci.git +# oder direkt, ohne Klon (Repo ist oeffentlich lesbar): +# curl -fsSLo install.sh https://gitea.m-m.bio/mm/kalina-ci/raw/branch/main/shell/install.sh +git clone https://gitea.m-m.bio/mm/kalina-ci.git cd kalina-ci/shell ./install.sh --dry-run # zeigen, was passieren wuerde ./install.sh # ausfuehren diff --git a/shell/install.sh b/shell/install.sh index fb1818c..eb5fe48 100755 --- a/shell/install.sh +++ b/shell/install.sh @@ -22,6 +22,8 @@ TS="$(date +%Y%m%d-%H%M%S)" CONF_DIR="$HOME/.config/kalina-ci" PROMPT="$CONF_DIR/prompt.zsh" SRC_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +# Wo das Prompt-Modul herkommt, wenn es nicht neben dem Skript liegt +RAW="${KALINA_CI_RAW:-https://gitea.m-m.bio/mm/kalina-ci/raw/branch/main/shell}" DRY=0; DO_SHELL=1; DO_TERM=1; DO_CHSH=1 for arg in "$@"; do @@ -102,18 +104,24 @@ do_shell() { install_zsh || true run mkdir -p "$CONF_DIR" - if [ -f "$PROMPT" ] && [ -f "$SRC_DIR/prompt.zsh" ]; then - backup "$PROMPT" + if [ -f "$SRC_DIR/prompt.zsh" ]; then + [ -f "$PROMPT" ] && backup "$PROMPT" run cp -f "$SRC_DIR/prompt.zsh" "$PROMPT" ok "prompt.zsh aus $SRC_DIR uebernommen" - elif [ -f "$SRC_DIR/prompt.zsh" ]; then - run cp -f "$SRC_DIR/prompt.zsh" "$PROMPT" - ok "prompt.zsh installiert" elif [ -f "$PROMPT" ]; then ok "prompt.zsh liegt bereits in $CONF_DIR" else - warn "prompt.zsh weder neben dem Skript noch in $CONF_DIR — Shell-Teil uebersprungen" - return 1 + # Aufruf per Pipe oder aus /tmp: Modul aus dem Repo holen (Repo ist oeffentlich) + if [ "$DRY" = 1 ]; then + printf ' [dry] %s/prompt.zsh nach %s laden\n' "$RAW" "$PROMPT" + elif command -v curl >/dev/null && curl -fsSL "$RAW/prompt.zsh" -o "$PROMPT.tmp"; then + mv "$PROMPT.tmp" "$PROMPT"; ok "prompt.zsh von $RAW geholt" + elif command -v wget >/dev/null && wget -qO "$PROMPT.tmp" "$RAW/prompt.zsh"; then + mv "$PROMPT.tmp" "$PROMPT"; ok "prompt.zsh von $RAW geholt" + else + warn "prompt.zsh nicht erreichbar ($RAW) — Shell-Teil uebersprungen" + return 1 + fi fi local zshrc="$HOME/.zshrc"