From fc23aae24c2e351a45d2333339b7ea48118e6e45 Mon Sep 17 00:00:00 2001 From: Patrick Gidich Date: Fri, 4 Sep 2026 16:26:45 -0400 Subject: [PATCH 1/2] docs(pages): refresh encounter lifecycle narrative --- docs/index.html | 160 +++++++++++++++++++++--------------------------- 1 file changed, 70 insertions(+), 90 deletions(-) diff --git a/docs/index.html b/docs/index.html index bf4a1339d..84cd9af22 100644 --- a/docs/index.html +++ b/docs/index.html @@ -45,7 +45,7 @@

OpenClinXR

Timed clinical skills stations—from case blueprint to WebXR runtime— - with faculty review, traces, and promotion gates that stay off until the evidence is real. + with faculty review, durable traces, and promotion bound to the reviewed revision.

Inspired by Step 2 CS-style multi-station flow. Built as an @@ -56,7 +56,7 @@

OpenClinXR

Where we are Factory pipeline Runtime evidence - What’s queued + Next proof GitHub @@ -75,10 +75,10 @@

OpenClinXR

What we prove today - Blueprint → runtime evidence—not licensure + Reviewed blueprint → pinned runtime → replay

- Case fields (including clothing layers) drive generated actors and garments. - WebXR sample scenes and Model Vetting captures are committed artifacts, not marketing fiction. + Authored content identity now follows an encounter through faculty promotion, + a pinned runtime bundle, timed learner phases, actor execution, and review.

@@ -128,54 +128,45 @@

Capability arena

-

Current state · August 2026

-

Shipping the factory spine—and measuring how we build it.

+

Current state · 4 September 2026

+

A reviewed encounter can now become a resumable, replayable run.

-

Product proof in the loop

+

Author and promote

    -
  • ED real garment path: hospital gown from case phenotype into Model Vetting + UI-XR sample evidence (committed screenshots below).
  • -
  • Peds real-garment work: patient/parent/nurse clothing layers expanded from phenotype; adaptive dialogue and sleeve-deform evidence tracks exist in-repo.
  • -
  • Authoring / review spine: scenario bank, review packets, admin faculty review UI with promotion-status surfaces (gates remain off).
  • -
  • Worldview (W1–W19 landed): faculty case authoring plus a compile graph (Body → Wardrobe → Equipment) with Add/Remove node on the exam-forms workbench. Screenshots below. Not a baker or Quest claim.
  • -
  • Factory station cards: nine production stations as Standard Schema V1 admin cards (jsonSchema.input controls, Apply validates). instrument is a gate, not a card. Screenshots below.
  • -
  • Runtime durability hook: optional durableStore on scenario runtime + local authoring roundtrip CLI that emits replay-safe JSON (actor turns + timeline).
  • +
  • Revision-bound review: a scenario edit invalidates stale approval; API promotion refuses missing or stale authored-content identity.
  • +
  • Immutable encounter bundles: reviewed factory outputs are promoted together, with the room, actors, equipment, and dialogue configuration pinned to the approved revision.
  • +
  • Faculty-visible delta: Admin can preview what an authored change will alter at runtime before promotion.
  • +
  • Scenario bank freeze: approved revisions and promoted station-bundle pins survive later authoring changes.
-

How the team builds

+

Run and resume

    -
  • OpenClaw-style slices: lease, path-scoped roles, worktree isolation for writers, verify gates.
  • -
  • Docs warehouse + PMO cadence so history freezes without choking rehydrate.
  • -
  • Per-slice token thrash checks and task cost rollups (subagent × model → estimated USD)—estimate only, not invoices.
  • -
  • Temporal decision catalog so workarounds (e.g. token accounting) get weekly revisit, not permanent debt.
  • +
  • Bundle-driven boot: the learner runtime mounts the promoted room and starts from the pinned encounter bundle, failing closed when compiled-room readiness is incomplete.
  • +
  • Assembled exam clock: encounter, note, and timed-break phases emit monotonic, replayable events with exactly-once timeout behavior.
  • +
  • Restart-safe progress: API and MongoDB adapters rebuild an assembled run from its durable ledger; incompatible resume state is rejected.
  • +
  • End-to-end acceptance: repository tests exercise learner progress through faculty review across a restart boundary.
