Viska sjóðir · Weekly Meeting · 2026-05-20

A tour of the two war rooms

How Viska-AI Is Built

The architecture and topology behind your trading and research stack.

Apollo · Plutus · Mímir-Mastra

02

Viska-AI · two war rooms

Opening frame

Two specialized teams at a common dinner table.

We're building Viska two parallel systems, not one. They share infrastructure but do different jobs, on different schedules, with different people in the room.

Think of them as two specialized teams that meet at a common dinner table — one team builds the kitchen, the other team cooks every day.

We call them war rooms.

The system at a glance

Two war rooms, supporting cast underneath, memory layer beneath all of it.

DATA SOURCES · FEEDING IN Alpaca · paper account TradingView FRED · macro indicators CIA World Factbook News API feeds (Hermes) YouTube transcripts SQLite · viska-trading.db Ingested corpus (your docs) VISKA BACKEND · BUILD MODE ORCHESTRATION BRAIN Mímir-Mastra WORKFLOW PLUMBER Mímir-n8n DESIGN + DELIVERY Apollo COORDINATOR Plutus VISKA ACTIVE · OPERATE MODE RESEARCH ANALYST trading-analyst RISK OFFICER trading-risk EXECUTION DESK trading-execution OPERATOR / SUPERVISOR trading-operator COORDINATOR · SAME PLUTUS Plutus SUPPORTING CAST · BOTH ROOMS Hades · credential vault Proteus · DB + infra Atlas · fleet playbook Hermes · research scout MEMORY LAYER · UNDERNEATH BOTH ROOMS A · INGESTED CORPUS Mímir Operator-loaded research, fund documents, papers — static corpus. B · LLM WIKI · NEW Knowledge graph Auto-harvested from every agent output · cited · versioned.

War room 1 of 2

Viska Backend — the construction crew.

Designs, builds, tests, and deploys the stack — the infrastructure the live trading system runs on. Moves on a developer's schedule: features, deploys, fixes, releases.

It does not trade. It does not touch markets.

What lives here

  • The dashboard you'll eventually see in your browser
  • The Mímir Slack bot that posts research and summaries
  • The data pipelines that move market information into the system
  • The contracts, the storage, the publication mechanics

War room 2 of 2

Viska Active — the trading floor crew.

Runs the live, day-to-day analytical and trading work using the stack the backend team builds. Moves on a market schedule: pre-market, open, intraday, end-of-session.

What lives here

  • Daily research notes
  • Risk monitoring on live positions
  • Trade signals, gating, and execution against the paper account
  • The end-of-day summary that lands in your Slack channel

Why two rooms instead of one

Separation of concerns.

Risk guarded against

The active room cannot accidentally deploy a half-built feature into a live market session.

Independence preserved

The backend room cannot freeze the active room while testing an unrelated change.

Each room runs on its own clock, with its own people, against its own goals — while sharing the same underlying memory and data.

How work gets tracked

Every task lives on a GitHub board.

  • One board per agent (about a dozen across the fleet)
  • Every task has a status: backlog → in flight → in review → done
  • Labels mark which agent owns it and which room it lives in
  • Finished tasks link back to the code, document, or deployment they produced

What this means for Viska

Every piece of work you'll ever ask us about has a permanent, dated, linkable record. No chat history. No memory dependence.

You'll eventually get a read-only view into the boards relevant to Viska.

Backend room — the build crew

Four functional groups.

GroupAgentWhat they do
Orchestration brain Mímir-Mastra Reasons about the live system state, answers operator questions in Slack — eventually answers your questions in Slack. The persona you'll talk to.
Workflow plumber Mímir-n8n Owns the visual workflow tool that publishes summaries, watches for files, posts to Slack. Connective tissue between system and you.
Design + delivery Apollo Owns client-facing surfaces — dashboards, slide decks, reports, the visual layer. Handles Icelandic localization.
Coordinator Plutus Runs the room. Tracks what's in flight, dispatches work, files cross-team handoffs, owns the GitHub pushes for the room.

Active room — the trading floor

Five functional groups.

