Zusammenfuehrung der bisher verstreuten CI (Markendoku + Open-WebUI-Skill) in ein versioniertes Repository. Neu: tools/kalina-pdf (build/stamp/check/tokens), tokens.json, docs/aenderungen.md als verbindlicher Aenderungsweg.
67 lines
3.0 KiB
Markdown
67 lines
3.0 KiB
Markdown
# 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.**
|
|
|
|
```
|
|
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
|
|
tools/kalina-pdf CLI: build · stamp · check · tokens
|
|
tokens.json Farben, Schriften, Geometrie, Zonen (maschinenlesbar)
|
|
SKILL.md Einstiegspunkt für Agenten (Frontmatter + Regeln + Fallen)
|
|
docs/aenderungen.md der verbindliche Änderungsweg
|
|
```
|
|
|
|
## Schnellstart
|
|
|
|
```bash
|
|
git clone <dieses-repo> kalina-ci && cd kalina-ci
|
|
|
|
cp templates/report.html bericht.html # «Platzhalter» füllen
|
|
tools/kalina-pdf build bericht.html --stamp --titel "Angebot 2026-17"
|
|
|
|
tools/kalina-pdf stamp fremd.pdf -o fremd-kalina.pdf --titel "Rechnung 4711"
|
|
tools/kalina-pdf check bericht.pdf --raster raster/
|
|
```
|
|
|
|
Voraussetzungen: `weasyprint` (Layout), `pymupdf` (Messung/Raster),
|
|
`matplotlib` + `pypdf` (Stempel), `pdftoppm` optional für Sichtprüfung.
|
|
|
|
## Farben
|
|
|
|
Ink `#0B0F14` · Bone `#F5F5EF` · Kalina-Rot `#C1121F` · Steel `#3A4250` · Muted `#8A94A2`
|
|
|
|
## Wie Agenten das nutzen
|
|
|
|
Zwei Wege, gleicher Inhalt:
|
|
|
|
1. **Als Skill importiert** (Paperclip: `POST /api/companies/<id>/skills/import` mit
|
|
`{"source": "<URL dieses Repos>"}`). Der Import liest `SKILL.md` und alle Dateien
|
|
darunter, hält `ref` und `trackingRef` fest und meldet Aktualisierungen über
|
|
`update-status`.
|
|
2. **Als Arbeitskopie** (Hermes, Skripte, Cron): Repo klonen, `tools/kalina-pdf` aus
|
|
der Kopie aufrufen. Die CLI findet CSS, Vorlagen und Stempel relativ zu sich selbst.
|
|
|
|
## Zugriff
|
|
|
|
Das Repo ist **öffentlich lesbar** — nicht aus Bequemlichkeit: der Skill-Import der
|
|
Paperclip-Instanz holt Bäume und Rohdateien **ohne** Authentifizierung, ein privates
|
|
Repo wäre dort nicht importierbar. Deshalb gilt die Inhaltsregel:
|
|
|
|
> Keine internen Hostnamen, keine IP-Adressen, keine Zugangsschlüssel, keine
|
|
> Kundeninhalte. Interne Verdrahtung gehört in die jeweilige Betriebsdoku, nicht hierher.
|
|
|
|
Schreibzugriff haben `mm` (Owner) und das Agenten-Konto `kalina` (Collaborator,
|
|
`write`). Weitere Agenten werden als Collaborator mit `write` aufgenommen — die CI ist
|
|
kein Diskussionsgegenstand, sondern eine Vorlage, die Agenten anwenden.
|
|
|
|
## Änderungen
|
|
|
|
Nicht ad hoc. Der Weg steht in [`docs/aenderungen.md`](docs/aenderungen.md):
|
|
Issue im Repo → Branch `ci/<thema>` → PR → Review → Merge → `CHANGELOG.md` ergänzen.
|
|
Wer die CI in einem Projekt „schnell anders" braucht, ändert das Projekt, nicht die CI.
|