Document for: CIO
Purpose: Goals, methodology, infrastructure decisions, and timeline for the 6-month engagement.
Build Viska a fully operational AI intelligence department over six months. At the end, Viska owns every component — code, data, infrastructure — and can operate it independently or with ongoing support.
The AI industry moves fast. New models ship quarterly. New tools appear weekly. The temptation is to grab the latest thing and wire it up. This produces systems that break every time the landscape shifts.
We work differently. Our methodology is built on three phases that repeat at every level of the system — from the overall architecture down to individual tool selection.
Before writing a line of code, we research the landscape systematically. For the Trading War Room alone, we conducted 9 formal research investigations over two weeks, covering:
Every finding is documented. Every decision has a rationale. Nothing is adopted without evaluation. Nothing is discarded without a written reason.
Every tool, model, or integration is measured against six criteria before it enters the system:
| Criterion | What We Ask |
|---|---|
| Terms of Service | Does our usage comply? Would we be comfortable if the vendor audited us? |
| Multi-agent compatibility | Can multiple specialists use this simultaneously? A tool that locks to one session at a time is unacceptable in a team environment. |
| Failure mode | When it fails, does it fail loudly (error) or silently (wrong data)? Silent failure is a hard reject — in financial systems, wrong data is worse than no data. |
| Maintenance | Is the project actively maintained? How many open issues? When was the last release? A 4-year-stale dependency is a liability. |
| Resource cost | RAM, CPU, API costs — does it fit without competing with the core system? |
| Replaceability | If it disappears tomorrow, can we substitute it? Single points of failure are unacceptable. |
Case study — TradingView integration:
The CIO's actionable plans reference TradingView for charting and technical analysis. We evaluated two TradingView MCP projects in detail:
Project 1 (browser automation approach) — Declined. Five structural kill factors:
Project 2 (Python library approach) — Selective adoption for later phase. No browser automation. Backtesting, screening, and multi-timeframe analysis tools fill a genuine gap. But: sentiment tools use keyword counting (not real NLP), news tools duplicate our existing pipeline, and the underlying TradingView library is 4 years stale. We adopt only the tools that add value, skip the rest.
What we built instead: A three-layer architecture using TradingView's own official features:
This is the methodology in action. We don't adopt or reject tools based on popularity. We evaluate systematically, document the rationale, and build the architecture that serves the actual need.
Recent research from Stanford and Tsinghua (March 2026) quantified what we practice: the same AI model delivers a 6x performance difference depending on how it's orchestrated. The model is a commodity. The orchestration layer — how agents coordinate, remember, enforce boundaries, and adapt to the domain — is the asset.
This field is called harness engineering. Three principles:
Subtract before you add. The instinct is always more tools, more agents, more complexity. The evidence shows the opposite. One company removed 80% of its tools and got better results. We build focused systems with clear boundaries. Each agent has a defined domain — what it can access, what it can modify, what it must escalate.
Build the layer that survives. Models change quarterly. Prompting techniques that work today break tomorrow. But the orchestration layer — the skill system, the memory architecture, the governance protocols — transfers across models. When a new generation ships, the system gets stronger without rebuilding. Your investment compounds instead of depreciating.
Govern first, optimize second. Speed without governance produces systems nobody trusts. Credential isolation, audit trails, scope boundaries, and human approval gates are structural — built in from day one, not added after an incident. This is what makes AI systems safe for institutional use.
Every component in the system follows the same path:
Research → Evaluate → Decide (adopt / selective adopt / defer / decline) → Document → Build
The documentation is not bureaucracy — it's institutional memory. When a question comes up six months later ("why don't we use X?"), the answer exists with the full reasoning chain. Decisions don't get relitigated without new information.
Months 1–2
Outcome: The team queries the entire global macro landscape — broker research, central bank minutes, earnings transcripts, policy documents — from a single interface. Cross-asset macro narratives synthesized daily.
What changes:
Months 2–3
Outcome: Specialized AI agents run 24/7, each watching a different domain. They monitor, analyze, and report proactively.
Agents deployed:
What changes:
Months 2–4
Outcome: A four-layer trading environment with live data, technical analysis, trade journaling, and mechanical risk enforcement. Every order requires human approval. Every trade has a written thesis.
Architecture:
| Layer | Function |
|---|---|
| War Room | 4 AI agents in coordinated sessions: Operator (coordinator), Technical Analyst (chart analysis), Risk Manager (pre-trade enforcement), Execution Agent (order submission) |
| Automation | 7 n8n pipelines: market data, TradingView signal intake, position monitoring, trade logging, weekly reports, macro narratives, central bank documents |
| Execution | Alpaca paper trading API — long-only, human-approved, market hours only |
| Presentation | React dashboard (7 pages): portfolio, positions, strategy, analytics, trade journal, alerts, market context |
Order flow — defense in depth:
Analyst thesis → Risk qualification → Operator approval → Execution submission → Alpaca
Every step produces a structured record. No step can be skipped.
Risk framework:
| Rule | Limit |
|---|---|
| Max risk per trade | 1% of portfolio |
| Max position size | 5% of portfolio |
| Max sector exposure | 20% |
| Min risk/reward | 1.5:1 |
| Max open positions | 8 |
| Min cash reserve | 20% |
| Daily drawdown halt | -5% |
| Peak-to-trough halt | -10% (full review) |
| Consecutive losing days | 3 → mandatory reflection |
Non-negotiable:
Months 4–5
Outcome: Monthly LP letters, performance reports, and thought leadership content draft automatically from actual research and positions. The team reviews and approves — never starts from a blank page.
Components:
Month 5
Outcome: Overnight scenario analysis and proprietary signal generation from Viska's own macro framework.
Components:
What changes:
Month 6
Outcome: Continuous partner surveillance and full system handoff.
Components:
Ownership at handoff:
This is the complete inventory of agents, automation pipelines, and capabilities being built. The CIO can audit each profile against the goals above.
Four agents operate in coordinated sessions. Each has a defined role, specific tools, and strict scope boundaries.
| Agent | Role | Tools Available | Scope Boundary |
|---|---|---|---|
| Operator | Session coordinator, final decision authority | Alpaca MCP, FRED MCP, Ollama MCP | Reads all agent outputs, synthesizes market view, approves/rejects orders. Writes strategy thesis and session logs. |
| Technical Analyst | Chart analysis, trade idea generation | Alpaca MCP, FRED MCP, QuantOracle, SQLite MCP | Sets alerts on TradingView, confirms with quantitative tools. Does NOT make trade decisions — generates ideas for review. |
| Risk Manager | Pre-submission risk enforcement | Alpaca MCP, QuantOracle, SQLite MCP | Reviews every trade against risk framework. 8-item qualification checklist. Holds soft veto — unsigned trades cannot proceed. |
| Execution Agent | Order assembly, validation, Alpaca submission | Alpaca MCP, SQLite MCP | Four hard gates before any API call: (1) operator_approved present, (2) order is buy-only, (3) within market hours, (4) position size re-validated. |
Scheduled sessions:
Later-phase agents (Phase 1D):
| Agent | Role | Timeline |
|---|---|---|
| Macro Researcher | Deep macro analysis sub-agent | After foundation is proven |
| Sentiment Analyst | NLP-based sentiment (replacing keyword counting) | After FinBERT deployment |
| Quant Strategist | Backtesting, signal optimization | After backtesting tools validated |
| Knowledge Synthesiser | Reads weekly reflections, updates skill libraries | After 8 weeks of operational data |
| Agent | Domain | Output | Cadence |
|---|---|---|---|
| Crypto Agent | On-chain metrics, exchange flows, funding rates, liquidation data | Anomaly reports, whale movement alerts, exchange outflow flags | Continuous |
| Macro Sentiment Agent | Cross-asset radar (FX, rates, commodities, equities) | Daily conviction scoring, theme tracking (AI capex, commodity supercycle, deglobalization), consensus divergence flags | Daily scoring, continuous monitoring |
| Geopolitical Risk Scanner | Regulatory filings, sanctions, elections, policy shifts | Risk event alerts, jurisdiction monitoring, pre-consensus flagging | Continuous |
| Agent | Domain | Output | Timeline |
|---|---|---|---|
| Mímir Research Assistant | Broker research corpus, macro sources | Sourced answers, cross-broker synthesis, thread-aware conversations | Live today |
| Daily Brief | Overnight document synthesis | Themed morning report, high-impact flags, source attribution | Live today |
| Content Engine | Thought leadership production | 2-3 polished pieces/week (Icelandic + English), newsletters, LinkedIn | Month 4 |
| CRM Agent | LP relationship intelligence | Meeting prep profiles, follow-up drafts, relationship graph queries | Month 4 |
| Scenario Lab | Overnight deep analysis | Structured scenario reports, probability assessments, portfolio impact | Month 5 |
| Signal Generator | Proprietary quantitative signals | Backtestable signals from Viska's macro framework, runs on Viska infrastructure | Month 5 |
| Partner Intelligence | Distribution partner surveillance | Weekly scans: regulatory, AUM, personnel, news across Europe | Month 6 |
Seven workflows running on self-hosted n8n, automating data movement and processing:
| Pipeline | Function | Trigger | Status |
|---|---|---|---|
| Watchdog | Position monitoring, L1/L2/L3 alert classification | Every 5 min (08:00-20:00 ET) | Live |
| Market Data Pipeline | Alpaca + FRED macro data merged to JSON, written to R2 | Scheduled | Live |
| Trade Log Pipeline | Picks up trade files from agent sessions, persists to SQLite + R2 | File trigger (new trade files) | Live |
| Signal Intake Pipeline | TradingView webhook receiver → validate → enrich → SQLite → R2 → notify | Webhook (TradingView alerts) | Live |
| Weekly Performance Report | Friday synthesis: QuantStats metrics, P&L attribution, narrative | Scheduled (Fridays) | Live |
| Grok Narrative Briefing | AI-generated market narrative from macro + price data | Scheduled | Built |
| CB Document Pipeline | Central bank document processing (Fed FOMC, ECB rates) | Scheduled | Built |
What the team can do at each milestone:
| Capability | Month 1 | Month 2 | Month 3 | Month 4 | Month 5 | Month 6 |
|---|---|---|---|---|---|---|
| Query research corpus | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Daily intelligence brief | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Primary macro sources (central banks) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| MCP access from any workspace | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 24/7 surveillance agents | ✓ | ✓ | ✓ | ✓ | ✓ | |
| Real-time sentiment tracking | ✓ | ✓ | ✓ | ✓ | ✓ | |
| Paper trading with risk enforcement | ✓ | ✓ | ✓ | ✓ | ||
| Live dashboard (7 pages) | ✓ | ✓ | ✓ | ✓ | ||
| TradingView signal intake | ✓ | ✓ | ✓ | ✓ | ||
| Technical analysis (63 quant tools) | ✓ | ✓ | ✓ | ✓ | ||
| Automated LP letters | ✓ | ✓ | ✓ | |||
| Thought leadership (2-3/week) | ✓ | ✓ | ✓ | |||
| Meeting intelligence (prep + follow-up) | ✓ | ✓ | ✓ | |||
| Overnight scenario analysis | ✓ | ✓ | ||||
| Proprietary signal generation | ✓ | ✓ | ||||
| Partner surveillance | ✓ | |||||
| Full system ownership & handoff | ✓ |
Every tool was evaluated against the six criteria described in Our Methodology.
| Server | Capability | Why Selected |
|---|---|---|
| Alpaca MCP | 70+ tools: account, orders, positions, market data | Official API, paper and live, no ToS concerns |
| FRED MCP | 800,000+ macro data series | Official Federal Reserve data, maintained |
| QuantOracle | 63 deterministic tools: Sharpe, Sortino, drawdown, Greeks | Production-grade, 1000 free calls/day |
| Ollama MCP | Local model inference (Gemma for synthesis) | Runs on own hardware, no API costs |
| SQLite MCP | Direct SQL to trading database | Zero-latency access to logs, signals |
| Component | Technology | Purpose |
|---|---|---|
| Signal delivery | TradingView Webhooks | Official, supported — no scraping |
| Dashboard charts | TradingView Lightweight Charts | MIT-licensed, ToS-compliant display |
| Live data | Alpaca API via FastAPI proxy | Positions, portfolio, equity curve — credentials never reach browser |
| Static data | Cloudflare R2 | n8n writes, dashboard reads — zero server cost |
| Automation | n8n (self-hosted) | 7 pipelines, auditable, no vendor lock-in |
| Dashboard | React + Cloudflare Pages | Static, fast, your domain |
| Library | Purpose |
|---|---|
| alpaca-py v0.43.2 | Official Alpaca SDK |
| pandas-ta | Technical indicator confirmation |
| PyPortfolioOpt | Position sizing (mean-variance, HRP) |
| Riskfolio-Lib | Tail-risk measures (CVaR) |
| QuantStats | Performance tearsheets |
| Tool | Decision | Key Reason |
|---|---|---|
| TradingView Chart MCP (browser automation) | Declined | ToS violation, fragile, 500MB+ RAM, single-agent lock |
| Browser-automation integrations (any) | Policy: never adopt | Fragile, ToS-violating — official APIs only |
| TradingView MCP (Python variant) | Selective adoption — later phase | Backtesting and screening useful; sentiment and news tools skipped |
| Autonomous order execution | Design principle | Human approval is permanent, not a Phase 1 limitation |
| FinBERT sentiment | Deferred | Deployment complexity; manual monitoring until proven |
9 formal investigations produced key architectural decisions:
| Research Finding | What It Changed |
|---|---|
| FRED MCP + QuantOracle together close the quantitative macro layer | Eliminated the strongest argument for TradingView MCP — we don't need it for quant analysis |
| MCP costs 10-32x more tokens than CLI (tested over 25 runs) | Adopted CLI-first strategy; MCP for specific guarantees only |
| Grok Responses API required (not Chat Completions) | Grok narrative workflow uses correct API path |
| Index retrieval outperforms RAG at ~400K words | Knowledge base uses index retrieval, no vector database overhead |
| n8n S3 node works with R2 via custom endpoint | R2 adopted as static data store — zero-cost dashboard data |
| FinBERT requires FastAPI sidecar | Deferred to later phase — manual monitoring required until deployed |
| Month | Goal | Key Deliverables |
|---|---|---|
| 1 | Macro Research Intelligence | Expanded corpus, daily brief with primary macro sources, MCP access from any workspace |
| 2 | Surveillance + Trading Foundation | 3 surveillance agents, trading war room foundation, dashboard v1 |
| 3 | Trading War Room Operational | Paper trading live, risk framework enforcing, signal intake, full dashboard |
| 4 | Investor Communications | LP letter pipeline, thought leadership (2-3/week), meeting intelligence |
| 5 | Scenario Modeling & Signals | Overnight scenario lab, proprietary signal generator on Viska infrastructure |
| 6 | Distribution Intelligence & Handoff | Partner surveillance, full system handoff, documentation, training |