-

Still deliberately false

+

Speak, move, replay

    -
  • No clinical scoring or licensure claims.
  • -
  • No Quest headset readiness claim without worn-device evidence.
  • -
  • No unapproved cloud/paid production path.
  • -
  • Promotion / realism gates stay candidate-scoped until policy says otherwise.
  • +
  • One frozen actor turn: voice, visemes, affect, facial expression, and motion start from an identity-bound plan rather than loosely interpreting dialogue text.
  • +
  • Audio-clock synchronization: visible and audible modalities follow the same playback clock.
  • +
  • Replayable interruption: learner barge-in is recorded across turn modalities without rewriting the approved plan.
  • +
  • Plan versus execution: the immutable intent and observed execution are persisted separately and exposed in faculty replay.
-

New this cycle · measured

+

Evidence and boundaries

    -
  • The examinee can examine the patient: touch a body region in the UI-XR runtime → case-driven guard/wince clip + pain emotion + reflexive dialogue + durable trace turn (headless-gated end to end).
  • -
  • Iterations are visible in-app, and now scored: a Humanoid Generation Studio renders every generated humanoid GLB and paints a measured realism badge from a Grok-4.5 vision pass. Today's honest baseline is 0.05–0.30 / 1.0 across five candidates ("mannequin skin", "hard-band mesh, no fabric drape")—a fixture-grade punch-list, surfaced not hidden.
  • -
  • Rig alignment hardened: full ~163-bone Anny retarget with fail-loud diagnostics, determinism, and a three.js explosion gate.
  • -
  • Multi-provider delegation, cost-scored: Claude manages; Grok 4.5 (vision proven, ~$0.09 per image judgment) and DeepSeek 4 execute the grunt; each routing choice is backed by a measured cost/quality ledger—assumptions proven, not asserted.
  • -
  • Equipment generates itself now: reference image → Apple Silicon Metal TRELLIS bake → per-subject process isolation → pnpm factory:trellis:bake → a triangle ladder that lands the clock at 34.5k. Three assets, zero hand-modelling, all three visible below.
  • -
  • Escape hatch is one command: text + Grok Imagine → remesh (compact extracts) → pnpm factory:trellis:hatch lands six props at ≤80k. Kit/parametric stay exam SSOT. Not promoted into the learner runtime. Graded stills below.
  • -
  • A generated asset reached the product: the TRELLIS wall clock now resolves and renders in a live station at 34,885 triangles — the first procedurally generated equipment to leave the harness. Two layers had to agree: the equipment resolver, and a suppression allowlist that had silently reverted it to a placeholder.
  • -
  • Multi-view reconstruction, measured both ways: conditioning TRELLIS on four reference views instead of one closed the torn far side of the ECG cart — far-side fill 0.35 → 0.44, surface area +47%, with 3.7% fewer triangles — and cost the monitor screen, which flattened without camera poses. The technique is adopted; that artifact is not.
  • -
  • The factory can rebuild what it ships: both library garment sources were on no disk in the repository, so every re-bake silently degraded the figure — and the guard that was meant to stop that logged a warning and baked anyway. The guard now throws; the sources are tracked and licence-recorded (CC0 trousers, CC-BY shirt). Shown above, with the regression that exposed it.
  • -
  • The MPFB actor can be posed at all: the one MPFB2-rigged humanoid a learner loads resolved 1 of 14 runtime pose bones — its rig names them upperarm01.L where the code asked for upper_armL, and a missing bone lookup is a silent skip, not an error. Now 14 of 14 on all three rails. Invisible in any screenshot; it is the difference between an actor that can be posed and one that cannot.
  • -
  • Facial morphs are reachable: the only genuinely graded facial morphs in the repository — 4,549 vertices moving in 653 distinct directions on mouth-open — sat unreachable because the runtime keyed on different names. Meanwhile the rail it could address carries constant-offset stubs: identical magnitude on every vertex, one direction, which slides a block of the face rather than opening a mouth. Also invisible until lip-sync drives it.
  • -
  • Gaze moves the eyes: a “gaze” drive was writing root.rotation.y — the whole actor pivoting on the spot, feet included — while the eye bones every rail ships and skins were addressed by nothing. The evidence field that made this look handled was a name regex asserting an eye node exists.
  • +
  • Committed proof: the claims above are backed by runtime and package tests in the repository, including restart-safe learner-to-faculty acceptance.
  • +
  • Visual proof remains bounded: the screenshots below demonstrate browser-rendered factory, actor, garment, room, and equipment work. They do not prove the entire new lifecycle as one polished user journey.
  • +
  • No clinical validity, scoring validity, licensure, or exam-equivalence claim.
  • +
  • No Quest readiness claim: browser/WebXR and emulation evidence do not substitute for worn-headset validation.
  • +
  • No production deployment claim: development remains local-first, with external providers and promotion paths gated.
