Context. surface studio · domain hathor · route /studio/hathor/validation · auth signed-in + studio entitlement · source apps/oshun/web/src/app/studio/hathor/validation/page.tsx
Last walked. 2026-06-29 real-BFF route addendum — Playwright now covers the signed-in admin route, all embedded admin-scoped catalog GETs, unified-dashboard POST validation, embedded Timeline/Causality/Taxonomy POST validation, client-only dashboard validation errors, dashboard catalog-failure isolation, pending submit disablement, non-admin fail-closed state, anonymous redirect, route map, quick actions including Contradictions, 44px automated touch checks, and the shared axe gate. Evidence: WALKTHROUGH/results/v1-real-infra-run-2026-06-22.md §228; apps/oshun/web/e2e/studio-hathor-validation.spec.ts. 2026-05-29 automated runtime walk evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md; body re-derived 2026-06-03 from current source (lane-console architecture)
Purpose#
Aggregator surface that composes Hathor's lore-validation lanes: a Capability
Summary plus the embedded Unified Validation Dashboard, Lore Validation
Timeline, Lore Validation Causality, and Lore Validation Taxonomy workspaces. It
also links to the dedicated Lore Validation Contradictions detector. The page
itself issues no /v1 fetch — each embedded lane owns its own admin-scoped,
fail-closed backend wiring.
Entry points#
- Breadcrumb — Studio › Hathor Unified Validation Dashboard › Validation
- Quick-action links to unified-validation-dashboard, lore-validation-timeline, lore-validation-causality, lore-validation-taxonomy, lore-validation-contradictions, and Back to Studio
- Direct URL / bookmark — yes;
alternates.canonicalset - Studio overview — see
../../studio-overview.md
Layout regions#
page.tsx renders inside <ShellLayout active="studio">:
- Breadcrumb panel (
data-hathor-validation-breadcrumbs): Studio → Hathor Unified Validation Dashboard → Validation (current) - Workspace
<section data-hathor-validation-workspace>:<h1>(WorkspaceHeading) "Hathor Validation Workspace"- Summary
<p data-hathor-validation-summary>
- Capability Summary (
data-hathor-validation-capability-summary,<h2>)- Unified Validation Dashboard Lane
(
data-hathor-validation-dashboard-lane,<h2>) →<StudioHathorUnifiedValidationDashboardWorkspace /> - Lore Validation Timeline Lane (
data-hathor-validation-timeline-lane,<h2>) →<StudioHathorLoreValidationTimelineWorkspace /> - Lore Validation Causality Lane (
data-hathor-validation-causality-lane,<h2>) →<StudioHathorLoreValidationCausalityWorkspace /> - Lore Validation Taxonomy Lane (
data-hathor-validation-taxonomy-lane,<h2>) →<StudioHathorLoreValidationTaxonomyWorkspace />
- Unified Validation Dashboard Lane
(
- Route Map panel (
data-hathor-validation-route-map):<h2>"Route Map" +data-hathor-validation-route-count="7"+ 7 entries fromSTUDIO_HATHOR_VALIDATION_ROUTE_MAP - Quick-action lane (
data-hathor-validation-quick-actions,data-hathor-validation-quick-action-count="6"): sixLink.quickActionanchors with stabledata-hathor-validation-quick-actionIDs (see Entry points)
States#
This page owns no fetch; each embedded lane carries its own loading / unauthorized / error / ready / pending / result states:
- Unified Validation Dashboard Lane — delegated to the dashboard workspace; route-level E2E covers catalog ready, result, validation-error, pending-submit, unauthorized, and catalog-error states from this aggregator.
- Lore Validation Timeline Lane — delegated to the timeline workspace; route-level E2E covers ready catalog and seeded POST result from this aggregator, with deeper lane-specific states in the dedicated route spec.
- Lore Validation Causality Lane — delegated to the causality workspace; route-level E2E covers ready catalog and seeded POST result from this aggregator, with deeper lane-specific states in the dedicated route spec.
- Lore Validation Taxonomy Lane — delegated to the taxonomy workspace; route-level E2E covers ready catalog and seeded POST result from this aggregator, with deeper lane-specific states in the dedicated route spec.
Interactions#
Embedded lanes#
- Unified Validation Dashboard Lane — edit events and eras JSON, run seeded inconsistent validation, edit to a clean payload, verify pending lockout, and verify malformed / non-array / empty client-side validation branches do not POST.
- Lore Validation Timeline Lane — submit the seeded order-violation
payload from the aggregator and verify the real BFF
TIMELINE_ORDER_VIOLATIONresult. - Lore Validation Causality Lane — submit the seeded cycle payload from
the aggregator and verify the real BFF
CAUSALITY_CYCLE_DETECTEDresult. - Lore Validation Taxonomy Lane — submit the seeded cycle payload from
the aggregator and verify the real BFF
TAXONOMY_CYCLE_DETECTEDresult.
Route Map panel#
- 7 route entries — verify match with
STUDIO_HATHOR_VALIDATION_ROUTE_MAP, including the contradictions diagnostic route-map entry.
Quick-action lane#
- "Open Hathor Unified Validation Dashboard workspace" (→
/studio/hathor/unified-validation-dashboard) - "Open Hathor Lore Validation Timeline workspace" (→
/studio/hathor/lore-validation-timeline) - "Open Hathor Lore Validation Causality workspace" (→
/studio/hathor/lore-validation-causality) - "Open Hathor Lore Validation Taxonomy workspace" (→
/studio/hathor/lore-validation-taxonomy) - "Open Hathor Lore Validation Contradictions workspace" (→
/studio/hathor/lore-validation-contradictions) - "Back to Studio workspace index" (→
/studio)
Data & contracts#
- Reads / Writes: none at the aggregator level; embedded lanes own their
/v1/admin/hathor/*fetches:GET/POST /v1/admin/hathor/unified-validation-dashboard(/validate)GET/POST /v1/admin/hathor/lore-validation-timeline(/validate)GET/POST /v1/admin/hathor/lore-validation-causality(/validate)GET/POST /v1/admin/hathor/lore-validation-taxonomy(/validate)
- Realtime: none
- Caching: embedded client fetches use
cache: 'no-store'+buildBffAuthHeaders - Auth/role check: each embedded lane is admin-scoped fail-closed; route is behind the signed-in + studio proxy gate
Cross-references#
- Parent:
../../studio-overview.md - Shell:
../../../shell/04-auth-session.md - Embedded / sibling lanes:
./studio-hathor-lore-validation-timeline.md,./studio-hathor-lore-validation-causality.md,./studio-hathor-lore-validation-taxonomy.md,./studio-hathor-lore-validation-contradictions.md - Component sources:
apps/oshun/web/src/components/studio/StudioHathorValidationWorkspace.tsxapps/oshun/web/src/components/studio/StudioHathorValidationRouteMap.tsapps/oshun/web/src/components/studio/StudioHathorUnifiedValidationDashboardWorkspace.tsxapps/oshun/web/src/components/studio/StudioHathorLoreValidationTimelineWorkspace.tsxapps/oshun/web/src/components/studio/StudioHathorLoreValidationCausalityWorkspace.tsxapps/oshun/web/src/components/studio/StudioHathorLoreValidationTaxonomyWorkspace.tsx
E2E coverage#
apps/oshun/web/e2e/studio-hathor-validation.spec.ts— signed-in admin route; real BFF catalog GETs for Unified Dashboard, Timeline, Causality, and Taxonomy; seeded and clean unified-dashboard suite POSTs; seeded Timeline / Causality / Taxonomy POSTs from the embedded hub lanes; malformed JSON / non-array / empty dashboard zero-POST branches; dashboard catalog-failure isolation while sibling lanes remain ready; non-admin fail-closed state across every embedded lane; anonymous redirect-before-render; route-map and quick-action anchors, including Contradictions; automated 44px checks; shared axe gate.- Supporting lane-level specs:
studio-hathor-lore-validation-timeline.spec.ts,studio-hathor-lore-validation-causality.spec.ts,studio-hathor-lore-validation-taxonomy.spec.ts, andstudio-hathor-lore-validation-contradictions.spec.tscover each dedicated validator route more deeply.
Open questions / known gaps#
- Hathor is confirmed in V1 per
WALKTHROUGH/matrix/routes.csvandWALKTHROUGH/matrix/coverage.md(product-owner confirmation recorded 2026-05-29 for Bellona / Hathor / Neith). - The aggregator links to the dedicated contradictions route but does not embed the contradiction detector form inline; confirm whether the detector should join this aggregator as a fifth embedded lane.
- Route Map advertises
dashboard/,timeline/,causality/,taxonomy/,contradictions/, andgovernance/sub-routes with nopage.tsxyet. - Manual screen-reader pass remains for the live browser surface; automated axe and touch-target coverage now pass for the route-level controls.