feat(ci): Autor und Impressum verbindlich (Kalina, kalina.si), Vision lokal

This commit is contained in:
Kalina committed 2026-10-23 20:34:10 +02:00
1 parent 9db207efe8
commit 6858c92865
6 files changed
+64 -6

No files matched your search

+13
View File
@@ -4,6 +4,19 @@ Format: Datum — was — warum. Die CI beginnt versioniert am 2026-10-23; davor
sie verstreut (Marke in `brand/`, Dokument-CSS im Open-WebUI-Skill) und wurde nicht
versioniert.
## 1.1.0 — 2026-10-23
- **Autor und Impressum verbindlich:** Jedes Dokument nennt **Kalina** als Urheber (auch Entwürfe),
das Fußband trägt `Erstellt durch das Kalina-System · Auftrag/Ticket` und `© <Jahr> kalina.si`.
Die drei Vorlagen sind entsprechend umgestellt (`ai.m-m.bio` → `© <Jahr> kalina.si`).
Grund: das Kalina-System ist der durchführende Part, also zeichnet es (Mathias, 23.10.2026).
- **Impressum ins Fußband statt als eigener Abschnitt.** Ein Impressum-Block mit
`break-inside: avoid` landete allein auf einer Folgeseite (gemessen: 2,1 % Füllgrad, `check` Exit 1).
Das Fußband bleibt jetzt zusammen (`break-inside: avoid` in `@media print`).
- **Vision lokal dokumentiert:** `rog-vision` / `rog-agent` / `rog-ocr` am Router, explizites
Modell statt `auto`, Stichprobe statt Einzelprüfung jeder Seite.
Grund: Cloud-Vision kostet Token bei gleichem Ergebnis.
## 1.0.0 — 2026-10-23
- **Konsolidiert:** Marke, Wortmarke, Favicon-Satz, Satzvorlage (`kalina-ci.css`),
+34
View File
@@ -57,6 +57,40 @@ nur berichtet: dichter Bericht mit Tabellen und Zeichnungen erreicht das, reiner
Fließtext selten. Seite 1 gilt als Deckblatt und wird berichtet, nicht bewertet
(`--kein-deckblatt-bonus` schaltet das ab) — ein Deckblatt ist absichtlich dünn.
## Autor und Impressum (verbindlich)
**Autor ist immer Kalina** — nicht der ausführende Agent, nicht „KI", nicht Mathias. Grund
(Mathias, 23.10.2026): das Kalina-System ist der durchführende Part. Gilt ausdrücklich auch
für **Entwürfe**.
- Jedes Dokument endet mit dem **Impressum im Fußband**: Marke, `KALINA · «Dokumenttitel» · Stand …`,
Zeile „Erstellt durch das Kalina-System · «Auftrag/Projekt · Ticket»" und **`© «JJJJ» kalina.si`**.
Die Vorlagen `report.html`, `page.html`, `bild-mit-prompt.html` tragen das bereits — Platzhalter
füllen, nicht löschen.
- **Decks:** Autor auf der Titelfolie, auf der Schlussfolie genügt Marke + `© «JJJJ» kalina.si`
in einer Zeile.
- **HTML:** `<meta name="author" content="Kalina">` und dieselbe Fußzeile.
- **Commit-Autor:** `Kalina <kalina@m-m.bio>`.
- **Prüfung vor Auslieferung:** `kalina.si` per Textsuche im PDF nachweisen (muss auf der letzten
Seite stehen) und das Fußband als Raster ansehen — Marke sichtbar, Copyright vollständig.
Ein Impressum, das allein auf einer leeren Seite landet, ist ein Umbruchfehler: kompakt ins
Fußband, nicht als eigener Abschnitt mit `break-inside: avoid`.
## Vision lokal (verbindlich)
Bildprüfung läuft **lokal auf dem ROG**, nie in der Cloud — gleiches Ergebnis, keine Token-Kosten
(Mathias, 23.10.2026).
- Modelle am Router `http://192.168.188.187:8100/v1`: `rog-vision` (Gemma4-12B, multimodal),
`rog-agent` (Qwen2.5-VL-7B), `rog-ocr` (GLM-OCR für Text im Bild).
- Hermes: `auxiliary.vision.model=rog-vision`, `provider=kalinarouter-auto`. Prüfen mit
`hermes config get auxiliary.vision`; ändern mit `hermes config set`, nicht per Datei-Edit.
- **Nicht `auto` für Bilder**, solange `ollama-cloud` im Auto-Pfad vision-fähig ist — ein belegtes
ROG kann sonst still in die Cloud ausweichen.
- **Stichprobe statt Bilderlawine:** drei Seiten visuell, den Rest geometrisch (Pixel-Hash,
`getBoundingClientRect`, PyMuPDF-Rects). Gemessen: 43 Einzelaufrufe für ein 13-Seiten-PDF
kosteten 10 von 30 erlaubten Run-Minuten.
## Regeln, die aus Fehlern entstanden sind
- **Marke ja, Wortmarke vorsichtig.** Die Marke (Kreis + K + Beeren) ist schriftfrei
+8
View File
@@ -174,8 +174,16 @@ td.zahl, th.zahl { text-align: right; font-variant-numeric: tabular-nums; }
}
.fuss img, .fuss svg { height: 26px; width: 26px; }
/* ---------- Impressum im Fußband (Pflicht am Dokumentende, Autor Kalina) ---------- */
.fuss.impressum { align-items: center; }
.fuss-mitte { flex: 1; line-height: 1.35; }
.fuss-titel { font-weight: 600; color: var(--steel); }
.fuss-titel .i { color: var(--rot); }
.fuss-klein { font-size: 7.6pt; }
/* ---------- Umbruchkontrolle (nur Druck) ---------- */
@media print {
.fuss { break-inside: avoid; }
h1, h2, h3 { break-after: avoid; }
.abschnitt, .plakette, .hinweis { break-inside: avoid; }
table { break-inside: auto; }
+1 -1
View File
@@ -89,7 +89,7 @@
<circle cx="100" cy="122" r="4.5" fill="#c1121f"/>
</svg>
<span>KALINA · «Dokumenttitel» · Stand «TT.MM.JJJJ»</span>
<span>ai.m-m.bio</span>
<span>© «JJJJ» kalina.si</span>
</footer>
</body>
+1 -1
View File
@@ -90,7 +90,7 @@
<footer>
<span>KALINA · «Seitentitel»</span>
<span>Stand «TT.MM.JJJJ» · ai.m-m.bio</span>
<span>Stand «TT.MM.JJJJ» · © «JJJJ» kalina.si</span>
</footer>
</body>
+7 -4
View File
@@ -82,8 +82,8 @@
das i der Wortmarke ist die Beere. «Nur einsetzen, wenn das Dokument die Marke erklären soll.»</p>
</aside>
<!-- FUSSMARKE -->
<footer class="fuss">
<!-- IMPRESSUM (Pflicht am Dokumentende, Autor ist Kalina) -->
<footer class="fuss impressum">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 240" width="26" height="26" aria-label="KALINA Mark">
<circle cx="120" cy="120" r="112" fill="#0e1419" stroke="#2a323c" stroke-width="2"/>
<g fill="none" stroke="#f5f5ef" stroke-width="30" stroke-linecap="square" stroke-linejoin="miter">
@@ -95,8 +95,11 @@
</g>
<circle cx="100" cy="122" r="4.5" fill="#c1121f"/>
</svg>
<span>KALINA · «Dokumenttitel» · Stand «TT.MM.JJJJ»</span>
<span>ai.m-m.bio</span>
<span class="fuss-mitte">
<span class="fuss-titel">KAL<span class="i">I</span>NA · «Dokumenttitel» · Stand «TT.MM.JJJJ»</span><br>
<span class="fuss-klein">Erstellt durch das Kalina-System · «Auftrag/Projekt · Ticket»</span>
</span>
<span>© «JJJJ» kalina.si</span>
</footer>
</body>