Authored by Athena. This is the definitive structure document for the Pantheon Hub dashboard — what every page is, what it shows, and how navigation flows. The Hub is a command center for a multi-agent, multi-machine fleet. It should feel like a mission control room, not a project management tool.
COMMAND
◈ Overview / Fleet pulse + activity + alerts
◇ Portfolio /portfolio Projects, clients, engagements
⚔ War Room /war-room Active + historical sessions
CONSTELLATION
✦ Athena /athena Strategic governance, assessments
⬢ Atlas /atlas Fleet ops, skills, Argus, enforcement
◇ Metis /metis Strategic research, proposals
⚡ Hermes /hermes Intelligence, monitoring, feeds
☀ Apollo /apollo Creative output, deliverables
$ Plutus /plutus Costs, budgets, financial oversight
☢ Hades /hades Security, credentials, guard rails
⚙ Proteus /proteus Infrastructure, pipelines, compliance
◑ Mnemosyne /mnemosyne Knowledge graph, memory, Aion
SYSTEM
♡ Pulse /pulse Health rings, probe history
⊕ Fleet /fleet Machines, agents, connectivity
◉ SSOT /ssot Fleet table browser
▶ Dispatch /dispatch Pipeline, work items, ask_human
| Change | Why |
|---|---|
Home page (/) becomes Overview, not Portfolio |
The first thing you see should be fleet health and activity, not a list of projects |
Portfolio moves to /portfolio |
Projects are important but not the daily heartbeat view |
| System page replaced by Pulse | "System" is vague. Pulse is the actual health monitoring system with ring probes. Name it what it is. |
| Dependencies page removed from nav | Dependency health is a section inside Proteus (infrastructure quality), not its own page |
| SSOT stays | Fleet table browser is genuinely useful as a standalone lookup tool |
/)Purpose: The page you see when you open the Hub. Answers: "Is everything OK? What happened? What needs attention?"
Layout:
┌──────────────────────────────────────────────────┐
│ FLEET STATUS BAR │
│ ● 5 agents online ● 2 machines ● Pulse: ✓ │
│ ● 3 active war rooms ● 0 critical findings │
└──────────────────────────────────────────────────┘
┌─────────────────────┐ ┌────────────────────────┐
│ ACTIVITY FEED │ │ ATTENTION │
│ │ │ │
│ Recent events │ │ ⚠ Argus findings (2) │
│ across all agents, │ │ ⚠ Stale agent: metis │
│ repos, war rooms. │ │ ● ask_human pending (1) │
│ Time-sorted. │ │ ● Pipeline blocked (0) │
│ Max 20 items. │ │ │
│ │ ├─────────────────────────┤
│ │ │ ACTIVE WORK │
│ │ │ │
│ │ │ War room: wr-athena │
│ │ │ War room: wr-plutus │
│ │ │ Task: atlas/M3-06 │
│ │ │ │
└─────────────────────┘ └────────────────────────┘
┌──────────────────────────────────────────────────┐
│ CONSTELLATION STATUS │
│ │
│ Athena ✓ Atlas ✓ Metis ● Hermes ✓ │
│ Apollo ✓ Plutus ● Hades ✓ Proteus ✓ │
│ Mnemosyne ✓ │
│ │
│ (Each links to constellation page. Color = │
│ last_seen recency. Click for detail.) │
└──────────────────────────────────────────────────┘
Data sources (all real):
GET /api/agents (last_seen, status)GET /api/pulse (latest ring status)GET /api/argus-status (checks_warned, checks_critical)GET /api/war-room/sessions?phase=activeGET /api/cross-agent-feed (latest 20)GET /api/pipeline?status=waiting_approvalGET /api/dispatch-responses?status=pendingGET /api/active-tasksNo mock data. Every widget on this page must be backed by a real API call.
/portfolio)Purpose: Strategic project and client view. Answers: "What are we working on? For whom? How far along?"
Layout:
Three collapsible sections, each showing project cards:
Agency — Client engagements (type: client-engagement)
Products — Internal products we build and maintain (type: product)
Constellation — Agent repos (type: constellation)
Filters: lifecycle (active/maintenance/archived), priority (focused/critical/planning/paused), type, sort (activity/progress/name)
Key change from current: The flat 39-item dump becomes ~15 meaningful projects grouped by purpose. Repos live inside projects (Repos tab on project detail), not as standalone cards.
/war-room)Purpose: Session history and governance decisions. Answers: "What did we decide? What's still open?"
No changes needed. The current War Room page is well-structured with real data: sessions, decisions, issues, actions, deliverables. Keep it as-is.
Add one thing: Active sessions pinned to top with a live indicator.
Every constellation page follows a consistent layout:
┌──────────────────────────────────────────────────┐
│ AGENT HEADER │
│ {Name} — {Role} │
│ Last seen: {timestamp} Machine: {hostname} │
│ Status: {online/stale/offline} │
└──────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ DOMAIN STATS STRIP (3-5 key metrics) │
└──────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ TAB BAR │
│ Activity | Domain-Specific Tabs... │
└──────────────────────────────────────────────────┘
The Activity tab is universal: recent events, commits, war room participation, task completions for this agent. All from real data (events table filtered by agent_id).
The domain-specific tabs vary per agent. Each is described below.
/athena)Role: Strategic governance, fleet-wide assessment, priority setting.
Tabs:
POST /api/agents/:id/priorities.Data sources: All real — athena_assessments, directives, agent_priorities, events.
Not included: The chat shell stays as a placeholder until Mastra backend is built. Don't make it prominent — it doesn't work yet.
/atlas)Role: Fleet operations, skills, topology enforcement, Argus.
Tabs:
argus_reports, argus_proposals, argus_dispatch_log..claude/skills/, .agent/skills/ across all synced repos. Until real, show "Inventory pending — run /skill-plan to populate."Key principle: Atlas is operational infrastructure. If Argus finds a violation, it should be visible here first.
/metis)Role: Strategic research, proposals, competitive analysis.
Tabs:
Honest status: Metis is the most isolated agent. The page should reflect this — "Arsenal-only, no Hub dispatch path" — rather than showing mock data that implies connectivity.
/hermes)Role: Intelligence gathering, research dispatch, monitoring.
Tabs:
intelligence_monitors table)./apollo)Role: Creative output, design systems, visual deliverables.
Tabs:
deliverables table./plutus)Role: Financial oversight, cost tracking, budget management.
Tabs:
GET /api/costs/summary. This is the one real data source Plutus has — make it prominent./hades)Role: Security, credential management, guard rails.
Tabs:
security_findings table.auth_events table via GET /api/audit-trail./proteus)Role: Infrastructure quality, upgrades, pipeline execution, compliance.
Tabs:
work_items table.pulse_reports./mnemosyne)Role: Knowledge graph, memory, decision archaeology.
Tabs:
planning_decisions table./pulse)Purpose: Health monitoring. Answers: "Are all systems operational?"
Replaces current SystemPage. Same content (ring probes, findings), better name.
Layout:
Data: All real from pulse_reports table.
/fleet)Purpose: Machine and agent inventory. Answers: "What's connected? What's stale?"
Layout:
machines + machine_metrics.agents + agent_priorities.Data: All real.
/ssot)Purpose: Fleet table browser. Answers: "What does the SSOT say about X?"
No changes needed. This is a lookup tool — it works as-is.
/dispatch)Purpose: Pipeline execution and human-in-the-loop. Answers: "What's in the pipeline? What's waiting for me?"
Layout:
Data: All real from pipeline and dispatch tables.
Before the UI changes, the data needs cleanup. Current state: 39 standalone repo-projects. Target: ~15 meaningful projects with repos nested inside.
| Project | Type | Workspace | Repos to Absorb |
|---|---|---|---|
| Gáldr × Viska sjóðir | client-engagement | Agency | client-VISKA-mimir, mastra-agent-viska-mimir, client-VISKA-mimir-agent |
| Pantheon Hub | product | Personal | pantheon, n8n-Hub, n8n-spoke-pantheon-ops |
| Arsenal | product | Personal | arsenal, arsenal/* (6 repos) |
| Nexus (boas.dev) | product | Personal | boas-dev-nexus-n8n, nexus |
| Trading War Room | product | Personal | trading-war-room |
All constellation-* repos get type: constellation. They don't need umbrella projects — each is its own project linking to a constellation page.
Low-value entries like local/k4120s, local/_K4120S, local/pantheon-ops, local/constellation-athena (duplicate) should be archived or merged into their parent projects.
| Priority | Work | Owner | Why |
|---|---|---|---|
| P0 | Fix project detail 404 bug | Proteus | Everything depends on project pages working |
| P1 | Build Overview page (/) |
Proteus | The daily command center — most important new page |
| P1 | Repo consolidation (API calls) | Atlas | Data cleanup before UI work |
| P2 | Portfolio restructure | Proteus | Group by workspace/type, absorb current page |
| P2 | Standardize constellation page layout | Proteus | Consistent header + stats + tabs across all 9 agents |
| P2 | Replace mock data with honest placeholders | Proteus | "Not connected" is better than fake data |
| P3 | Rename System → Pulse | Proteus | Route change + sidebar update |
| P3 | Move Dependencies into Proteus page | Proteus | Consolidate infrastructure quality into one place |
| P3 | Connect real data to Hermes/Apollo/Metis | Per agent | Each needs its own data pipeline |
These are all important but they are feature additions, not navigation architecture. This document defines the container; those features fill it.