GroupAgentEquivalent at a traditional fund
Research analyst trading-analyst Reads market data and macro indicators, produces the daily research note. Your buy-side desk analyst.
Risk officer trading-risk Watches position size, concentration, drawdown limits. Vetoes trades that breach the mandate. Your risk function.
Execution desk trading-execution Translates approved signals into orders against the paper Alpaca account. Files database records. Your trading desk.
Operator / supervisor trading-operator Reads the analyst's note, decides what's approved, signs off the end-of-day summary. PM + ops lead.
Coordinator Plutus Same Plutus identity as the backend room — runs the active room session, files the day's artifacts, owns audit attribution.

Outside both rooms

Four fleet agents support both rooms without sitting in either.

Hades

Credential vault

Owns API keys, tokens, anything secret. No keys ever pass through agent chat.

Proteus

DB + infrastructure governance

Owns the trading SQLite database, Supabase tables, server provisioning.

Atlas

Fleet operational rules

Owns the playbook every agent reads at session start.

Hermes

Research scout

Pulls in external intelligence (papers, repos, vendor analysis) on request.

Memory layer · surface A

Ingested data, queryable via Mímir.

Mímir answers questions about a body of pre-loaded research — papers, articles, fund documents, market literature that the operator has explicitly ingested.

You ask in Slack. Mímir reads the corpus. Mímir answers.

This is what you've been seeing for several months.

Memory layer · surface B · new

The LLM Wiki — a knowledge graph of every finding.

Every time any agent produces a piece of research — daily note, risk assessment, synthesis, override reasoning — it gets harvested into a structured knowledge graph.

The graph captures

  • The fact or finding itself
  • Who produced it and when
  • What it was based on (source, prior finding)
  • How it connects to other facts

For Viska leadership

You'll browse this knowledge graph directly — a kind of internal Wikipedia automatically maintained by the system rather than written by hand.

Why this matters for Viska specifically

A persistent, attributable fund memory.

Funds accumulate institutional knowledge that lives in PM heads, email threads, Slack DMs, abandoned docs.

The LLM Wiki gives Viska a persistent, searchable, attributable memory of every analytical decision the system makes, queryable in plain language.

Auditors, future hires, and Viska leadership see the same picture six months later as the trading-operator saw the day the decision was made.

What we feed the system

Five families of source data.

Market data · live

Alpaca · paper TradingView

Market data · historical

Alpaca · full history SQLite · viska-trading.db

Macroeconomic context

FRED CIA World Factbook

News + sentiment

News API · via Hermes YouTube transcripts

Internal research

Ingested corpus Daily research notes Decision archaeology

Alpaca paper is the v1.0 substrate. Live capital is a v2.0 decision — requires Viska sign-off on mandate, risk gating, audit layer.

How we intend to use the data

Three operational layers.

1

Decision support · real-time

Analyst and risk officer pull from market data + macro + news to produce the daily note and gate decisions on live signals.

2

Pattern recognition · week-over-week

The knowledge graph lets Mímir answer comparative questions ("how does this week's setup compare to three weeks ago"), surfacing patterns no single human catches across that span.

3

Audit + accountability · indefinite

The SQLite log + knowledge graph together mean every trade decision, every research output, every override can be reconstructed years from now. Your fund-level audit trail.

Section 6 · what's next

The path to live dashboard.

27

Tracked items

5 groups · one board · one dashboard.

From paper trading → a real, tenant-isolated Viska dashboard: live IBKR positions, live Iceland cash, weekly allocation history, AI-driven analysis.

Boardboas-dev/projects/2

Group A — International brokers + data ingestion

Connecting to the real sources of truth.

Group A 6 items

IBKR Flex web service

Account U22131377 · Viska Macro Fund

Daily institutional pull — positions, cash by currency, fills. Backfill to inception (Oct 2025).

Iceland Open Banking · AIS

Íslandsbanki · Audkenning eID

Direct OAuth, ~90-day token. Replaces hardcoded ISK 80M kr with a live balance, refreshed daily.

FX rates

Daily ISK→USD

From Seðlabanki XML or ECB. Anchored to broker-day snapshot.

+ 3 supporting items

Pull schedule · normalization · audit log

Cadence config, currency-pair normalization, and dated SQLite audit rows for every pull.

Owners: hades (credentials) · pantheon-ops (ingestion) · plutus (Open Banking client)

Group B — Backend gates

Five non-negotiable prerequisites for a client-facing deploy.

Group B 5 items

We do not show Viska a live URL until all five gates close.

G1

Close 27 anon-readable financial tables · RLS posture

G2

