diff --git a/docs/presentations/assets/mmd/leadership-slide-1.mmd b/docs/presentations/assets/mmd/leadership-slide-1.mmd new file mode 100644 index 0000000..21d11e0 --- /dev/null +++ b/docs/presentations/assets/mmd/leadership-slide-1.mmd @@ -0,0 +1,23 @@ +%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#1B1B1B','primaryBorderColor':'#D6002A','primaryTextColor':'#fff','secondaryColor':'#fff','secondaryBorderColor':'#D6002A','secondaryTextColor':'#1B1B1B','tertiaryColor':'#F0F0F0','lineColor':'#1B1B1B','fontFamily':'"Helvetica Neue","Arial",sans-serif'}}}%% +flowchart LR + subgraph F["The friction"] + F1["Authored by
non-specialists"] + F2["Every change
gated"] + F3["Compliance
checked late"] + end + F1 --- F2 + F2 --- F3 + F --> N + subgraph N["Nova absorbs all three"] + N1["Owned
building blocks"] + N2["Separation
of concerns"] + N3["Attested compliance
up front"] + end + style F fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A + style N fill:#1B1B1B,color:#fff,stroke:#D6002A + style F1 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A + style F2 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A + style F3 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A + style N1 fill:#1B1B1B,color:#fff,stroke:#D6002A + style N2 fill:#1B1B1B,color:#fff,stroke:#D6002A + style N3 fill:#1B1B1B,color:#fff,stroke:#D6002A \ No newline at end of file diff --git a/docs/presentations/assets/mmd/leadership-slide-2.mmd b/docs/presentations/assets/mmd/leadership-slide-2.mmd new file mode 100644 index 0000000..3d34143 --- /dev/null +++ b/docs/presentations/assets/mmd/leadership-slide-2.mmd @@ -0,0 +1,10 @@ +%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#1B1B1B','primaryBorderColor':'#D6002A','primaryTextColor':'#fff','secondaryColor':'#fff','secondaryBorderColor':'#D6002A','secondaryTextColor':'#1B1B1B','tertiaryColor':'#F0F0F0','lineColor':'#1B1B1B','fontFamily':'"Helvetica Neue","Arial",sans-serif'}}}%% +flowchart TB + CIT["Central IT curates
the golden OS image"] + NOVA["Nova curates
the cloud infrastructure"] + CONSUMER["Consumer declares
a contract"] + CIT -->|own, patch, ship| NOVA + NOVA -->|own, patch, attest| CONSUMER + style CIT fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A + style NOVA fill:#1B1B1B,color:#fff,stroke:#D6002A + style CONSUMER fill:#fff,color:#1B1B1B,stroke:#D6002A \ No newline at end of file diff --git a/docs/presentations/assets/mmd/leadership-slide-3.mmd b/docs/presentations/assets/mmd/leadership-slide-3.mmd new file mode 100644 index 0000000..22aac2e --- /dev/null +++ b/docs/presentations/assets/mmd/leadership-slide-3.mmd @@ -0,0 +1,17 @@ +%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#1B1B1B','primaryBorderColor':'#D6002A','primaryTextColor':'#fff','secondaryColor':'#fff','secondaryBorderColor':'#D6002A','secondaryTextColor':'#1B1B1B','tertiaryColor':'#F0F0F0','lineColor':'#1B1B1B','fontFamily':'"Helvetica Neue","Arial",sans-serif'}}}%% +flowchart LR + T1["Sovereign
boundary"] + T2["Lower autonomous
higher attested"] + I1["Four-layer
model"] + I2["HITL
gates"] + I3["Contract
schema"] + T1 --> I1 + T1 --> I3 + T2 --> I2 + T2 --> I3 + T1 -.-> T2 + style T1 fill:#1B1B1B,color:#fff,stroke:#D6002A + style T2 fill:#1B1B1B,color:#fff,stroke:#D6002A + style I1 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A + style I2 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A + style I3 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A \ No newline at end of file diff --git a/docs/presentations/assets/mmd/leadership-slide-4.mmd b/docs/presentations/assets/mmd/leadership-slide-4.mmd new file mode 100644 index 0000000..cbff1d7 --- /dev/null +++ b/docs/presentations/assets/mmd/leadership-slide-4.mmd @@ -0,0 +1,9 @@ +%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#1B1B1B','primaryBorderColor':'#D6002A','primaryTextColor':'#fff','secondaryColor':'#fff','secondaryBorderColor':'#D6002A','secondaryTextColor':'#1B1B1B','tertiaryColor':'#F0F0F0','lineColor':'#1B1B1B','fontFamily':'"Helvetica Neue","Arial",sans-serif'}}}%% +flowchart LR + L["Live today
41 capabilities
12 domains"] + A["Attested on
promotion
named human approver"] + H["Stays human
by design
escalation below threshold"] + L --> A --> H + style L fill:#1B1B1B,color:#fff,stroke:#D6002A + style A fill:#1B1B1B,color:#fff,stroke:#D6002A + style H fill:#1B1B1B,color:#fff,stroke:#D6002A \ No newline at end of file diff --git a/docs/presentations/assets/mmd/leadership-slide-5.mmd b/docs/presentations/assets/mmd/leadership-slide-5.mmd new file mode 100644 index 0000000..b895af6 --- /dev/null +++ b/docs/presentations/assets/mmd/leadership-slide-5.mmd @@ -0,0 +1,23 @@ +%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#1B1B1B','primaryBorderColor':'#D6002A','primaryTextColor':'#fff','secondaryColor':'#fff','secondaryBorderColor':'#D6002A','secondaryTextColor':'#1B1B1B','tertiaryColor':'#F0F0F0','lineColor':'#1B1B1B','fontFamily':'"Helvetica Neue","Arial",sans-serif'}}}%% +flowchart LR + subgraph IN["In Nova's lane"] + I1["Infrastructure
primitives"] + I2["Operational
guardrails"] + I3["CVE response
infra layer"] + end + C["The
contract"] + subgraph OUT["Outside Nova's lane"] + O1["Application
business logic"] + O2["IDE & sprint
workflows"] + O3["AppSec &
dependency review"] + end + IN --- C --- OUT + style IN fill:#1B1B1B,color:#fff,stroke:#D6002A + style OUT fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A + style C fill:#fff,color:#D6002A,stroke:#D6002A + style I1 fill:#1B1B1B,color:#fff,stroke:#D6002A + style I2 fill:#1B1B1B,color:#fff,stroke:#D6002A + style I3 fill:#1B1B1B,color:#fff,stroke:#D6002A + style O1 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A + style O2 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A + style O3 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A \ No newline at end of file diff --git a/docs/presentations/assets/mmd/leadership-slide-6.mmd b/docs/presentations/assets/mmd/leadership-slide-6.mmd new file mode 100644 index 0000000..5f817b7 --- /dev/null +++ b/docs/presentations/assets/mmd/leadership-slide-6.mmd @@ -0,0 +1,11 @@ +%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#1B1B1B','primaryBorderColor':'#D6002A','primaryTextColor':'#fff','secondaryColor':'#fff','secondaryBorderColor':'#D6002A','secondaryTextColor':'#1B1B1B','tertiaryColor':'#F0F0F0','lineColor':'#1B1B1B','fontFamily':'"Helvetica Neue","Arial",sans-serif'}}}%% +flowchart LR + A["α
Now → Q4'26
Operating model +
federated governance"] + B["β
Q1'27
Auto-published
infra observability"] + G["γ
Q2'27
Runbook generation
from telemetry"] + D["δ
Q3'27 → Q4'27
Audit ledger
tamper-resistant"] + A --> B --> G --> D + style A fill:#1B1B1B,color:#fff,stroke:#D6002A + style B fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A + style G fill:#1B1B1B,color:#fff,stroke:#D6002A + style D fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A \ No newline at end of file diff --git a/docs/presentations/assets/mmd/leadership-slide-7.mmd b/docs/presentations/assets/mmd/leadership-slide-7.mmd new file mode 100644 index 0000000..b116909 --- /dev/null +++ b/docs/presentations/assets/mmd/leadership-slide-7.mmd @@ -0,0 +1,13 @@ +%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#1B1B1B','primaryBorderColor':'#D6002A','primaryTextColor':'#fff','secondaryColor':'#fff','secondaryBorderColor':'#D6002A','secondaryTextColor':'#1B1B1B','tertiaryColor':'#F0F0F0','lineColor':'#1B1B1B','fontFamily':'"Helvetica Neue","Arial",sans-serif'}}}%% +flowchart LR + W["What works now
L1 & L2 stacks live
confidence 0.800"] + N1["Ingest greenfield
pilot projects"] + N2["Promote sandbox
to production"] + N3["Integrate SPGE
constitutional library"] + N4["Serve as the
infrastructure layer"] + W --> N1 --> N2 --> N3 --> N4 + style W fill:#1B1B1B,color:#fff,stroke:#D6002A + style N1 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A + style N2 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A + style N3 fill:#F0F0F0,color:#1B1B1B,stroke:#D6002A + style N4 fill:#1B1B1B,color:#fff,stroke:#D6002A \ No newline at end of file diff --git a/docs/presentations/assets/png/leadership-slide-1.png b/docs/presentations/assets/png/leadership-slide-1.png new file mode 100644 index 0000000..d6a037d Binary files /dev/null and b/docs/presentations/assets/png/leadership-slide-1.png differ diff --git a/docs/presentations/assets/png/leadership-slide-2.png b/docs/presentations/assets/png/leadership-slide-2.png new file mode 100644 index 0000000..1c4c8a5 Binary files /dev/null and b/docs/presentations/assets/png/leadership-slide-2.png differ diff --git a/docs/presentations/assets/png/leadership-slide-3.png b/docs/presentations/assets/png/leadership-slide-3.png new file mode 100644 index 0000000..94a4cef Binary files /dev/null and b/docs/presentations/assets/png/leadership-slide-3.png differ diff --git a/docs/presentations/assets/png/leadership-slide-4.png b/docs/presentations/assets/png/leadership-slide-4.png new file mode 100644 index 0000000..24fd85f Binary files /dev/null and b/docs/presentations/assets/png/leadership-slide-4.png differ diff --git a/docs/presentations/assets/png/leadership-slide-5.png b/docs/presentations/assets/png/leadership-slide-5.png new file mode 100644 index 0000000..672fb78 Binary files /dev/null and b/docs/presentations/assets/png/leadership-slide-5.png differ diff --git a/docs/presentations/assets/png/leadership-slide-6.png b/docs/presentations/assets/png/leadership-slide-6.png new file mode 100644 index 0000000..d19a496 Binary files /dev/null and b/docs/presentations/assets/png/leadership-slide-6.png differ diff --git a/docs/presentations/assets/png/leadership-slide-7.png b/docs/presentations/assets/png/leadership-slide-7.png new file mode 100644 index 0000000..4dde44e Binary files /dev/null and b/docs/presentations/assets/png/leadership-slide-7.png differ diff --git a/scripts/render_leadership_diagrams.sh b/scripts/render_leadership_diagrams.sh new file mode 100755 index 0000000..cebba80 --- /dev/null +++ b/scripts/render_leadership_diagrams.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# render_leadership_diagrams.sh — render the 7 leadership-deck mermaid +# diagrams to PNG via mmdc. Single-shot helper (NOT a CI gate, per +# D-241/D-246). Uses vendored Chromium shared libraries (D-246). +# +# Usage: bash scripts/render_leadership_diagrams.sh +set -euo pipefail + +cd "$(git rev-parse --show-toplevel)" + +MMD_DIR="docs/presentations/assets/mmd" +PNG_DIR="docs/presentations/assets/png" +THEME_JSON="$MMD_DIR/sp-theme.json" +PUPPETEER_CFG="docs/presentations/assets/puppeteer-config.json" + +# Vendored Chromium shared libraries (D-246) — extracted from Debian +# bookworm .deb packages to /home/opencode/tmp/so2/ +VENDORED_SO="/home/opencode/tmp/so2" +export LD_LIBRARY_PATH="${VENDORED_SO}:${LD_LIBRARY_PATH:-}" + +export CHROME_PATH="/home/opencode/.cache/puppeteer/chrome/linux-152.0.7977.42/chrome-linux64/chrome" + +echo "=== Rendering leadership deck mermaid diagrams (S&P theme, 2x, transparent) ===" +for mmd in "$MMD_DIR"/leadership-slide-*.mmd; do + name="$(basename "$mmd" .mmd)" + png="$PNG_DIR/$name.png" + echo " $name.mmd → $name.png" + npx --yes @mermaid-js/mermaid-cli@11.16.0 \ + --configFile "$THEME_JSON" \ + --puppeteerConfigFile "$PUPPETEER_CFG" \ + -s 2 -b transparent \ + --input "$mmd" \ + --output "$png" 2>&1 | grep -v "^$" || true +done +echo " Rendered $(ls "$PNG_DIR"/leadership-slide-*.png 2>/dev/null | wc -l) leadership PNGs." \ No newline at end of file