Regeln: hivegrid-cloud als neue Basis, Redaktionsplan mit Post 7 fertig

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
dejanandClaude Opus 5.5 committed 2026-10-20 15:55:49 +02:00
1 parent bc2a05012d
commit b61f029a36
4 files changed
+70 -8

No files matched your search

+3
View File
@@ -5,3 +5,6 @@ redaktionsplan/*.html
# Wegwerf-Profil des Browsers beim Bau der Video-Komponenten
video/.chrome/
# Python-Zwischendateien von serve.py
__pycache__/
Binary file not shown.
+7 -2
View File
@@ -63,6 +63,11 @@ def slots(start: date, anzahl: int, auslassen=frozenset()):
# Thema, Format, Ziel. Reihenfolge ist nicht beliebig: erst warum es uns gibt,
# dann die Haltung, dann die Funktionen von der täglichen Last nach hinten zu
# dem, was Vorwissen braucht.
# E-Mail-Marketing und Zettelwirtschaft sind am 11.09.2026 getauscht worden.
# Die Reihenfolge geht sonst von der taeglichen Last nach hinten zu dem, was
# Vorwissen braucht -- Zettelwirtschaft ist aber der einzige Beitrag ohne
# Produkt dahinter und muss deshalb erst gebaut werden, waehrend E-Mail-
# Marketing eine fertige Oberflaeche zum Zeigen hat.
PLAN = [
("Die Geschichte", "Carousel, 6", "Herkunft. Warum es HiveGrid gibt."),
("Verbinden statt ersetzen", "Einzelbild", "Haltung. Die Kernaussage in einem Satz."),
@@ -70,8 +75,8 @@ PLAN = [
("Projektmanagement", "Carousel", "Der Überblick, den jeder Betrieb vermisst."),
("Team-Chat", "Carousel", "Ein Kanal pro Projekt, Foto rein, Aufgabe raus."),
("Form Builder", "Carousel", "Vom Kontaktformular bis zum Aufmaß."),
("Zettelwirtschaft", "Carousel", "Wissen ohne Produkt. Wo im Betrieb Zeit verloren geht."),
("E-Mail-Marketing", "Carousel", "Aus Anfragen werden Kontakte, aus Kontakten Aufträge."),
("Zettelwirtschaft", "Carousel", "Wissen ohne Produkt. Wo im Betrieb Zeit verloren geht."),
("Mitarbeiter-Management", "Carousel", "Wer kann was, wer ist wo, wer braucht was."),
("Der Betrieb dahinter", "Carousel", "Vierte Generation SHK. Keine Studio-Bilder."),
("KI-Anbindung, MCP", "Carousel", "Externe KI darf mitlesen, ohne Datenabfluss."),
@@ -86,7 +91,7 @@ TERMINE = slots(START, len(PLAN), AUSGELASSEN)
# Wie viele Beitraege fertig im Generator liegen. Sie sind in der Tabelle
# gelb hinterlegt, und der Satz darueber nennt die Zahl -- beides kommt aus
# derselben Konstante, damit es nicht auseinanderlaeuft.
FERTIG = 6
FERTIG = 7
ZAHLWORT = {1: "Der eine markierte Termin ist", 2: "Die beiden markierten Termine sind",
3: "Die drei markierten Termine sind", 4: "Die vier markierten Termine sind",
5: "Die fünf markierten Termine sind", 6: "Die sechs markierten Termine sind",
+60 -6
View File
@@ -10,6 +10,39 @@ Der Generator läuft lokal: `./serve.sh` → <http://127.0.0.1:4321/post1.html>
## 1. Wo die Wahrheit steht
> **Neue Basis ab 12.10.2026: `hivegrid-cloud`.** Das ist die aktuelle Version
> der Software, mit den neuen Komponenten. Neue Posts bauen auf ihrem Look auf,
> nicht mehr auf der Website. Bei Zweifel dort nachschauen:
>
> | Was | Quelle in `hivegrid-cloud/` |
> |---|---|
> | Farben, Schriftgrößen, Radien, Schatten | `apps/web/app/ui/theme.css` |
> | Komponenten (109, aus Subframe) | `apps/web/app/ui/components/` |
> | Subframe-Projekt | `f023064a5ca0`, siehe `.subframe/sync.json` |
> | Schrift-Dateien | `apps/web/public/fonts/instrument-sans-*.woff2` |
> | Module und Screens | `apps/web/app/modules/` |
> | Logo | `apps/web/app/ui/components/Logo/` |
>
> Die wichtigsten Werte aus `theme.css`:
>
> | Was | Wert |
> |---|---|
> | Schrift | Instrument Sans (heute hier: Manrope) |
> | Text, Knöpfe | `#24242B` (grey-900), Knöpfe sind fast schwarz |
> | Text zweitrangig | `#505057`, drittrangig `#6D6D71` |
> | Markengelb | `#F1B729` (brand-600), unverändert |
> | Zweitfarbe | Sky `#0791F0` (brand-secondary-500) |
> | Flächen | `#FAFAFA` und `#F5F4F4` |
> | Rahmen | `#E5E5E5` (neutral-200) |
> | Radien | 4, 8, 12 px |
> | Größen | Hero 72/72, Seite 48/56, Untertitel 32/40, alle 600 |
> | Symbole | Feather über `@subframe/core` (heute hier: Phosphor) |
>
> Drei Punkte widersprechen den bisherigen Regeln und sind noch nicht
> entschieden: die Schatten (`--shadow-md`, `--shadow-lg`) gegen §5 „Keine
> Schatten“, der Rahmen `#E5E5E5` gegen `#D5DBE1` aus §1a, Feather gegen
> Phosphor. Die Werte sind hier noch nicht gespiegelt.
Alle Marken-Werte stammen aus der Website, nicht aus diesem Repo. Bei Zweifel
**dort nachschauen, nicht hier raten**:
@@ -362,12 +395,33 @@ Quelle kam. Seitdem prüft es die Maschine, an zwei Stellen:
| Bildexport | `renderSlide()` bricht ab, bevor ein PNG entsteht |
| Bewegtbild | `animation.mjs` prüft an 24 Stellen über den Ablauf |
**Ein reines Muster genügt dafür nicht.** Deutsch schreibt „neue“, „Dauer“ und
„Michael“ völlig zu Recht mit `ae`/`oe`/`ue`. Nachgezählt über den gezeichneten
Text aller Projekte sind es aber nur eine Handvoll solcher Wörter — deshalb
Muster **plus** Ausnahmeliste `UMLAUT_ERLAUBT`. Bei `ss` ist es umgekehrt:
fast immer richtig (dass, Schluss, Netzanschluss), nur wenige Wörter brauchen
ein scharfes s. Die stehen einzeln in `BRAUCHT_SCHARFES_S`.
Geprüft wird beides: fehlende Umlaute **und** Em-Dashes. Die Em-Dash-Regel
stand von Anfang an hier und wurde in Post 8 trotzdem gebrochen — eine Regel,
die nur im Dokument steht, hält nur so lange, wie jemand daran denkt.
**Bei den Umlauten genügt ein reines Muster nicht**, aber fast. Ein
ersatzweise geschriebenes `ae`/`oe`/`ue` steht nie hinter einem Vokal: „für“,
„über“, „grün“, „Sanitär“, „Lüftung“ folgen alle auf einen Konsonanten oder
stehen am Wortanfang. Hinter einem Vokal sind es dagegen immer zwei eigene
Laute — bauen, Bauer, neue, Dauer, Steuer, Mauer, genauer. Das Muster prüft
deshalb `(^|[^aeiou])(ae|oe|ue)`, und die Ausnahmeliste `UMLAUT_ERLAUBT` ist
auf die echten Sonderfälle geschrumpft: „Michael“ (ae hinter h), „aktuell“
(ue hinter t). Vorher standen dort sechs Wörter nach demselben Muster, und
die Liste wäre mit jedem Beitrag weitergewachsen.
Bei `ss` ist es umgekehrt: fast immer richtig (dass, Schluss, Netzanschluss),
nur wenige Wörter brauchen ein scharfes s. Die stehen einzeln in
`BRAUCHT_SCHARFES_S`.
**Mailadressen und Domains sind ausgenommen.** In `buero@muster-shk.de` kann
gar kein ü stehen; die umlautfreie Schreibung ist dort keine Schludrigkeit,
sondern Pflicht.
**Ein Zeilenumbruch ist eine Wortgrenze.** Die Prüfung liest nicht
`textContent`, sondern die einzelnen Textknoten mit Leerzeichen dazwischen.
Sonst klebt eine Überschrift wie „Formulare selbst bauen.`<br>`Per
Drag-and-drop.“ zu `bauen.Per` zusammen — ein Wort, das es nicht gibt, das
aber `ue` enthält und die Prüfung auslöst.
Schlägt die Prüfung bei einem Wort an, das so richtig ist, gehört es in die
Ausnahmeliste — nicht die Prüfung abgeschaltet.