Skip to content

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