Context. surface studio · domain hathor · route /studio/hathor/lore-fact-checking · auth signed-in + studio entitlement · source apps/oshun/web/src/app/studio/hathor/lore-fact-checking/page.tsx
Last walked. 2026-05-29 automated runtime walk (Playwright headless) — render, /v1 data (2xx), console/page-errors, expected content, screenshot verified; live screen-reader, touch, offline, and telemetry-delivery checks pending a manual AT pass. Evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md; body re-derived 2026-06-03 from current source (lane-console architecture)
Purpose#
Admin lane console that fact-checks a chronicle source against the lore corpus — running the real fact-checking algorithm to emit a verdict, per-issue diagnostics, and aggregate stats. The operator pastes a chronicle source, opts into speaker normalization, and the lane returns clean/flagged diagnostics.
Entry points#
- Quick-action link from
/studio/hathor/research-grounding(verify against that page's source) - Direct URL / bookmark — yes;
alternates.canonicalset to/studio/hathor/lore-fact-checking - Studio overview — see
../../studio-overview.md
Layout regions#
page.tsx renders inside <ShellLayout active="studio">:
- Workspace
<StudioHathorLoreFactCheckingWorkspace />(data-hathor-lore-fact-checking-workspace):WorkspaceHeading<h1>— "Hathor Lore Fact-Checking Workspace"- Summary
<p data-hathor-lore-fact-checking-summary> - The fact-checking form lane (loading / unauthorized / error / form / result)
- Route Map panel
data-hathor-lore-fact-checking-route-map—<h2>"Route Map" listing the 5STUDIO_HATHOR_LORE_FACT_CHECKING_ROUTE_MAPentries (claims / evidence / conflicts / governance child paths) - Quick-action lane — two
Link.quickActionanchors: Research Grounding, Back to Studio workspace index
States#
- Loading —
data-hathor-lfc-loadingwhile the GET catalog request is in flight - Unauthorized (admin-scope 401/403) —
data-hathor-lfc-unauthorized - Error —
data-hathor-lfc-error - Ready (form) — chronicle-source textarea + normalize toggle + submit
- Result —
data-hathor-lfc-resultwithdata-hathor-lfc-verdict,data-hathor-lfc-stats, anddata-hathor-lfc-diagnostics(per-issuedata-hathor-lfc-diagnostic) ordata-hathor-lfc-clean - Validation error —
data-hathor-lfc-check-error
Interactions#
Fact-checking lane#
- Chronicle source — chronicle-source textarea (
<span>Chronicle source</span>) - Normalize speakers —
data-hathor-lfc-normalizetoggle (<span>Normalize speakers</span>) - Submit —
<button data-hathor-lfc-check-submit>"Fact-check chronicle" → POSTCHECK_ENDPOINT
Route Map panel#
- Route entries — verify match with
STUDIO_HATHOR_LORE_FACT_CHECKING_ROUTE_MAP(5 entries)
Quick-action lane#
- "Open Hathor Research Grounding workspace" →
/studio/hathor/research-grounding - "Back to Studio workspace index" →
/studio
Data & contracts#
- Reads:
GET /v1/admin/hathor/lore-fact-checking(LFC_ENDPOINT) — the fact-check catalog - Writes:
POST /v1/admin/hathor/lore-fact-checking/check(CHECK_ENDPOINT) with the chronicle source + options - Realtime: none
- Caching: client
fetchon mount,cache: 'no-store',buildBffAuthHeaders() - Auth/role check: admin-scoped, fail-closed on 401/403; route additionally gated signed-in + studio by the BFF proxy
Cross-references#
- Parent:
../../studio-overview.md - Shell:
../../../shell/04-auth-session.md - Sibling routes:
./studio-hathor-research-grounding.md,./studio-hathor-lore-validation-taxonomy.md - Component sources:
apps/oshun/web/src/components/studio/StudioHathorLoreFactCheckingWorkspace.tsxapps/oshun/web/src/components/studio/StudioHathorLoreFactCheckingRouteMap.ts
Open questions / known gaps#
- Hathor is
unconfirmed-v1perWALKTHROUGH/matrix/routes.csv. Confirm whether the dedicated/studio/hathor/lane consoles ship at V1 or are internal-only. - Confirm what backing corpus the fact-checker compares against (the lane runs the algorithm but the corpus source is not surfaced in the UI).