From 1fe989c6703fcd5c2dab6cd89f1b53fcf34a0675 Mon Sep 17 00:00:00 2001 From: YASLOGIST <265797509+YASLOGIST@users.noreply.github.com> Date: Sat, 10 Oct 2026 03:18:21 +0000 Subject: [PATCH] README: cinematic YASLOGIST hero experience + verified visual assets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - assets/readme/yaslogist-hero.gif: original 1920x720 procedural animation (125 frames, 10s seamless loop, 7.01 MB) — the real 8-node/10-edge supply graph, audit-gate sweep, five-theatre rail, illustrative metrics, and the YASLOGIST engineering signature - assets/readme/yaslogist-hero.png: static poster fallback (282 KB) - assets/readme/kinetic-statement.svg: cycling technical statement (SMIL) - assets/readme/divider-pulse.svg: luminous section divider (SMIL) - assets/readme/yaslogist-signature.svg: closing brand animation (SMIL) - README.md: hero-first cinematic documentation — 01 The System through 09 YASLOGIST, all prior technical content preserved and restructured Verified: GIF decodes 1920x720/125f, loop seam equals interior frame step, all README asset paths resolve, only README + assets/readme changed. Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com> --- README.md | 500 +++++++++++++++----------- assets/readme/divider-pulse.svg | 42 +++ assets/readme/kinetic-statement.svg | 42 +++ assets/readme/yaslogist-hero.gif | Bin 0 -> 7354008 bytes assets/readme/yaslogist-hero.png | Bin 0 -> 288612 bytes assets/readme/yaslogist-signature.svg | 70 ++++ 6 files changed, 451 insertions(+), 203 deletions(-) create mode 100644 assets/readme/divider-pulse.svg create mode 100644 assets/readme/kinetic-statement.svg create mode 100644 assets/readme/yaslogist-hero.gif create mode 100644 assets/readme/yaslogist-hero.png create mode 100644 assets/readme/yaslogist-signature.svg diff --git a/README.md b/README.md index 9b1c73a..eadeaff 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,21 @@
+
-| # | Capability | Surface | Implementation | State |
|---|---|---|---|---|
| Experience | ||||
| 01 | Five-stage audit narrative | sections/* | Full-viewport sections bound to a shared section index | ✅ Shipped |
| 02 | Synchronized 3D models | three/* | Supply network, laser audit gate, demand matrix, route terrain, warehouse grid | ✅ Shipped |
| 03 | Cinematic camera choreography | IndustrialScene | Dual-target interpolation with frame-rate-independent damping | ✅ Shipped |
| 04 | Deferred engine boot | PresentationShell | next/dynamic + ssr:false after the WebGL capability probe; no cover-screen CTA | ✅ Shipped |
| 05 | Animated metric counters | MetricCounter | IntersectionObserver (0.35) → rAF cubic ease-out over 1250 ms | ✅ Shipped |
| Localization | ||||
| 06 | English / Arabic parity | lib/data.ts | Every copy node is LocalizedText; the compiler enforces coverage | ✅ Shipped |
| 07 | Native RTL inversion | Presentation | documentElement.dir + lang flipped on toggle; CSS logical properties | ✅ Shipped |
| 08 | Locale-correct numerals | lib/i18n.ts | Intl.NumberFormat with ar-EG digits and compact USD | ✅ Shipped |
| 09 | Arabic display typography | @fontsource-variable/cairo | Self-hosted variable font — no third-party font request | ✅ Shipped |
| Accessibility | ||||
| 10 | Keyboard navigation | Presentation | Arrows · Page Up/Down · Home · End, with modifier and text-field guards | ✅ Shipped |
| 11 | Semantic analytics | sections/* | Real <table> markup, aria-labelledby, aria-current="step" | ✅ Shipped |
| 12 | Motion reduction | useReducedMotion | Programmatic scrolling drops to behavior: "auto" | ✅ Shipped |
| 13 | Visible focus states | globals.css | :focus-visible outline on every interactive control | ✅ Shipped |
| Performance | ||||
| 14 | Background-tab suspension | Presentation | visibilitychange → frameloop="never": no GPU work when hidden | ✅ Shipped |
| 15 | Tiered fill cost | Canvas | Device-derived DPR clamp, adaptive regression while scrolling, alpha:false, powerPreference:"high-performance" | ✅ Shipped |
| 16 | Allocation-free render loop | IndustrialScene | Module-level vectors + refs; no per-frame object churn | ✅ Shipped |
| 17 | React-free label updates | FocusFadeLabel | Opacity written straight to the DOM node inside useFrame | ✅ Shipped |
| Resilience & platform | ||||
| 18 | Recoverable engine failure | ExperienceBoundary | Class boundary with a retry action and telemetry-friendly logging | ✅ Shipped |
| 19 | Database-optional runtime | db/index.ts | Pool constructed lazily; importing the module never throws | ✅ Shipped |
| 20 | Bounded connection pool | db/index.ts | max clamped to 1–50, 5 s connect timeout, 30 s idle reap | ✅ Shipped |
| 21 | Honest health contract | api/health | 200 live · 503 only when a configured database is unreachable | ✅ Shipped |
| 22 | Production security headers | next.config.ts | CSP plus eight defense headers, including HSTS preload in production builds | ✅ Shipped |
| 23 | Animated social card | tools/og-image | Reproducible 1200×630 GIF + PNG fallback from design tokens | ✅ Shipped |
| 24 | Scenario-consistent evidence | lib/export.ts | CSV rows and executive JSON summaries derive from the selected scenario; JSON includes illustrative provenance | ✅ Shipped |
| 25 | Honest simulation state | LiveTelemetryFeed | Bilingual fixture-simulation disclosure; no interval or audio work while closed | ✅ Shipped |
| 26 | Native modal lifecycle | useNativeDialog | Platform modality and Escape handling, deterministic initial focus, invoker-focus restoration | ✅ Shipped |
| 27 | Calculator provenance | RecoveryCalculator / HandoutView | Bilingual fixed-assumption disclosure; illustrative, not a forecast | ✅ Shipped |
| 28 | Context-safe global shortcuts | lib/keyboard.ts | Section keys yield to focused controls, IME composition, handled events, modifiers, and open modals | ✅ Shipped |
| 29 | Accessible operating modes | ScenarioSwitcher / LiveTelemetryFeed | Roving radio focus, arrow/Home/End selection, localized pressed filters, and truthful running/paused status | ✅ Shipped |
| # | Capability | Surface | Implementation | State |
|---|---|---|---|---|
| Experience | ||||
| 01 | Five-stage audit narrative | sections/* | Full-viewport sections bound to a shared section index | ✅ Shipped |
| 02 | Synchronized 3D models | three/* | Supply network, laser audit gate, demand matrix, route terrain, warehouse grid | ✅ Shipped |
| 03 | Cinematic camera choreography | IndustrialScene | Dual-target interpolation with frame-rate-independent damping | ✅ Shipped |
| 04 | Deferred engine boot | PresentationShell | next/dynamic + ssr:false after the WebGL capability probe; no cover-screen CTA | ✅ Shipped |
| 05 | Animated metric counters | MetricCounter | IntersectionObserver (0.35) → rAF cubic ease-out over 1250 ms | ✅ Shipped |
| Localization | ||||
| 06 | English / Arabic parity | lib/data.ts | Every copy node is LocalizedText; the compiler enforces coverage | ✅ Shipped |
| 07 | Native RTL inversion | Presentation | documentElement.dir + lang flipped on toggle; CSS logical properties | ✅ Shipped |
| 08 | Locale-correct numerals | lib/i18n.ts | Intl.NumberFormat with ar-EG digits and compact USD | ✅ Shipped |
| 09 | Arabic display typography | @fontsource-variable/cairo | Self-hosted variable font — no third-party font request | ✅ Shipped |
| Accessibility | ||||
| 10 | Keyboard navigation | Presentation | Arrows · Page Up/Down · Home · End, with modifier and text-field guards | ✅ Shipped |
| 11 | Semantic analytics | sections/* | Real <table> markup, aria-labelledby, aria-current="step" | ✅ Shipped |
| 12 | Motion reduction | useReducedMotion | Programmatic scrolling drops to behavior: "auto" | ✅ Shipped |
| 13 | Visible focus states | globals.css | :focus-visible outline on every interactive control | ✅ Shipped |
| Performance | ||||
| 14 | Background-tab suspension | Presentation | visibilitychange → frameloop="never": no GPU work when hidden | ✅ Shipped |
| 15 | Tiered fill cost | Canvas | Device-derived DPR clamp, adaptive regression while scrolling, alpha:false, powerPreference:"high-performance" | ✅ Shipped |
| 16 | Allocation-free render loop | IndustrialScene | Module-level vectors + refs; no per-frame object churn | ✅ Shipped |
| 17 | React-free label updates | FocusFadeLabel | Opacity written straight to the DOM node inside useFrame | ✅ Shipped |
| Resilience & platform | ||||
| 18 | Recoverable engine failure | ExperienceBoundary | Class boundary with a retry action and telemetry-friendly logging | ✅ Shipped |
| 19 | Database-optional runtime | db/index.ts | Pool constructed lazily; importing the module never throws | ✅ Shipped |
| 20 | Bounded connection pool | db/index.ts | max clamped to 1–50, 5 s connect timeout, 30 s idle reap | ✅ Shipped |
| 21 | Honest health contract | api/health | 200 live · 503 only when a configured database is unreachable | ✅ Shipped |
| 22 | Production security headers | next.config.ts | CSP plus eight defense headers, including HSTS preload in production builds | ✅ Shipped |
| 23 | Animated social card | tools/og-image | Reproducible 1200×630 GIF + PNG fallback from design tokens | ✅ Shipped |
| 24 | Scenario-consistent evidence | lib/export.ts | CSV rows and executive JSON summaries derive from the selected scenario; JSON includes illustrative provenance | ✅ Shipped |
| 25 | Honest simulation state | LiveTelemetryFeed | Bilingual fixture-simulation disclosure; no interval or audio work while closed | ✅ Shipped |
| 26 | Native modal lifecycle | useNativeDialog | Platform modality and Escape handling, deterministic initial focus, invoker-focus restoration | ✅ Shipped |
| 27 | Calculator provenance | RecoveryCalculator / HandoutView | Bilingual fixed-assumption disclosure; illustrative, not a forecast | ✅ Shipped |
| 28 | Context-safe global shortcuts | lib/keyboard.ts | Section keys yield to focused controls, IME composition, handled events, modifiers, and open modals | ✅ Shipped |
| 29 | Accessible operating modes | ScenarioSwitcher / LiveTelemetryFeed | Roving radio focus, arrow/Home/End selection, localized pressed filters, and truthful running/paused status | ✅ Shipped |
BVSwKPGr
zSew9pM30oH$z{9A^Z3b>=!_3M8rCPlrp%2B*^mLrkOPU3tGtk~tjej}%B-A_#}Nh&
z#K&Mf2VktS>ifaEX{hO9yC{62I}8UnY{JKkxYdfdIXuIYLd-J^x|0jdB$}g*OEHRB
ztq*&8Xr+DCMi{VWbttB9k_+AWM#Vv9N?c`6
z)MXd8rgGASW8B6^0)-u-WmuRdKH8N{0!%M`<#NWy=EbIW%BF2nnsII%V*aLiu8B)P
z$1v@ncKSqf$mMp%CqejwAjpJFsKIj%gwMqiWhO;^Nat2iXXNDt8#u-|^-^uXr+n^-
zqkX4?@?>~o*?2BQ-n0_}D8k!C
B8LJ;`rWTDj7}#C#HS
z5%55Sr+GqfT{9cum
Hn=`BuBIeSge?$;y@3WMSJYZ3t3H?!rG9GxWh
z)C7(I0}IjNBroXPPR_NWo!Tut6*=3nLNvM((dt!+2V1VT6_e|wrg2f}6}X5}!x_yh
z0AAFzudpF%gvIW6xuQH?`c<&qU1E5fRbC+vxh*Fq@R12pQ}-^J$=QnUlRfhX&rBG}
zbII?OI~!mvpX4
eyoROb=Detsw+HE2YbuA{Lviu
zt((NI(|pZ8g|FlMQ@(sbylAoed{zqvH4;oZmm@nD{d@gebpiomTpkdl{)sdVZMLh0
z8uS4T!4X~yv|7M7zhDC}C~`ot`P2TwH-PTD$Gg1Cdqo@gh2eSYg2OnF10kA5nEE-3
z=Q25jvMeY1p(8QhZ&9h&@S`J5!xR3hJbZloF3;Q%5i2p^fBK=wwxApQYxD99A2Dm=
z_C|cVEJr%ygL=sGFhL0S&Xa!Wlgf|DJQdsg>a#xk<^1bo;gBcwRsVeLS2tg1hZu<88*pv}OL)^&7oW7!;GF#DQMZks(`&v6kmx
zgT1;#a$?~Eozppj$$K`)yCoa=y;F8Mkc0cju+)+R<3sa0ki$Rz4)NXtJpG^eP<#GC
z0R#ep0|^#1co1Pig$o%rbodZrM1g`RR
#treMH1{0pU_sl+8q(xo8@TFN^s
zi6%}%C89SDgn<>ZM#rW1nsEv3YL3or!+
z=nRA4;FHgT`P7q-gboGBqd(w6CQul7LDcTzj5qH1;~c@{lDssrSZ_fYXRi6?Jps
zC!B{a`sk!D