@@ -191,12 +182,15 @@

New this cycle · measured

The case is a compile graph faculty can edit.

- BothyBoard children W1–W19 (plus W14a/W14b/W11s) are Landed on - origin/main 05120405. + These screenshots were captured from commit 05120405, where + BothyBoard children W1–W19 (plus W14a/W14b/W11s) had landed. Faculty author the encounter as a Scenario, then review a World Compile Graph of baker families. Add node / Remove node mutate the graph; the lock table stays the lock write path. Chromium Playwright of the running admin app (ui-admin + local API), not a schematic. + Since this capture, authored revision identity now invalidates stale approval, + and Admin can preview the runtime delta before a reviewed revision is promoted + into an immutable encounter bundle.

@@ -231,8 +225,9 @@

The case is a compile graph faculty can edit.

- claimScope: local admin UI of authored Scenario + compile DAG on - 05120405. + claimScope: local admin UI capture of an authored Scenario + compile DAG at + capture commit 05120405; current revision identity and runtime-delta behavior + are supported by later committed application tests, not by these stills. notEvidenceFor: Quest readiness, clinical validity, live Blender bake, LLM draft quality, or that the parent BothyBoard program card is closed (it is still Idle). Node labels truncate in this crop; that is the canvas, not missing data. @@ -521,13 +516,13 @@

Five patients were rendering nude. Their clothes were the co

Evidence you can look at

-

Every garment we own, classified. None of them is a hospital gown.

+

The audited legacy MakeClothes cache contains no hospital gown.

- The section above this one says clothing is not yet good enough to show. That used to be a - judgement. It is now a measurement: every cached MakeHuman garment in the repository has been - fitted, rendered and given a class, and the class the clinical work needs - has zero members. + Every garment in the audited legacy MakeHuman/MakeClothes cache was fitted, rendered, + and assigned a geometry-derived class. Within that specific cache, + hospital_gown has zero members. This does not describe the + separate case-linked real-gown path shown elsewhere in the repository and on this page.

@@ -559,29 +554,22 @@

Every garment we own, classified. None of them is a

- The practical consequence is a piece of work we are not doing. Dressing eleven more - patients in a hospital gown is off the queue until a hospital-class garment actually exists, - because mapping the name onto the closest available asset is how the evening dress got there - the first time. The honest answer to “where is the gown” is NOT FOUND, and - that is a better artifact than a green contract over the wrong garment. + The practical consequence is narrower: this legacy cache cannot satisfy a hospital-gown + request, and the resolver must not substitute its evening dress because the filename sounds + plausible. The current real-gown path is a separate, provenance-tracked source and still has + to pass its own fit, motion, and runtime evidence gates.

Evidence you can look at

-

Clothing: not yet good enough to show.

+

Clothing is visible and case-linked, but remains below production realism.

- This section used to carry two WebXR captions labelled “phenotype-driven gown”. The - captures underneath them showed a bare torso with a red patch, a deformed shoulder, and a - status bar reading WebXR unavailable. The caption asserted a capability the - picture disproved, so the pictures were removed on 2026-08-10 rather than recaptioned. -

-

- Clothing on this project is real but partial: garments are fitted from a library and - driven by the case definition’s layers, and you can see them working on the actors in the - station above. + Garment layers now come from the case definition and are visible on browser-rendered actors, + including the real-gown path and clothed multi-role stations shown on this page. That is + evidence of case-to-runtime wiring, not a claim of production-quality cloth, fit, or motion.

Correction, 2026-08-10 evening. This section previously said one actor @@ -593,12 +581,10 @@

Clothing: not yet good enough to show.

rendering fault.

