# VAUCO OS — ARCHITECTURE.md # Eier: PLAN-Claude-Architect # Sist oppdatert: 2026-05-21 CEST # Godkjent av: Chris Christiansen --- ## Hensikt Single source of truth for systemarkitektur, komponent-diagram og design-kontrakter. Ingen andre tråder skriver denne filen. Andre tråder kan foreslå patcher via PR. --- ## Komponent-diagram (ASCII) ``` [Chris / Operatør] | -----+------+----------+----------+ | | | | OPS EXEC PLAN AUDIT Perplexity Gemini Claude Nemotron Computer 2.5 Pro Sonnet/ (NMT) Opus | | | | +-----+-----+----------+----------+ | [GitHub] OSVauco (main) vauco-bootstrap (main) | [GCP / Cloud Run] project: propane-will-491900-m5 region: us-central1 | [OPAX-MCP — opax.vauco.no] service: opax-mcp-core protocol: OPAX Protocol | [Klient-OS] -oss.vauco.no (stage) -os.vauco.no (prod) ``` --- ## MCP Identity | Parameter | Verdi | |----------------|------------------------------------| | MCP_NAME | OPAX-MCP | | MCP_PROTOCOL | OPAX Protocol | | MCP_SERVICE | opax-mcp-core | | Cloud Run | us-central1 | | HUB_URL | https://opax.vauco.no (Phase 2) | --- ## Domenekonvensjon — LOCKED | Subdomain | Type | Formål | |-------------------------|----------|---------------------------------------------------| | `opax.vauco.no` | Hub/MCP | OPAX-MCP operator hub — kun Vauco internt | | `-os.vauco.no` | Prod OS | Kundens live produksjonssystem | | `-oss.vauco.no` | Stage OS | Kundens staging/demo-system (pre-go-live) | > `-os` = produksjon. `-oss` = staging. Aldri omvendt. ### Auth-strategi - **Nå:** Google OAuth på alle miljøer - **Senere:** BankID på `-os`-domener for kliniske kunder (Medioteq først) ### Kjente / planlagte domener | Domene | Status | Cloud Run-tjeneste | |-------------------------|---------------|-----------------------| | `opax.vauco.no` | DNS pending | `opax-mcp-core` ✅ | | `medioteq-oss.vauco.no` | Planlagt | `medioteq-oss-core` | | `medioteq-os.vauco.no` | Planlagt | `medioteq-os-core` | --- ## Tråd-kontrakter | Tråd | Modell | Eid fil | Konnektor | |---|---|---|---| | OPS-Computer-Hub | Perplexity Computer | AGENT_RULEBOOK.md, LEARNINGS.md, CHANGELOG.md | GitHub web, search | | EXEC-Gemini-Workstation | Gemini 2.5 Pro | SYSTEM_STATE_AGENT_BOOT.md, TODO.md | shell, gcloud, git | | PLAN-Claude-Architect | Claude Sonnet/Opus | ARCHITECTURE.md (denne), ROADMAP.md | GitHub UI/API | | AUDIT-NMT-Critic | Nemotron | RISKREGISTER.md, PLANBOARD.md | read-only alle filer | Regel: En fil — én eier. Andre tråder foreslår via PR, eier merger. --- ## Dataflyt ``` OPS --[MD-patch PR]--> PLAN merger EXEC --[SYSTEM_STATE]--> alle leser PLAN --[arch-spec PR]--> EXEC implementerer AUDIT--[PLANBOARD]--> Chris prioriterer Filer flyter via: GitHub commits på OSVauco/main Aldri: direkte tråd-til-tråd ``` --- ## Klientmodell — Prosjektisolasjon **Prinsipp:** Hver klient med sensitiv/medisinsk data får eget GCP-prosjekt. | Lag | GCP-prosjekt | Rolle | |-----|-------------|-------| | OPAX/OSVauco | `propane-will-491900-m5` | Management plane — deploy, monitor, orchestrate | | Medioteq klinisk | `` | Data plane — kliniske data forblir her | - OPAX mottar **aldri** rå pasientdata - Data-residency: `europe-north1` for norske helsedata - Alle agentkall logges til BigQuery i klientprosjektet (input/output hash, ikke råinnhold) --- ## Avhengigheter - `OSVauco/main` er canonical branch for dette prosjektet - Cloud Run avhenger av `vauco-gemini-tui-bridge` og OPAX-MCP-tjenesten - Bridge avhenger av `bridge/`-kode + GCP service account `vauco-dev` - Token economy avhenger av `scripts/token_economy.py` (planlagt) - Pre-commit hook v2 avhenger av `.githooks/pre-commit` (planlagt) --- ## Åpne spørsmål (max 3) 1. **Langsiktig repo-struktur?** - A: Behold OSVauco + tjeneste-repoer (nåværende) - B: Slå sammen til monorepo - C: Splitt ytterligere per tjeneste 2. **Cloud Run min-instances=0 eller 1?** - A: 0 — kutter idle-kostnad (anbefalt H0) - B: 1 — ingen cold start latency 3. **IAM: vauco-dev service account scope?** - A: Minimal — kun Vertex AI + Firestore - B: Per-skill separate accounts --- EOF v1.1 — 2026-05-21 — OPS/PLAN (Phase 1: domain convention + MCP identity added)