GUI Layouts
This page describes the intended layout for each major user-facing screen. Diagrams use Mermaid block diagrams to show the spatial arrangement of panels, controls, and data regions. Each layout is annotated with the API endpoints that power it.
1. Global Shell
Every screen shares a common shell: a top navigation bar, a sidebar, and a main content area.
block-beta
columns 1
TOPNAV["🔷 Top Navigation Bar
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Raw to Knowledge Logo | Dashboard | Intake | Validation | Registry
| Trends | Graph | Readouts | ⚙ Admin | 👤 User"]:1
block:main:1
SIDEBAR["Sidebar
─────────
Quick filters
─────────
By Horn type
─────────
By customer scope
─────────
By date range
─────────
By state / status
─────────
⚑ Flagged items"]:1
CONTENT["Main Content Area
──────────────────────────────────────────────────
Page heading + breadcrumb
╔══ Primary panel ══════════════════════════════╗
║ Table / Form / Chart / Detail view ║
╚═══════════════════════════════════════════════╝
╔══ Secondary panel (optional) ═════════════════╗
║ Related records / Audit trail / Graph view ║
╚═══════════════════════════════════════════════╝"]:3
end
2. Dashboard
The dashboard is the home screen. It aggregates health and quality metrics from GET /v1/dashboard/metrics and trend signals from GET /v1/dashboard/trends.
block-beta
columns 4
KPI1["✅ Approved Answers
─────────────
1,247
▲ +12 this week
GET /v1/dashboard/metrics"]:1
KPI2["⚠ Expiring Soon
─────────────
34
within 30 days
GET /v1/dashboard/metrics"]:1
KPI3["🔁 Validation Queue
─────────────
89 pending
by Horn type
GET /v1/validation/queue/depth"]:1
KPI4["📋 Work Items
─────────────
22 in progress
8 escalated
GET /v1/generation/work-items"]:1
CHART_HT["Horn Type Distribution
─────────────────────────────────
██ FACT 412 ░░░░░░
██ PROCEDURE 289 ░░░░░
██ CONCEPT 188 ░░░░
██ REFERENCE 153 ░░░
██ TROUBLESHOOT 98 ░░
██ PROCESS 65 ░
██ PRINCIPLE 28
██ RECOMMEND 14
GET /v1/dashboard/metrics"]:2
CHART_Q["Quality Metrics
─────────────────────────────────
F2 Score 0.87 ████████░░
Precision 0.91 █████████░
Recall 0.83 ████████░░
Throughput 47 decisions / 7 days
Last eval 2026-06-10 14:22 UTC
GET /v1/dashboard/metrics"]:2
TREND_TOP["🔵 Top Topics This Week
─────────────────────────────────
1. Semantic Layer 47 mentions
2. Error Budget 31 mentions
3. Portal Configuration 28 mentions
4. Publishing Pipeline 24 mentions
5. Localization 19 mentions
GET /v1/dashboard/trends"]:2
TREND_SENT["🔵 Sentiment Trend
─────────────────────────────────
Week Pos Neu Neg
W21 42% 44% 14%
W22 38% 46% 16%
W23 51% 38% 11%
────────────────────
▲ Improving
GET /v1/trends/report"]:2
ADMIN_Q["🟠 Admin Cluster Queue
─────────────────────────────────
5 clusters pending review
── publishing workflow (8×)
── error handling (6×)
── data model (5×)
── review cycle (4×)
── api gateway (3×)
GET /v1/trends/admin/clusters"]:2
HEALTH["System Health
─────────────────────────────────
PostgreSQL ● OK
Redis ● OK
Weaviate ● OK
Neo4j ● OK
raw_to_knowledge_generation worker ● running
raw_to_knowledge_graph worker ● running
GET /health GET /metrics"]:2
3. Intake Screen — Ingest a Transcript
Powered by POST /v1/artifacts.
block-beta
columns 3
FORM["📥 Ingest Transcript
══════════════════════════════════════════
Source system [ zoom ▾ ]
Transcript format [ VTT ▾ ]
Source reference [ meeting-2026-06-10 ]
Legal basis [ Consent ▾ ]
Customer scope [ Acme Corp ▾ ]
┌─ Raw content ──────────────────────────┐
│ WEBVTT │
│ 00:00:01.000 --> 00:00:04.000 │
│ Alice: How does the semantic layer... │
│ │
│ [drag & drop or paste] │
└────────────────────────────────────────┘
[ Cancel ] [ 🚀 Ingest Transcript ]"]:2
RESULT["📊 Intake Summary
══════════════════════════════════════════
Artifact ID art-xxxx-xxxx
───────────────────────────────
Segments 24
Questions extracted 8
Flow A pairs 5
Flow B questions 3
PII-tagged segments 2
───────────────────────────────
🔵 Trend signals
Lines normalized 47
Mentions extracted 31
Sentiments scored 47
Q-M links created 18
Auto-resolved 12
Pending admin review 3
───────────────────────────────
✅ Ingestion complete
→ View candidates
→ View trend signals"]:1
4. Candidate Review Screen
Powered by GET /v1/candidates and GET /v1/candidates/{id}/answers.
block-beta
columns 1
FILTER["Filter Bar
─────────────────────────────────────────────────────────────────────
Artifact [ all ▾ ] Flow type [ all ▾ ] Scope [ all ▾ ] [ 🔍 Search ] [ Export CSV ]"]:1
block:table:1
HDR["# │ Question Text │ Flow │ Confidence │ Source Segment │ Actions"]:1
end
block:row1:1
R1["1 │ How does the semantic layer work? │ Flow B │ 0.91 │ seg-003 │ [ Classify ] [ View Mentions ]"]:1
end
block:row2:1
R2["2 │ What is the error budget policy? │ Flow A │ 0.87 │ seg-007 │ [ Classify ] [ View Mentions ]"]:1
end
block:row3:1
R3["3 │ Can we export to multiple formats? │ Flow A │ 0.84 │ seg-012 │ [ Classify ] [ View Mentions ]"]:1
end
PAGER["← Prev Page 1 of 3 Next → Showing 1–25 of 67"]:1
5. Validation Queue Screen
Powered by GET /v1/validation/assignments, POST /v1/validation/assignments/{id}/claim, and POST /v1/validation/assignments/{id}/decide.
block-beta
columns 4
QFACT["FACT Queue
────────────
32 pending
12 in review
────────────
[ Claim next ]"]:1
QPROC["PROCEDURE Queue
────────────
18 pending
7 in review
────────────
[ Claim next ]"]:1
QCON["CONCEPT Queue
────────────
11 pending
3 in review
────────────
[ Claim next ]"]:1
QESC["ESCALATED
────────────
4 items
require
governance lead
────────────
[ Review ]"]:1
DETAIL["Candidate Detail — Currently In Review
══════════════════════════════════════════════════════════════════════════════
Question: How does the semantic layer resolve conflicts between content variants?
Horn type: FACT · Subtype: CAPABILITY · Confidence: 0.89
──────────────────────────────────────────────────────────────────────────────
Answer text (from transcript):
│ The semantic layer uses a priority-based resolution scheme. When two
│ content variants target the same output condition, the higher-scoped
│ variant wins. This is configurable per project in the portal settings.
──────────────────────────────────────────────────────────────────────────────
Assertion grammar:
Subject: semantic layer
Predicate: resolves conflicts between
Object: content variants
Scope: portal configuration
──────────────────────────────────────────────────────────────────────────────
Source: seg-007 · Artifact: meeting-2026-06-10 · Speaker: Alice
──────────────────────────────────────────────────────────────────────────────
🔵 Related mentions (Trend): semantic layer (12×) · portal settings (4×)
Rationale: [ _____________________________________________________ ]
[ ✅ Approve ] [ ✏ Revise ] [ ❌ Reject ] [ ⬆ Escalate ]"]:4
6. Registry Browser Screen
Powered by GET /v1/registry/answers and GET /v1/graph/contradictions/{id}.
block-beta
columns 1
RFILTER["Registry Filters
──────────────────────────────────────────────────────────────────────────────
Horn type [ all ▾ ] Status [ active ▾ ] Customer scope [ all ▾ ]
Expiring within [ 30 days ▾ ] Has contradictions [ any ▾ ] [ 🔍 Full-text search ] [ Export ]"]:1
block:rtable:1
RHDR["Answer ID │ Type │ Subject │ Answer (excerpt) │ Version │ Review Due │ Scope │ Actions"]:1
RR1["ans-001 │ FACT │ semantic layer │ The semantic layer uses priority-based resolution… │ v2 │ 2026-08-01 │ Acme │ [ View ] [ Supersede ] [ Graph ]"]:1
RR2["ans-002 │ PROCEDURE │ export workflow │ To export to PDF: 1. Open the output settings… │ v1 │ ⚠ 2026-06-25 │ Global │ [ View ] [ Supersede ] [ Graph ]"]:1
RR3["ans-003 │ FACT │ error budget │ The error budget is reset at the start of each quarter… │ v1 │ 2026-09-10 │ Platform │ [ View ] [ Supersede ] [ Graph ]"]:1
end
RPAGER["← Prev Page 1 of 24 Next → 1,247 approved answers"]:1
7. Trend Report Screen
Powered by GET /v1/trends/report, GET /v1/trends/report.csv, and GET /v1/trends/admin/clusters.
block-beta
columns 1
TFILTER["Trend Filters
──────────────────────────────────────────────────────────────────────────
Date range [ 2026-05-01 → 2026-06-10 ] Customer scope [ all ▾ ]
Taxonomy [ any ▾ ] Speaker [ all ▾ ] Entity [ all ▾ ] [ Apply ] [ ↓ Export CSV ]"]:1
block:trow1:2
TCHART["📊 Top Canonical Entities — Mention Count
══════════════════════════════════════════
Semantic Layer ████████████ 47
Error Budget ████████░░░ 31
Portal Configuration ███████░░░░ 28
Publishing Pipeline ██████░░░░░ 24
Localization █████░░░░░░ 19
API Gateway ████░░░░░░░ 16
Content Variant ███░░░░░░░░ 12
Snapshot Publish ██░░░░░░░░░ 9"]:1
TSENT["💬 Sentiment Trend
══════════════════════════════════════════
Entity: Semantic Layer
W21 [████████░░] +0.31 Positive
W22 [███░░░░░░░] +0.08 Neutral
W23 [████████░░] +0.29 Positive
W24 [██░░░░░░░░] -0.12 Negative
──────────────────────────────────────────
Q-linked mentions: 23 of 47 (49%)"]:1
end
block:trow2:2
TTAX["📂 Taxonomy Rollup
══════════════════════════════════════════
Business │ Product │ Topic
──────────────────┼─────────────────┼───────────────────
Content Delivery │ Portal │ Publishing
(87 mentions) │ (63 mentions) │ (54 mentions)
Knowledge Mgmt │ DITA Engine │ Localization
(45 mentions) │ (41 mentions) │ (33 mentions)
Customer Success │ API Platform │ Governance
(29 mentions) │ (27 mentions) │ (21 mentions)"]:1
THEAT["🎯 Speaker × Topic Heat Map
══════════════════════════════════════════
Semantic Error Portal API
Layer Budget Config Gateway
─────────────────────────────────────────────
Alice ████ ██ ███ ░
Bob ██ ████ ░ ████
Charlie █ ░ ████ ██
External ░ ███ █ ░"]:1
end
8. Admin Cluster Queue Screen
Powered by GET /v1/trends/admin/clusters, POST /v1/trends/admin/clusters/{id}/merge, POST /v1/trends/admin/clusters/{id}/create-entity, and POST /v1/trends/admin/clusters/{id}/suppress.
block-beta
columns 1
AQHDR["Admin Cluster Review Queue
─────────────────────────────────────────────────────────────────────────────
5 clusters pending review · Filter: [ pending_admin_review ▾ ] [ ↓ Export ]"]:1
block:aqtable:1
AQHD["Cluster Key │ Frequency │ First seen │ Last seen │ Suggested entity │ Actions"]:1
AQ1["publishing workflow │ 8× │ 2026-05-12 │ 2026-06-09 │ Publishing Pipeline │ [ Merge → ] [ Create new ] [ Suppress ]"]:1
AQ2["error handling │ 6× │ 2026-05-20 │ 2026-06-08 │ (none) │ [ Merge → ] [ Create new ] [ Suppress ]"]:1
AQ3["data model │ 5× │ 2026-05-25 │ 2026-06-07 │ Data Architecture │ [ Merge → ] [ Create new ] [ Suppress ]"]:1
AQ4["review cycle │ 4× │ 2026-06-01 │ 2026-06-06 │ Governance Review │ [ Merge → ] [ Create new ] [ Suppress ]"]:1
AQ5["api gateway │ 3× │ 2026-06-03 │ 2026-06-09 │ API Gateway │ [ Merge → ] [ Create new ] [ Suppress ]"]:1
end
9. Readout Screen
Powered by GET /v1/readouts/pre-meeting and GET /v1/readouts/post-meeting.
block-beta
columns 3
ROPT["Readout Options
══════════════════════
Type
● Pre-meeting
○ Post-meeting
Customer scope
[ Acme Corp ▾ ]
Date range
[ 2026-06-01 → ]
[ 2026-06-10 ]
Include Horn types
☑ FACT
☑ PROCEDURE
☑ CONCEPT
☑ PRINCIPLE
☐ OPEN_ISSUE
Format
● Markdown
○ PDF
[ Generate Readout ]"]:1
RVIEW["Pre-Meeting Readout: Acme Corp
══════════════════════════════════════════════════════
Generated: 2026-06-10 · Scope: Acme Corp
📋 FACTS (8)
────────────────────────────────────────────────────
▶ The semantic layer uses priority-based conflict
resolution. Scope: portal configuration.
🔵 Topic trend: Semantic Layer (47×, ↑ Positive)
▶ Error budget resets quarterly.
Owner: eng-lead · Review due: 2026-09-10
📘 PROCEDURES (3)
────────────────────────────────────────────────────
▶ To export to PDF: Open Settings → Output Targets…
⚠ Expires: 2026-06-25 (5 days)
⚠ OPEN ISSUES (2)
────────────────────────────────────────────────────
▶ Retention policy for localized content TBD
▶ Multi-tenant snapshot scheduling — pending legal
[ ↓ Export Markdown ] [ ↓ Export PDF ]"]:2
10. Graph Explorer Screen
Powered by GET /v1/graph/contradictions/{id}, GET /v1/graph/supersession/{id}, and GET /v1/graph/related/{concept}.
block-beta
columns 3
GPANEL["Graph Controls
══════════════════════
View
● Contradictions
○ Supersessions
○ Concept cluster
Answer ID
[ ans-001 ]
Concept label
[ semantic layer ]
Max hops [ 5 ▾ ]
[ Run Query ]
─────────────────
Saved queries
• Semantic Layer
conflicts
• Error budget
chain v1→v3
• Portal config
cluster"]:1
GVIEW["Graph Visualization
══════════════════════════════════════════════════════════════════
┌────────────────────────────────────────────────────────────────┐
│ │
│ [ans-001: FACT]──CONFLICTS_WITH──[ans-009: FACT] │
│ │ │ │
│ SUPPORTED_BY SUPPORTED_BY │
│ │ │ │
│ [Evidence: Confluence/SP-1234] [Evidence: Jira/Raw to Knowledge-88] │
│ │
│ [ans-003]──SUPERSEDES──[ans-003-v1]──SUPERSEDES──[ans-003-v0]│
│ │
└────────────────────────────────────────────────────────────────┘
GET /v1/graph/contradictions/ans-001"]:2
GDETAIL["Conflict Detail
══════════════════════════════════════════════════════════════════
CONFLICTS_WITH between:
ans-001 (v2, active)
Subj: semantic layer
Pred: resolves conflicts between
Obj: content variants (priority-based)
Scope: portal configuration
ans-009 (v1, active)
Subj: semantic layer
Pred: resolves conflicts between
Obj: content variants (scope-based fallback)
Scope: portal configuration
Conflict type: OBJECT_VALUE_CONFLICT
[ Raise ConflictFlag ]
[ Mark ans-009 SUPERSEDED ]
[ Open in Validation ]"]:3
11. Retrieval / Search Screen
Powered by GET /v1/retrieval/search and GET /v1/retrieval/answers/{id}/export.
block-beta
columns 1
SBAR["Semantic Search
───────────────────────────────────────────────────────────────────────────────
[ How does the semantic layer handle content variant conflicts? ] [ 🔍 Search ]
Customer scope [ all ▾ ] Horn type [ all ▾ ] Min similarity [ 0.75 ▾ ]"]:1
block:sres:1
SH["Similarity │ Type │ Answer (excerpt) │ Scope │ Version │ Actions"]:1
SR1["0.94 │ FACT │ The semantic layer uses priority-based resolution. When two content… │ Acme │ v2 │ [ View ] [ Export MD ] [ Export JSON-LD ]"]:1
SR2["0.88 │ CONCEPT │ A content variant is a conditional branch of topic content that… │ Global │ v1 │ [ View ] [ Export MD ] [ Export JSON-LD ]"]:1
SR3["0.81 │ PROCEDURE │ To configure conflict resolution priority: 1. Open Settings… │ Acme │ v1 │ [ View ] [ Export MD ] [ Export JSON-LD ]"]:1
end