From 63fa0d79cbf5f400018ac2c809c9d9b9c5508a3a Mon Sep 17 00:00:00 2001 From: Robert Blust Date: Sun, 25 Oct 2026 10:08:59 +0100 Subject: [PATCH] The site takes design 0.158.2 design 0.158.2 has the chat's German say du, as the sign-in at id.blust.ch now does; chat.js is the one file that changes, and the fingerprints that hash it follow, the processes pictures' among them. Verified: npm run design, pictures, pages, og and sitemap; pages:check, design:check, sitemap:check, og:check, test:dupes, test:build; conventions-check. Process: Delivery Phase: Implement Track: Code Co-Authored-By: Claude Opus 5.5 (1M context) --- blog/deciding-well-solved/og.sha | 2 +- blog/og.sha | 2 +- blog/one-question-answered/og.sha | 2 +- chat.js | 39 +++++++++++++++++-------------- ideas/og.sha | 2 +- model/og.sha | 2 +- og.sha | 2 +- package-lock.json | 6 ++--- package.json | 2 +- principles/og.sha | 2 +- privacy/og.sha | 2 +- processes/og.sha | 2 +- processes/pictures/answering.sha | 2 +- processes/pictures/deciding.sha | 2 +- processes/pictures/delivery.sha | 2 +- processes/pictures/narrating.sha | 2 +- surfaces/og.sha | 2 +- talks/deciding-well/cost/og.sha | 2 +- talks/deciding-well/og.sha | 2 +- talks/essential-complexity/og.sha | 2 +- talks/mental-model/og.sha | 2 +- talks/og.sha | 2 +- timeline/og.sha | 2 +- 23 files changed, 45 insertions(+), 42 deletions(-) diff --git a/blog/deciding-well-solved/og.sha b/blog/deciding-well-solved/og.sha index be57bb4..27b871f 100644 --- a/blog/deciding-well-solved/og.sha +++ b/blog/deciding-well-solved/og.sha @@ -1 +1 @@ -30615ff6e4602f98dbcf799b81c980f095c2e5ef64158675abe184dd2614699f +e8362db27ef1c74db498925aef127fcff24975a38a055f3597c5860317432d6f diff --git a/blog/og.sha b/blog/og.sha index 2934aaa..100ac14 100644 --- a/blog/og.sha +++ b/blog/og.sha @@ -1 +1 @@ -3bd8f0fa348f1e49df269b3d9cb0503855508d3a837157ee9c2c9a86b3b22241 +486f812b0edf7b0f3c981eb4dd4709b4218e795cd21d935b6258a3b5803cff50 diff --git a/blog/one-question-answered/og.sha b/blog/one-question-answered/og.sha index 6d52bb4..971976f 100644 --- a/blog/one-question-answered/og.sha +++ b/blog/one-question-answered/og.sha @@ -1 +1 @@ -35217e3d7b71c568f4543fe9ce7a35edb42d017faff68766694743f05adf3ab1 +ed3017add7c3343c626aec13efc4a9d43a13a11a8a850207f35b9732ea2b3070 diff --git a/chat.js b/chat.js index 8fa98bc..2ff7483 100644 --- a/chat.js +++ b/chat.js @@ -189,11 +189,14 @@ } }, // German: drafts for the translator of conventions/TRANSLATOR.md, to be made from the - // reviewed English. + // reviewed English. The chat says du, not Sie, by the owner's choice and against WRITING.md's + // rule for pages, because the sign-in it sends a reader to, id.blust.ch, says du, and the + // chat's answers do too (companygraph/chat-server's prompt): a reader meets one form from + // the panel to the login and back, while the page around the panel keeps Sie. de: { open: "Das Modell fragen", close: "Schliessen", title: "Das Modell fragen", size: "Grösse des Chats ändern", - placeholder: "Fragen Sie das Modell…", waiting: "Wird gefragt…", - ai: "Hier antwortet eine KI, keine Person.", notice: "Ihre Nachricht und der bisherige Verlauf gehen an {host}, das das Modell und Claude über Anthropics API fragt. Gesendet wird erst, wenn Sie auf Senden drücken. Das Gespräch bleibt in diesem Tab, ist also auf der nächsten Seite noch da, und endet, wenn Sie den Tab schliessen.", + placeholder: "Frag das Modell…", waiting: "Wird gefragt…", + ai: "Hier antwortet eine KI, keine Person.", notice: "Deine Nachricht und der bisherige Verlauf gehen an {host}, das das Modell und Claude über Anthropics API fragt. Gesendet wird erst, wenn du auf Senden drückst. Das Gespräch bleibt in diesem Tab, ist also auf der nächsten Seite noch da, und endet, wenn du den Tab schliesst.", privacy: "Datenschutz", privacyHref: "/privacy/", from: "Aus dem Modell", questions: "Fragen für den Einstieg", next: "Weitere Fragen", follow: { schema: "Zeig mir das Schema von {title} ({type})", neighbors: "Zeig mir die Nachbarn von {title}", more: "Erzähl mir mehr über {title}" }, @@ -208,10 +211,10 @@ claimsOne: "Eine Aussage in dieser Antwort ist durch die Seiten des Modells nicht vollständig belegt.", claimsMany: "{n} Aussagen in dieser Antwort sind durch die Seiten des Modells nicht vollständig belegt.", keys: { send: "Enter senden", last: "↑ letzte Frage", pick: "{range} wählen", help: "/help", chosen: "{model} · {effort}" }, menu: { model: "Modell wählen", effort: "Aufwand wählen" }, - signInHint: "Melden Sie sich mit /login an, um ein Modell zu wählen.", - effortHint: "Den Aufwand können Sie wählen, sobald Ihre Anmeldung ein Modell erlaubt.", - help: [["/new", "ein neues Gespräch beginnen (auch /clear)"], ["/login", "anmelden, um ein Modell zu wählen"], ["/logout", "abmelden"], ["/model", "das antwortende Modell wählen"], ["/effort", "wählen, wie lange es nachdenkt"], ["/help", "diese Liste"], ["{range}", "aus dem Menü darüber wählen"], ["↑", "Ihre letzte Frage zurück in die Zeile"]], - tryLabel: "Probieren Sie", askNext: "Fragen Sie weiter", + signInHint: "Melde dich mit /login an, um ein Modell zu wählen.", + effortHint: "Den Aufwand kannst du wählen, sobald deine Anmeldung ein Modell erlaubt.", + help: [["/new", "ein neues Gespräch beginnen (auch /clear)"], ["/login", "anmelden, um ein Modell zu wählen"], ["/logout", "abmelden"], ["/model", "das antwortende Modell wählen"], ["/effort", "wählen, wie lange es nachdenkt"], ["/help", "diese Liste"], ["{range}", "aus dem Menü darüber wählen"], ["↑", "deine letzte Frage zurück in die Zeile"]], + tryLabel: "Probier mal", askNext: "Frag weiter", versions: "Meta-Modell {core} · Modell {sha}", versionsModel: "Modell {sha}", graph: { head: "Graph · {title}", failed: "Der Graph liess sich hier nicht zeichnen; die Modellseite zeigt ihn." }, try: { @@ -224,27 +227,27 @@ list: "Liste {list} als Tabelle auf", listGets: "eine Zeile je Eintrag, jeder Name ein Link ins Modell", lists: { kpi: "die KPIs", seat: "die Sitze", product: "die Produkte", decision: "die Entscheide", value: "die Werte" } }, - again: { sentence: "Sie können {when} wieder fragen.", minute: "in einer Minute", minutes: "in {n} Minuten", at: "um {time}", tomorrow: "morgen um {time}", day: "am {day} um {time}" }, + again: { sentence: "Du kannst {when} wieder fragen.", minute: "in einer Minute", minutes: "in {n} Minuten", at: "um {time}", tomorrow: "morgen um {time}", day: "am {day} um {time}" }, github: "{title} auf GitHub", commit: "Commit {sha}", modalClose: "Schliessen \u00b7 Esc", - ask: { from: "Der Link, den Sie geöffnet haben, enthält diese Frage:", label: "Eine Frage aus dem Link, den Sie geöffnet haben", send: "Senden", edit: "Bearbeiten", discard: "Verwerfen" }, + ask: { from: "Der Link, den du geöffnet hast, enthält diese Frage:", label: "Eine Frage aus dem Link, den du geöffnet hast", send: "Senden", edit: "Bearbeiten", discard: "Verwerfen" }, diagram: { concepts: "Konzepte", process: "Prozess", neighborhood: "Verbindungen", schema: "Meta-Modell", context: "Context Map", aggregate: "Aggregat", flow: "Ablauf", lifecycle: "Lebenszyklus", organization: "Organisation", system: "Landschaft", holds: "Datenbestand", usecase: "Anwendungsfall", scenario: "Szenario", requirements: "Anforderungen", reading: { context: "Einfache Pfeile laufen vom Upstream- zum Downstream-Kontext; jeder Pfeil nennt das Muster zwischen den beiden Kontexten.", aggregate: "Die Wurzel des Aggregats hält, was die Rauten verbinden; die gestrichelten Pfeile sind die Ereignisse, die sie auslöst.", flow: "Durchgezogene Pfeile sind Befehle an das Aggregat, gestrichelte die Ereignisse, die es auslöst; ein Kasten nennt die Bedingung jedes Zweigs.", lifecycle: "Jeder Pfeil ist ein Schritt von einem Zustand zum nächsten, beschriftet mit dem Befehl, der ihn auslöst, wo es einen gibt.", organization: "Durchgezogene Pfeile laufen von einer Führungskraft zu den Führungskräften darunter; eine gestrichelte Linie verbindet eine Stabsstelle mit der Leitung, der sie zuarbeitet; ein gestrichelter Kasten ist eine offene Stelle, neben einer Führungskraft die Suche nach ihrer Nachfolge; Software-Agenten stehen im farbig hinterlegten Rahmen, und ein gepunkteter Pfeil von einer Person zu einem Agenten sagt, wer ihn steuert; ein Agent ohne Pfeil wird von allen im Rahmen gesteuert.", system: "Durchgezogene Pfeile laufen vom System, aus dem die Daten stammen, zum System, das sie übernimmt, beschriftet mit der Schnittstelle und mit dem, was übertragen wird und wie; eine gepunktete Linie verbindet ein System mit dem, worauf es läuft; ein abgerundeter Kasten ist ein Service, den das System bereitstellt; ein Zylinder ist ein Datenbestand, den es hält – mit einem dicken Pfeil, wo seine Kopie führend ist, einem durchgezogenen, wo es schreibt, und einem gepunkteten, wo es nur liest.", holds: "Jeder Zylinder ist ein Datenbestand zum darunter genannten Konzept; ein dicker Pfeil markiert das System, dessen Kopie führend ist, ein durchgezogener ein System, das eine eigene Kopie schreibt, ein gepunkteter ein System, das nur liest.", usecase: "Der Rahmen ist der Geltungsbereich des Anwendungsfalls, und der Akteur steht ausserhalb; ein gestrichelter Pfeil läuft von einem Anwendungsfall zu einem anderen, den seine Schritte einbinden, ein durchgezogener zu einem Feature, von dem er etwas verlangt; ein Sechseck ist eine Anforderung, die für den Anwendungsfall gilt, mit dickem Rand, wo sie «muss» sagt, und gestricheltem, wo sie «darf» sagt.", scenario: "Der abgerundete Kasten ist der Auslöser; die Kästen sind die Schritte in ihrer Reihenfolge, und jeder nennt, wer handelt; ein gestrichelter Kasten ist eine Erweiterung: zuerst die Bedingung, dann, was geschieht.", requirements: "Ein Sechseck ist eine Anforderung, mit dickem Rand, wo sie «muss» sagt, und gestricheltem, wo sie «darf» sagt; der Rahmen um sie nennt ihre Art; ein Pfeil läuft zu dem, wofür sie gilt, ein gepunkteter zu einer Regel, der sie folgt." }, expand: "Im Vollbild öffnen", shut: "Vollbild schliessen", zoomIn: "Vergrössern", zoomOut: "Verkleinern", fit: "Einpassen", fitTip: "Auf den Bildschirm einpassen", failed: "Das Diagramm konnte nicht gezeichnet werden; dies ist seine Quelle." }, refusal: { too_long: "Diese Nachricht ist länger als 1’000 Zeichen.", - too_much: "Das Gespräch ist zu lang geworden, um es zu senden; beginnen Sie ein neues.", - busy: "Im Moment zu viele Nachrichten; versuchen Sie es später wieder.", + too_much: "Das Gespräch ist zu lang geworden, um es zu senden; beginne ein neues.", + busy: "Im Moment zu viele Nachrichten; versuche es später wieder.", over_day: "Der heutige Anteil an Antworten ist aufgebraucht; morgen gibt es mehr.", over_month: "Der Anteil dieses Monats an Antworten ist aufgebraucht.", closed: "Der Chat ist zurzeit abgeschaltet.", - host_down: "Der Host des Modells hat nicht geantwortet; versuchen Sie es gleich wieder.", + host_down: "Der Host des Modells hat nicht geantwortet; versuche es gleich wieder.", foreign: "Diese Seite darf den Chat nicht nutzen.", bad_request: "Das konnte nicht als Nachricht gesendet werden.", - internal: "Unterwegs ist etwas schiefgegangen; versuchen Sie es noch einmal.", - network: "Der Chat war nicht erreichbar; prüfen Sie die Verbindung und versuchen Sie es wieder.", - not_granted: "Ihre Anmeldung erlaubt dieses Modell nicht.", - signed_out: "Sie sind abgemeldet; melden Sie sich mit /login wieder an.", - over_user_month: "Ihr Anteil an Antworten in diesem Monat ist aufgebraucht; melden Sie sich mit /logout ab, um als Gast weiterzufragen.", - declined: "Dieses Modell hat die Antwort auf diese Nachricht abgelehnt; formulieren Sie sie anders." + internal: "Unterwegs ist etwas schiefgegangen; versuche es noch einmal.", + network: "Der Chat war nicht erreichbar; prüfe die Verbindung und versuche es wieder.", + not_granted: "Deine Anmeldung erlaubt dieses Modell nicht.", + signed_out: "Du bist abgemeldet; melde dich mit /login wieder an.", + over_user_month: "Dein Anteil an Antworten in diesem Monat ist aufgebraucht; melde dich mit /logout ab, um als Gast weiterzufragen.", + declined: "Dieses Modell hat die Antwort auf diese Nachricht abgelehnt; formuliere sie anders." } } }; diff --git a/ideas/og.sha b/ideas/og.sha index d7a892f..a194706 100644 --- a/ideas/og.sha +++ b/ideas/og.sha @@ -1 +1 @@ -75234c0f404af64cbd9120b21b4513f4727b56fe0bb2ec1a9159b93d07021e39 +b1565dd894b95c67eae09b7bd1ceda99a38bee92f051388b00aec5a488114d2e diff --git a/model/og.sha b/model/og.sha index 11bd52b..ba3b69b 100644 --- a/model/og.sha +++ b/model/og.sha @@ -1 +1 @@ -72df148f8608d09751e90c830a8be5a05eccf5d6f2f0a1a889c7dd2b68b20ff2 +4093a766b716adfd0636ff27a7a864232e83646eee091e4e8bcea0490a1ceb1e diff --git a/og.sha b/og.sha index 6da22e9..1c9eccb 100644 --- a/og.sha +++ b/og.sha @@ -1 +1 @@ -9a4fcf891e9d017eedc3161d91743ebfe26942abb992e0f90ef36c8da5d1c543 +434162c4fca70b6d72e9374401801e625c188438fb381db2b80b354ac35ff549 diff --git a/package-lock.json b/package-lock.json index 670ff07..d2a4a10 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "companygraph-meta-model": "github:companygraph/meta-model#v0.94.0" }, "devDependencies": { - "@robertblust/design": "github:robertblust/design#v0.158.1", + "@robertblust/design": "github:robertblust/design#v0.158.2", "companygraph-mcp-server": "github:companygraph/mcp-server#v0.69.0", "pdf-lib": "^1.17.1", "playwright": "^1.64.1" @@ -95,8 +95,8 @@ } }, "node_modules/@robertblust/design": { - "version": "0.158.1", - "resolved": "git+ssh://git@github.com/robertblust/design.git#a12abba59e269c0fcff7a2ed364c3cef7365a718", + "version": "0.158.2", + "resolved": "git+ssh://git@github.com/robertblust/design.git#5a3e8bcedbdaaa1d793bfc04577b564711ae417a", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/package.json b/package.json index 90b286e..738eeec 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "pin:check": "node pin-check.mjs" }, "devDependencies": { - "@robertblust/design": "github:robertblust/design#v0.158.1", + "@robertblust/design": "github:robertblust/design#v0.158.2", "companygraph-mcp-server": "github:companygraph/mcp-server#v0.69.0", "pdf-lib": "^1.17.1", "playwright": "^1.64.1" diff --git a/principles/og.sha b/principles/og.sha index 8de048d..032ee73 100644 --- a/principles/og.sha +++ b/principles/og.sha @@ -1 +1 @@ -b3982b01172fa3aaf554d737db15ba75f83f52543da0766ce94005a40d5561f9 +538a4919d09f1b37005ecd8a071de166311929cc4f9c14297ae675c70cc83a66 diff --git a/privacy/og.sha b/privacy/og.sha index 92b6a06..1b9187a 100644 --- a/privacy/og.sha +++ b/privacy/og.sha @@ -1 +1 @@ -3f82952f631c1c5b801124547154e60f14042dded192387d09d72e86ac3e5dc1 +471b6c68ed2abe748c60f825ea56f0738c7d1ef8a1b5975efaddfcf2b48ca306 diff --git a/processes/og.sha b/processes/og.sha index a799fed..651d8ce 100644 --- a/processes/og.sha +++ b/processes/og.sha @@ -1 +1 @@ -1e3e7ece157392dda87d979f43d1528c95bf0c9d9d31edc9a6a3d9d4ea103363 +f8a8745cbff637f6dc77b873da4f46a2bd1b8de7f52b863f5755a552ae6b2e92 diff --git a/processes/pictures/answering.sha b/processes/pictures/answering.sha index ea218c9..cf6c62d 100644 --- a/processes/pictures/answering.sha +++ b/processes/pictures/answering.sha @@ -1 +1 @@ -481bbc7ce7f196613812a8250a2f27b683d6d03f5106b732ebccdfc774bb20d7 +8e17666c4f962768365ebbaf96b043ca18cb5cda615956e58d2ccf92b85e29c8 diff --git a/processes/pictures/deciding.sha b/processes/pictures/deciding.sha index ccd7f6d..cb9e162 100644 --- a/processes/pictures/deciding.sha +++ b/processes/pictures/deciding.sha @@ -1 +1 @@ -00395d56cb45f9aa3b619eb1fd2f1978a82a7b2fd5beecfe02e43ecf53f55ba6 +f082b9822bc98b32c85a24b80b1abf8192e79964966836b3b03b116dd6876279 diff --git a/processes/pictures/delivery.sha b/processes/pictures/delivery.sha index 1350148..c364c87 100644 --- a/processes/pictures/delivery.sha +++ b/processes/pictures/delivery.sha @@ -1 +1 @@ -8885d731495876333dba041e9a790dd4a5fc274a302032d6f098d3da781a9e02 +029de1830614f38a16f00e9ce52a8876f39836588a52bbbf3013179e0e1afe95 diff --git a/processes/pictures/narrating.sha b/processes/pictures/narrating.sha index 32856b9..8173a1f 100644 --- a/processes/pictures/narrating.sha +++ b/processes/pictures/narrating.sha @@ -1 +1 @@ -3a27f6a4a892a659e9b44b36a8e2b18d1dc07a189363f09184b2e5741644727f +b7e0988567cb173727627435c994b28896c9d4c95939b439382f30ce946ed7e3 diff --git a/surfaces/og.sha b/surfaces/og.sha index e1331d2..e075973 100644 --- a/surfaces/og.sha +++ b/surfaces/og.sha @@ -1 +1 @@ -5bdefd81581a794b46f2d3eb01353dfc72c082d138ee9c6ac2ba278e8537e567 +01d3d7e3b8c6fd4ad085e12b7bae97c2c6eaa6af0806b4106c059b8580ce12a6 diff --git a/talks/deciding-well/cost/og.sha b/talks/deciding-well/cost/og.sha index 1c40c74..7e25b12 100644 --- a/talks/deciding-well/cost/og.sha +++ b/talks/deciding-well/cost/og.sha @@ -1 +1 @@ -24c8a340e067028e6c192524354f190b51bef4b150b83a5d9013bbe97b794e74 +41196ec7d5528987e7ca37f4b1677d866bd304344486e4bd32be1fdfe314a9c5 diff --git a/talks/deciding-well/og.sha b/talks/deciding-well/og.sha index 321f94c..aae60b8 100644 --- a/talks/deciding-well/og.sha +++ b/talks/deciding-well/og.sha @@ -1 +1 @@ -4a22658eb75ab5831002072ded4fb5fb6fdbac46a2398f275bf012541c68218a +78c6d37125e90157986d31b509cb07477df5ae29f35ed35e843220aa589ffc44 diff --git a/talks/essential-complexity/og.sha b/talks/essential-complexity/og.sha index 899f495..62f5686 100644 --- a/talks/essential-complexity/og.sha +++ b/talks/essential-complexity/og.sha @@ -1 +1 @@ -1dc0d44cce05ccfaa7e06aa158c8e8ff1cae37f30b8bb6b6d64138b843f8c1c1 +2ca758a02320e72f0384e5e39e120f6a2f7d333d304b3312e017bdc932ab6979 diff --git a/talks/mental-model/og.sha b/talks/mental-model/og.sha index 39fd5d4..2139976 100644 --- a/talks/mental-model/og.sha +++ b/talks/mental-model/og.sha @@ -1 +1 @@ -937410438692ad3465f13df975ff38a6292f293b8d6db5c567c413f19eefc0bd +c5c0be93b8404235133c6b86a5b2c2a813f7a45e46f15311ba4458644108119e diff --git a/talks/og.sha b/talks/og.sha index c96a84a..dbb0ca1 100644 --- a/talks/og.sha +++ b/talks/og.sha @@ -1 +1 @@ -c8fa26a296219f279f5cc1d57176bc561f2a4ef0d5dfa74a854d1c218cc0db49 +43e125a2cc0ae977351dfc53da248ad8175a60fe44fc98cce9412b0e1855476d diff --git a/timeline/og.sha b/timeline/og.sha index af837b6..c30ef03 100644 --- a/timeline/og.sha +++ b/timeline/og.sha @@ -1 +1 @@ -4c7493a9ae2c808281db4eb6aa94dbca8d079d4c9d8a8eb0d26716b7f0ae7d46 +db3dd1fc016584be02c02034f1cdd5b0e6ca963d92681f61626365c348fe5b00