| Field | Value |
|---|---|
| Scene | agents/hermes/demo_scenes/dental_walkthrough |
| Run ID | dental_walkthrough_20260804T174044Z |
| UTC timestamp | 2026-08-04T17:40:44Z |
| Result | PASS |
| Duration | ~3 min 52 s |
| Target | https://test-client-dental.dental.veripath.co.uk (test-client-dental realm) |
| Mode | Live interactive (control channel polled before every step) |
This live walkthrough demonstrated the Dental booking module across all four roles —
Reception → Dentist → Practice Manager → Admin — and ended with a deliberate
RBAC block proving that a receptionist cannot reach Financial (403). The scene is
read-only: no data was submitted; all data shown is dummy test data (DSPT-safe).
| # | Role | Action | Result | Screenshot |
|---|---|---|---|---|
| 1 | ALL | NOTE: Front of house — receptionist manages calendar, appointments, recalls | OK | — |
| 2 | RECEPTION | USER switch (demo_RECEPTION) |
OK | — |
| 3 | RECEPTION | NAVIGATE {URL} → Keycloak login |
OK | — |
| 4 | RECEPTION | KEYCLOAK_LOGIN → reception.test-client-dental | OK | — |
| 5 | RECEPTION | VERIFY_VIEW /dental/practices/ |
OK | — |
| 6 | RECEPTION | VERIFY_TEXT "Test Client Dental Practice" | OK | — |
| 7 | RECEPTION | SCREENSHOT reception_practices | OK | ![]() |
| 8 | RECEPTION | NAVIGATE /dental/appointments/ |
OK | — |
| 9 | RECEPTION | VERIFY_VIEW /dental/appointments/ |
OK | — |
| 10 | RECEPTION | SCREENSHOT reception_appointments | OK | ![]() |
| 11 | RECEPTION | NAVIGATE /dental/recalls/ |
OK | — |
| 12 | RECEPTION | VERIFY_TEXT "Recall Management" | OK | — |
| 13 | RECEPTION | SCREENSHOT reception_recalls | OK | ![]() |
| 14 | RECEPTION | NAVIGATE /dental/financial/ (RBAC probe) |
OK | — |
| 15 | RECEPTION | EXPECT_403 → fetch status 403, "You do not have permission… Required roles: DENTAL_ADMIN, DENTAL_PRACTICE_MANAGER" | OK | — |
| 16 | RECEPTION | SCREENSHOT reception_financial_403 | OK | ![]() |
| 17 | ALL | NOTE: Clinical — dentist reviews FP17 claims, charting, perio exams and radiographs | OK | — |
| 18 | DENTIST | USER switch (demo_DENTIST, session cleared first) |
OK | — |
| 19 | DENTIST | NAVIGATE {URL} |
OK | — |
| 20 | DENTIST | KEYCLOAK_LOGIN → dentist.test-client-dental | OK | — |
| 21 | DENTIST | VERIFY_VIEW /dental/practices/ |
OK | — |
| 22 | DENTIST | NAVIGATE /dental/fp17/ |
OK | — |
| 23 | DENTIST | VERIFY_TEXT "FP17" | OK | — |
| 24 | DENTIST | SCREENSHOT dentist_fp17 | OK | ![]() |
| 25 | DENTIST | CLICK first claim row (claim #84) → /dental/fp17/84/ |
OK | — |
| 26 | DENTIST | SCREENSHOT dentist_fp17_detail | OK | ![]() |
| 27 | DENTIST | NAVIGATE /dental/charts/ |
OK | — |
| 28 | DENTIST | VERIFY_TEXT "Chart" | OK | — |
| 29 | DENTIST | CLICK first chart row (Elena Popova, tooth 27) → /dental/charts/168/ |
OK | — |
| 30 | DENTIST | SCREENSHOT dentist_chart | OK | ![]() |
| 31 | DENTIST | NAVIGATE /dental/perio/ |
OK | — |
| 32 | DENTIST | CLICK first perio exam row (Elena Popova) → /dental/perio/42/ |
OK | — |
| 33 | DENTIST | SCREENSHOT dentist_perio | OK | ![]() |
| 34 | DENTIST | NAVIGATE /dental/radiographs/ |
OK | — |
| 35 | DENTIST | SCREENSHOT dentist_radiographs | OK | ![]() |
| 36 | ALL | NOTE: Practice Manager — financials, seat management and staff rotas | OK | — |
| 37 | MANAGER | USER switch (demo_MANAGER, session cleared first) |
OK | — |
| 38 | MANAGER | NAVIGATE {URL} |
OK | — |
| 39 | MANAGER | KEYCLOAK_LOGIN → manager.test-client-dental | OK | — |
| 40 | MANAGER | VERIFY_VIEW /dental/practices/ |
OK | — |
| 41 | MANAGER | NAVIGATE /dental/financial/ (previously 403 for receptionist) |
OK | — |
| 42 | MANAGER | VERIFY_VIEW /dental/financial/ |
OK | — |
| 43 | MANAGER | SCREENSHOT manager_financial | OK | ![]() |
| 44 | MANAGER | NAVIGATE /dental/seats/ |
OK | — |
| 45 | MANAGER | SCREENSHOT manager_seats | OK | ![]() |
| 46 | MANAGER | NAVIGATE /dental/staff/ |
OK | — |
| 47 | MANAGER | SCREENSHOT manager_staff | OK | ![]() |
| 48 | ALL | NOTE: Admin — practice settings, zones and schedules, provider management | OK | — |
| 49 | ADMIN | USER switch (demo_ADMIN, session cleared first) |
OK | — |
| 50 | ADMIN | NAVIGATE {URL} |
OK | — |
| 51 | ADMIN | KEYCLOAK_LOGIN → admin.test-client-dental | OK | — |
| 52 | ADMIN | VERIFY_VIEW /dental/practices/ |
OK | — |
| 53 | ADMIN | NAVIGATE /dental/settings/zones/ |
OK | — |
| 54 | ADMIN | VERIFY_TEXT "Zone" | OK | — |
| 55 | ADMIN | SCREENSHOT admin_zones | OK | ![]() |
| 56 | ADMIN | NAVIGATE /dental/settings/schedules/ |
OK | — |
| 57 | ADMIN | SCREENSHOT admin_schedules | OK | ![]() |
| 58 | ADMIN | NAVIGATE /dental/providers/ |
OK | — |
| 59 | ADMIN | SCREENSHOT admin_providers | OK | ![]() |
| 60 | ALL | NOTE: Walkthrough complete — all four dental roles demonstrated, including the RBAC block | OK | — |
/dental/financial/ URL returned the permission-deniedNo viewer questions were received during the run (control channel polled before
every step; inbox stayed empty). Four narration messages were broadcast; the
audience did not queue questions or notes.
No development notes were requested during this run (notes.md not created;
nothing appended to the OpenCode feedback log).