Schema isolation · dash_core + dash_gulli_macro

G3

Auth provisioning · dashboard_users + JWT-claim RLS

G4

IBKR Flex wired into n8n

G5

Cloudflare DNS + cert for the dashboard host

Owner: proteus · plus pantheon-ops on G4

Group C — Dashboard frontend

The surface you'll actually see.

Group C 7 items

App shell · fork

Gulli's 548-line viska-dashboard.jsx

March 27 IBKR snapshot → production app shell.

D1 · PortfolioDashboard

YFIRLIT · ÞEMU · STÖÐUR · AI GREINING

Four tabs, wired to live IBKR + ISK feeds.

D2 · AllocationHistoryDashboard

Weekly aggregation cron

Oct 2025 backfill + ongoing weekly snapshots.

D3 · CompanyProfilesDashboard

Seeded from prototype's 24 entries

Plus admin-edit form for editorial profile updates.

Mastra runtime

Replace browser→Anthropic call

Existing prototype path is broken + key-exposure risk. Proper server-side runtime needed.

+ 2 bug fixes

Prototype bugs · pre-deploy

Two known issues on the existing 548-line file must close before any deploy.

Owners: apollo (frontend) · proteus (ticker coverage)

Group D — Decisions to close

Joint decisions before the dashboard ships.

Group D 6 items

Each is a decision the operator + Viska need to make jointly. Staged on the board so nothing is forgotten.

D-01

Editorial profile ownership

Who writes the Icelandic ticker descriptions — Gulli, Hermes, hybrid?

D-02

Screener tool — v1 or v2?

Ship in launch or defer to Phase 2.

D-03

Theme-at-time tracking

Does allocation history reflect historical theme tags?

D-04

Browser-scrape data sources

Adopt for "impressive" wow factor or stay API-only?

D-05

Anthropic key invoicing

Shared or per-tenant billing?

D-06

Subdomain pattern

Path-based vs subdomain-based tenant routing.

Group E — Phase 2

After v1 ships — the next-six-month roadmap.

Group E 3 items

P2-01

Screener tool

If punted from v1.

P2-02

Multi-tenant onboarding

Supabase Phase 2 tier — capacity for additional client tenants beyond Viska.

P2-03

Iceland banking via PSD2

If any manual fallback is needed during v1.

Total scope

27 items · A·6 + B·5 + C·7 + D·6 + E·3

Owners across the board

hades · proteus · apollo · plutus · pantheon-ops · hermes

Reading the board

Open the project. Read the state.

Backlog 12

Group A · p2FX rates · daily ISK→USD
Group D · p2Subdomain pattern decision
Group E · p3Multi-tenant onboarding

In flight 8

Group A · p1IBKR Flex pull · U22131377
Group B · G1 · p1Close 27 anon-readable tables
Group C · D1 · p1PortfolioDashboard tabs

In review 4

Group B · G5 · p2Cloudflare DNS + cert
Group C · p2Mastra runtime swap

Done 3

Group A · p1Prototype audit · 548 lines
Group B · scaffoldSchema partition draft

Each item carries

  • Status — backlog / in flight / in review / done
  • Owner — agent label (agent:hades, agent:proteus, …)
  • Priority — p1 (now) · p2 (soon) · p3 (later)
  • Source — every issue body links to the planning document section it derives from

Board

github.com/orgs/boas-dev/projects/2

Nothing is improvised. Everything traces to a written plan you have access to.

Closing frame · 30 sec

To summarize the topology.

  • Two war rooms — backend builds the system, active operates it.
  • GitHub Projects — every task tracked, dated, attributable, eventually visible to you.
  • A dozen agents — research, risk, execution, supervision, design, infrastructure.
  • Two memory layers — Mímir's ingested corpus + the new LLM Wiki knowledge graph.
  • Named data sources — Alpaca, TradingView, FRED, news APIs, YouTube, your ingested docs — feeding three layers: real-time decision · pattern recognition · indefinite audit.
  • What's next — 27 tracked items across 5 groups building toward the live Viska dashboard: international brokers (IBKR + Iceland Open Banking), backend gates, frontend, decisions to close jointly, Phase 2 roadmap.

The system is not magic and not a black box. Every piece is named. Every piece has an owner. Every piece writes a record.

Questions you ask today should be answerable by Mímir tomorrow — citing the agent, the date, and the source.