Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
f7bccbe8fca84fb81dfcd8d6069ac8865948f2bb9a7e42658ba7a2ac8920481b
b0dc13542dc3d646d3d60af1a29989be66feb93c4f8ab7ab4b7328797cd84b92
2 changes: 1 addition & 1 deletion billing/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
a66d59955dc65fbc07fb3d8a1bebee0ace48754c9fad4c6b8fa971a0844ce010
16ce5f5d2457f0ace4463a8eabe20c76cd6e9a337e65a80d5ea9ad99274259f5
5 changes: 4 additions & 1 deletion chat.css
Original file line number Diff line number Diff line change
Expand Up @@ -213,12 +213,15 @@ html[data-chat-waiting]::after{content:"ask \00b7 " attr(data-chat-waiting);pos
sized to the text; a person's mark is the firm brightness and an agent's the mid, as the
Processes page draws them, and both beat the linked label's own color; a system's element mark
is the firm brightness too, since a system is a thing and not an agent. An open position is a
dashed box with no fill, and the frame the agents of a group stand in is shaded. */
dashed box with no fill, as is a scenario's extension, and the frame the agents of a group
stand in is shaded. */
.rbchat-diagram-box svg .label-icon{width:1.15em;height:1.15em;vertical-align:-.2em;margin-right:.3em}
.rbchat-diagram-box svg .rbchat-mark.human{color:var(--c-firm,var(--ink))!important}
.rbchat-diagram-box svg .rbchat-mark.agent{color:var(--c-mid)!important}
.rbchat-diagram-box svg .rbchat-mark.actor{color:var(--c-firm,var(--ink))!important}
.rbchat-diagram-box svg .rbchat-mark.element{color:var(--c-firm,var(--ink))!important}
.rbchat-diagram-box svg .node.open rect{fill:none!important}
.rbchat-diagram-box svg .node.ext rect{fill:none!important}
.rbchat-diagram-box svg .cluster.agents rect{fill:var(--press)!important}
.rbchat-diagram-reading{margin:.35rem .1rem 0;font-size:.8rem;line-height:1.4;color:var(--dim)}
/* A page's own picture is a preview: fitted to the column, never past its own size, and
Expand Down
12 changes: 7 additions & 5 deletions chat.js
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@
github: "{title} on GitHub", commit: "commit {sha}",
modalClose: "Close \u00b7 Esc",
ask: { from: "The link you opened asks:", label: "A question from the link you opened", send: "Send", edit: "Edit", discard: "Discard" },
diagram: { concepts: "Concepts", process: "Process", neighborhood: "Connections", schema: "Meta-model", context: "Context map", aggregate: "Aggregate", flow: "Flow", lifecycle: "Lifecycle", organization: "Organization", system: "Landscape", holds: "Data held", reading: { context: "One-way arrows run from upstream to downstream; each arrow names the pattern between the two contexts.", aggregate: "The root holds what the diamonds join; the dashed arrows are the events it emits.", flow: "Solid arrows are commands sent to the aggregate, dashed arrows the events it emits; a box names the condition of each branch.", lifecycle: "Each arrow is a step from one state to the next, labeled with the command that takes it where there is one.", organization: "Solid arrows run from a lead to the leads below; a dashed line joins staff to the head they serve; a dashed box is an open position, beside a lead the search for a successor; agents stand in the shaded frame, and a dotted arrow from a person to an agent says who directs it, where an agent with no arrow is directed by everyone in the frame.", system: "Solid arrows run from the system the data comes from to the one that takes it, labeled with the interface, what is carried and how; a dotted line joins a system to what it runs on; a rounded box is a service the system provides; a cylinder is data it holds, by a heavy arrow where its copy leads, a solid one where it writes and a dotted one where it only reads.", holds: "Each cylinder is data kept of the concept named under it; a heavy arrow marks the system whose copy leads, a solid one a system that writes a copy of its own, a dotted one a system that only reads." }, expand: "Open full screen", shut: "Close full screen", zoomIn: "Zoom in", zoomOut: "Zoom out", fit: "Fit", fitTip: "Fit to the screen", failed: "The diagram could not be drawn; this is its source." },
diagram: { concepts: "Concepts", process: "Process", neighborhood: "Connections", schema: "Meta-model", context: "Context map", aggregate: "Aggregate", flow: "Flow", lifecycle: "Lifecycle", organization: "Organization", system: "Landscape", holds: "Data held", usecase: "Use case", scenario: "Scenario", requirements: "Requirements", reading: { context: "One-way arrows run from upstream to downstream; each arrow names the pattern between the two contexts.", aggregate: "The root holds what the diamonds join; the dashed arrows are the events it emits.", flow: "Solid arrows are commands sent to the aggregate, dashed arrows the events it emits; a box names the condition of each branch.", lifecycle: "Each arrow is a step from one state to the next, labeled with the command that takes it where there is one.", organization: "Solid arrows run from a lead to the leads below; a dashed line joins staff to the head they serve; a dashed box is an open position, beside a lead the search for a successor; agents stand in the shaded frame, and a dotted arrow from a person to an agent says who directs it, where an agent with no arrow is directed by everyone in the frame.", system: "Solid arrows run from the system the data comes from to the one that takes it, labeled with the interface, what is carried and how; a dotted line joins a system to what it runs on; a rounded box is a service the system provides; a cylinder is data it holds, by a heavy arrow where its copy leads, a solid one where it writes and a dotted one where it only reads.", holds: "Each cylinder is data kept of the concept named under it; a heavy arrow marks the system whose copy leads, a solid one a system that writes a copy of its own, a dotted one a system that only reads.", usecase: "The actor stands outside the frame, which is the use case's scope; a dashed arrow runs from a use case to one its steps include, a solid one to a feature it asks something of; a hexagon is a requirement it is held to, with a heavy border where it must and a dashed one where it may.", scenario: "The rounded box is the trigger; each box is a step, in order, with who acts; a dashed box is an extension, the condition first and what happens then.", requirements: "A hexagon is a requirement, with a heavy border where it must and a dashed one where it may, in a frame for its kind; an arrow runs to what it applies to, a dotted one to a rule it follows." }, expand: "Open full screen", shut: "Close full screen", zoomIn: "Zoom in", zoomOut: "Zoom out", fit: "Fit", fitTip: "Fit to the screen", failed: "The diagram could not be drawn; this is its source." },
refusal: {
too_long: "That message is over 1,000 characters.",
too_much: "The conversation has grown too long to send; start a new one.",
Expand Down Expand Up @@ -177,7 +177,7 @@
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" },
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", 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." }, 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." },
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.",
Expand Down Expand Up @@ -787,10 +787,11 @@
};
}
// Where Mermaid put a node in its SVG: a group whose id ends in the node's name and a number,
// after `classId` in a class diagram and `flowchart` in a flowchart. The one place that knows
// after `classId` in a class diagram and `flowchart` in a flowchart; a scenario's step is `s0`
// and on and is listed where its actor is a seat. The one place that knows
// it, so a Mermaid release that names them otherwise is fixed here and nowhere else.
function nodeElement(svg, node){
if (!svg || !/^n\d+$/.test(String(node))) return null;
if (!svg || !/^[ns]\d+$/.test(String(node))) return null;
var re = new RegExp("-(?:classId|flowchart)-" + node + "-\\d+$"), all = svg.querySelectorAll("g[id]");
for (var i = 0; i < all.length; i++) if (re.test(all[i].id)) return all[i];
return null;
Expand Down Expand Up @@ -926,6 +927,7 @@
var MARKS = {
human: '<circle cx="8" cy="4.6" r="3.1" fill="currentColor"/><path d="M1.6 15.4a6.4 6.4 0 0 1 12.8 0z" fill="currentColor"/>',
agent: '<g fill="none" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"><rect x="2" y="5.4" width="12" height="8.6" rx="2.6"/><path d="M8 5.4V3.2"/></g><circle cx="8" cy="2.1" r="1.1" fill="currentColor"/><circle cx="5.7" cy="9.6" r="1.05" fill="currentColor"/><circle cx="10.3" cy="9.6" r="1.05" fill="currentColor"/>',
actor: '<circle cx="8" cy="4.6" r="2.6" fill="none" stroke="currentColor" stroke-width="1.4"/><path d="M2.2 15.2a5.8 5.8 0 0 1 11.6 0" fill="none" stroke="currentColor" stroke-width="1.4"/>',
"application-component": '<rect x="4.5" y="2" width="9.5" height="12" rx="1" fill="none" stroke="currentColor" stroke-width="1.4"/><rect x="2" y="4.6" width="5" height="2.4" fill="currentColor"/><rect x="2" y="9" width="5" height="2.4" fill="currentColor"/>',
node: '<path d="M2.5 5.5L5.5 2.5H13.5V10.5L10.5 13.5H2.5ZM2.5 5.5H10.5V13.5M10.5 5.5L13.5 2.5" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linejoin="round"/>',
"system-software": '<circle cx="7" cy="9" r="5.5" fill="none" stroke="currentColor" stroke-width="1.4"/><circle cx="10.5" cy="5.5" r="3.4" fill="none" stroke="currentColor" stroke-width="1.4"/>',
Expand All @@ -936,7 +938,7 @@
function withMarks(m){
if (m && typeof m.registerIconPacks === "function" && !m.rbMarks) {
var icons = {};
Object.keys(MARKS).forEach(function(k){ icons[k] = { body: '<g class="rbchat-mark ' + (k === "human" || k === "agent" ? k : "element " + k) + '">' + MARKS[k] + "</g>" }; });
Object.keys(MARKS).forEach(function(k){ icons[k] = { body: '<g class="rbchat-mark ' + (k === "human" || k === "agent" || k === "actor" ? k : "element " + k) + '">' + MARKS[k] + "</g>" }; });
m.registerIconPacks([{ name: "fak", icons: { prefix: "fak", width: 16, height: 16, icons: icons } }]);
m.rbMarks = true;
}
Expand Down
2 changes: 1 addition & 1 deletion model/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
25216fd5d867f5943a11c39b43e570c2defbba6566610ddf40a58efc044a9de1
f8fee0c7609393753f7c4c1e9d1bae034abae9b0a2d8a97d26f1bb9e1fd00dc9
2 changes: 1 addition & 1 deletion og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
215f61fd4358b2e227f2c1a75f9b88811e4201c98491703665a0b3a364b40db6
c319fa53115f3372ea844e5448f8063d9a864e14a0d2e785bd8f271d1bb20029
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"pin:check": "node pin-check.mjs"
},
"devDependencies": {
"@robertblust/design": "github:robertblust/design#v0.150.0",
"@robertblust/design": "github:robertblust/design#v0.151.0",
"companygraph-mcp-server": "github:companygraph/mcp-server#v0.62.0",
"pdf-lib": "^1.17.1",
"playwright": "^1.63.0",
Expand Down
2 changes: 1 addition & 1 deletion principles/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
64bae13fbbc0037a9dd139b09e83dd6a6d05ff0df08e7ed8560f971c21e0de37
78cc3731f6a85a95229672c8f3f6833fb1aa40f364003f493f239cfd3d32280e
2 changes: 1 addition & 1 deletion privacy/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
aa1304aa5ee6eaf56c3f02a09172435c0021b402a13ecf5aa36409244f2a631e
4e07d23c9d4042a4e4af4a83bc76527ef6bc38ce258ec40a71924d65a68e0f3e
2 changes: 1 addition & 1 deletion problems/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ae868e5c7ec7ad8a7c3dafec9938e7f3bfdf44fa352011a247199195e7b27787
797956323f454d2d46aceea23f0ac5aba64efa23585a626f5b8c828e8e68fa33
2 changes: 1 addition & 1 deletion processes/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
d8a7402ea8878547c0fdc86eef1d45fa7e1d1085befea5f86b8af25e95bc7e4f
e74a58c5d224c5c9fbad1ab7d084baa753b0aaabc7c05943eeedb2391d63271c
2 changes: 1 addition & 1 deletion processes/pictures/answering.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4decf2a5b45e907bf64043674e33cd19047a7ef89a294ce8abb2ba4e553efa00
983410cae0321568b610f7252d21bd21e4d93de12c4d14389e5ffb89d5145dfc
2 changes: 1 addition & 1 deletion processes/pictures/contribution.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5fdaef5728d298b9e5c0320cfb0373807be3f0b904cb14c368a7f8494a679198
78d09e1d6debb1904f328b93ec472f198fbe22ff267105273990614443ff6ffa
2 changes: 1 addition & 1 deletion processes/pictures/deciding.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
e3226dd3d40cc2a7a28c09569d4633a40c5cc41e4038d8fab4613964dacb6b76
6024f02525d1b1fc6ede83faaf6f321418626e0f6e1fa3b69bf4b2811716c02c
2 changes: 1 addition & 1 deletion processes/pictures/delivery.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
04839431a9ead9aa3e9abf4a055eee1282eb4abcedfcffcdb46cf00415ae87ac
9fc548f92799b2c56496b006b9a28ccebda77270a21fe9d79527d58fdb6d41e4
2 changes: 1 addition & 1 deletion processes/pictures/feature-request.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
f670be16664807ea7e53578d92d4b66ed19d063265d30c4759e31c143d3b34eb
337ff9900eefd9efaa1cdb1cc5b4888979794a81abe9dbb592de0ec84123b2b7
2 changes: 1 addition & 1 deletion processes/pictures/narrating.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
f71b67aa8227a5d4d4b5cab392cd7b58e50beb7bf505a20805d64acd55158632
30559298d12eb70970269433e9b7223ee58d9ce05153597db19e40615681232b
2 changes: 1 addition & 1 deletion surfaces/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0541992bc43a0687660fb77fd8c47cb5c314e7ee2b75c6b1bd8b6e56b39c4548
07eccf18ba72fb7772c8386a0e5efa869b5c7087c92bece0930350288582f4c8
2 changes: 1 addition & 1 deletion talks/intro/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
64e4851d50b4f69802e78976c80bef9e5f63c573f02e2d87062178c73083048c
0b812afbe64876220d33988e12a731d557c2a7524a4eb2ee4faeb178de00f943
2 changes: 1 addition & 1 deletion talks/og.sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
455ab5896f92b993f5a29b5d3cfd2c9f11dfd91e40cbef69c998d44ededd9b92
122feefde01e742aec5e0b2a4d2211e7408fd66d037b5cf122bd61f0428e9058
Loading