- We are leaving the section without a picture until that question is measured, because we - were wrong about the mechanism four times on this one figure — a bare midriff (the garments - overlap by 3 cm), a short sleeve (it is a full-body shell), translucent overlays (they - are switched off), and a runtime ignoring its own hide mask (it honours it, with zero pixel - difference). Each pixel observation was real and each explanation was wrong until it was - measured. That is the reason for the caution here, stated plainly rather than implied. + The open quality bar is visible: some garments still read as rigid shells, hems and joins + remain rough, and motion evidence does not yet establish production cloth behavior. New + clothing claims therefore require measured Model Vetting and UI-XR evidence rather than + inference from asset presence alone.

Inspection packet: @@ -1183,47 +1169,41 @@

Escape hatch: text → Imagine → remesh → 80k.<
-

Roadmap · from the queue only

-

What’s next is what’s queued—not a product brochure.

+

Next proof

+

The contracts are connected. The experience still has to earn trust.

- These items come from the current project ledger. Dates are not SLAs. Nothing here promises production deployment, - headset certification, or clinical validation. + The next work is to turn the newly connected lifecycle into visible, measured product evidence. + Dates are not SLAs, and nothing here promises production deployment, headset certification, exam equivalence, or clinical validation.

-

Next up (dequeue)

+

One visible encounter

    -
  • - Wire API durableStore consumer — - connect the new runtime durable hooks to persistence/API sinks so review packets and actor turns can land beyond local CLI artifacts. -
  • -
  • - Authoring follow-through — - keep the scenario bank → runtime emission → admin replay path honest with real turns (not seed-only panels). -
  • +
  • Capture a single reviewed scenario moving from authoring delta through promotion, learner runtime, interruption, note phase, and faculty replay.
  • +
  • Keep every visible state tied to the immutable scenario revision and promoted bundle that produced it.
-

Active product tracks

+

Raise runtime quality

    -
  • Peds evidence / adaptive dialogue loops in UI-XR when the next visible slice is selected.
  • -
  • ED / multi-role garment realism continuation only where dual Model Vetting + UI-XR evidence stays visible.
  • -
  • Faculty review and replay surfaces for authored encounters (gates remain review-only).
  • +
  • Replace fixture-grade actor and garment presentation only when Model Vetting and UI-XR evidence both show the improvement.
  • +
  • Grade voice, viseme, affect, gaze, and motion synchronization as an observed performance, not merely a passing contract test.
  • +
  • Continue publishing verified room and equipment assets through the same review-gated encounter bundle.
-

Operating hygiene (ongoing)

+

Prove the hard boundaries

    -
  • Weekly temporal reviews (e.g. Turbo version posture, Grok/DeepSeek token cost rates).
  • -
  • Docs warehouse freeze when thresholds hit—not after every task.
  • -
  • Task cost rollups on slice finish for subagent × model estimates.
  • +
  • Exercise the learner flow on physical Quest hardware before making any readiness statement.
  • +
  • Keep faculty review, evidence provenance, and stale-identity rejection fail closed as the experience broadens.
  • +
  • Treat educational and clinical outcome validation as separate future work, not an inference from software completeness.

- Queue source: PROJECT_STATUS.md (Next dequeue + Active Work). - If the ledger changes, this section should change with it—or stay quiet. + Public roadmap copy follows committed product evidence and the repository’s protected claim boundaries. + The operational queue remains in PROJECT_STATUS.md and the project board.

From c6ed7db5ce58027d0fea4a92664a2684a90bb6ad Mon Sep 17 00:00:00 2001 From: Patrick Gidich Date: Fri, 4 Sep 2026 16:26:53 -0400 Subject: [PATCH 2/2] fix(pages): contain mobile navigation --- docs/styles.css | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/styles.css b/docs/styles.css index 979b9aaaf..a30ada6dd 100644 --- a/docs/styles.css +++ b/docs/styles.css @@ -661,8 +661,22 @@ h3 { grid-template-columns: 1fr; } + .nav-inner { + min-width: 0; + } + .nav-links { + flex: 1 1 auto; + min-width: 0; gap: 16px; font-size: 0.9rem; + overflow-x: auto; + overscroll-behavior-x: contain; + white-space: nowrap; + scrollbar-width: thin; + } + + .nav-links a { + flex: 0 0 auto; } }