# VAUCO OS — MASTERPLAN RESET **Versjon:** 2026-05-27 | **Eier:** Chris Christiansen | **Status:** Autoritativ --- ## 1. SITUASJONSANALYSE — Hvor er vi nå? Du har bygget mye bra, men jobbet utenfra inn i stedet for innenfra ut. Det har skapt: - **Dobbelt opp:** To CostGuard-implementasjoner, dupliserte MD-filer, overlappende repos - **Repo-kaos:** 9 repos for det som egentlig er 1 kjerne + 1 produkt - **Tapt tråd:** TUI-bridge → OPAX → Pages → CostGuard-landing — hvert sprang tok deg vekk fra planen - **Manglende kryssjekk:** MASTERPLAN, ROADMAP og HANDOFF er ikke synkroniserte **Det gode:** Alt ligger nå på `vauco-saas`. Grunnmuren (Cloud Run, RAG, Memory, OAuth) er solid. --- ## 2. SANNHETEN OM HVA DU HAR ### To separate ting — hold dem adskilt ``` Vauco AS ├── VAUCO OS (intern plattform — kun Chris) │ └── Formål: operere, bygge og selge fra │ └── THREADSTONE (eksternt SaaS-produkt — til kunder) └── Formål: selges til bedrifter ``` Og et tredje prosjekt under utvikling: ``` └── PROOF OF CURIOSITY (separat merkevare/prosjekt) └── Domener registrert, ikke lansert ennå ``` Disse skal ALDRI blandes i samme repo, samme deploy eller samme domenestruktur. --- ## 3. REGISTRERTE DOMENER ### Vauco (hos Proisp) | Domene | Prosjekt | Status | |--------|----------|--------| | `vauco.no` | Vauco OS / alle Vauco-tjenester | ✅ Aktiv, verifisert på GitHub | **Aktive subdomener under vauco.no:** | Subdomen | Teknologi | Status | |----------|-----------|--------| | `opax.vauco.no` | CNAME → Cloud Run | ✅ Live | | `oss.vauco.no` | Staging-miljø | ✅ Aktiv | | `os.vauco.no` | Prod-miljø | 🔮 Fase C | | `costguard.oss.vauco.no` | CNAME → Cloud Run | ⏳ CG3 | | `costguard.os.vauco.no` | Promoveres fra oss | 🔮 Fase C | | `threadstone.vauco.no` | GitHub Pages | ✅ Live | | `app.threadstone.vauco.no` | GitHub Pages | ✅ Live | | `kunde1.vauco.no` | LB + IAP via Terraform | 🔮 Fase C | ### Proof of Curiosity (hos Proisp) | Domene | Merknad | |--------|---------| | `proof-of-curiosity.com` | Registrert — ikke i bruk | | `proofofcuriosity.com` | Registrert — ikke i bruk | | `proofofcuriosity.io` | Registrert — ikke i bruk | | `proof-of-curiosity.no` | Registrert — ikke i bruk | | `proofofcuriosity.no` | Registrert — ikke i bruk | > **Notat:** Proof of Curiosity er et separat prosjekt/merkevare. Ingen repos eller infrastruktur er knyttet til disse domenene ennå. Prioriteres etter CG3 + første Vauco-kunde. --- ## 4. REPO-STRUKTUR — Fasit ### Behold (4 repos) | Repo | Formål | Synlighet | |------|--------|-----------| | `OSVauco` | Alt kjerne: Cloud Run, GCP-scripts, ml/, auth/, docs/ | Privat | | `vauco-bootstrap` | Terraform-modul for kunde-provisjonering | Privat | | `threadstone-landing` | threadstone.vauco.no landingsside | Public | | `vauco-saas.github.io` | app.threadstone.vauco.no (Threadstone-app) | Public | ### Arkiver (5 repos) — flytt innhold først | Repo | Innhold flyttes til | Deretter | |------|---------------------|----------| | `vauco-os` | `OSVauco/docs/architecture/` | Arkiver | | `vauco-gemini-tui-bridge` | `OSVauco/tui/` | Arkiver | | `command-hub` | `OSVauco/static/command-hub.html` | Arkiver | | `threadstone-instructions` | `OSVauco/docs/threadstone/` | Arkiver | | `deep-dream` | Rør ikke — arkiver direkte | Arkiver | --- ## 5. OSVauco — INTERN MAPPESTRUKTUR (fasit) ``` OSVauco/ ├── infrastructure/ # GCP-scripts (00-11) ├── scripts/ # smoke-test, utils ├── ml/ # billing_agent, anomaly_detector, feedback_loop ├── auth/ # OAuth2-flow ├── tui/ # ← vauco-gemini-tui-bridge flyttes hit ├── static/ # HTML-filer servert av Cloud Run │ ├── billing-dashboard.html │ ├── costguard.html ← CG3 (bygges her, ikke GitHub Pages) │ └── command-hub.html ← fra command-hub repo ├── docs/ │ ├── MASTERPLAN.md ← autoritativ (denne filen) │ ├── ROADMAP.md ← én roadmap, ikke to │ ├── HANDOFF.md ← alltid én fil, overskrives per sesjon │ ├── architecture/ ← fra vauco-os repo │ ├── threadstone/ ← fra threadstone-instructions repo │ └── [alle andre MD-filer] ├── .gemini/ # Gemini TUI konfig ├── .env.example ├── Dockerfile ├── main.py └── MASTERPLAN.md ← denne filen (rot-nivå) ``` --- ## 6. DOKUMENTHIERARKI — Én kilde til sannhet | Fil | Rolle | Oppdateres | |-----|-------|------------| | `MASTERPLAN.md` | Arkitektur, domener, agent-identitet, infrastruktur — **aldri slett** | Ved arkitekturendringer | | `docs/ROADMAP.md` | Fasestatus, neste steg, backlog — **levende dokument** | Hver sesjon | | `docs/HANDOFF.md` | Alltid kun én fil — hva ble gjort, hva er neste, kjente hull | Overskrives hver sesjon | **Regel:** Arkitektur → MASTERPLAN. Oppgave → ROADMAP. Sesjonsstatus → HANDOFF. Aldri dobbelt opp. --- ## 7. ROADMAP — Prioritert rekkefølge ### 🔴 UMIDDELBART — Rydding (gjør én gang) | # | Oppgave | Tid | |---|---------|-----| | R1 | Flytt `vauco-os` → `OSVauco/docs/architecture/` | 30 min | | R2 | Flytt `vauco-gemini-tui-bridge` → `OSVauco/tui/` | 20 min | | R3 | Flytt `command-hub` → `OSVauco/static/command-hub.html` | 10 min | | R4 | Arkiver de 5 reposene på GitHub | 10 min | | R5 | Slett duplikat-MD-filer i `docs/` | 15 min | | R6 | Synkroniser ROADMAP til faktisk repo-state | 30 min | ### 🟡 NESTE — CG3 (CostGuard landingsside) | # | Oppgave | |---|---------| | CG3a | Bygg `static/costguard.html` i OSVauco (OAuth-knapp + billing embed) | | CG3b | Sett CNAME `costguard.oss.vauco.no` → Cloud Run i Proisp | | CG3c | Verifiser at `/static/costguard.html` er tilgjengelig via Cloud Run | | CG3d | Test OAuth-flow fra landingssiden | ### 🟢 GO-TO-MARKET — CostGuard | Fase | Innhold | |------|---------| | C4 | Medioteq HITL-møte → `terraform apply` → første betalende kunde | | C5 | Salgsdemo: costguard.os.vauco.no + demo-video | | DX5 | Dialogflow Messenger live på costguard-landingssiden | | ML-2 | Adaptiv intelligens (trigger: >500 telemetri-kall) | ### 🔵 FREMTID — Proof of Curiosity | # | Oppgave | |---|---------| | POC-1 | Definer hva Proof of Curiosity er (produkt, merkevare, community?) | | POC-2 | Velg primærdomene (anbefaling: `proofofcuriosity.io`) | | POC-3 | Opprett repo under `vauco-saas` eller separat org | | POC-4 | Bygg landing/MVP | > **Trigger:** Ikke start POC før CG3 er live og første Vauco-kunde er onboardet. --- ## 8. AGENT-IDENTITET | Identitet | E-post | Rolle | |-----------|--------|-------| | Eier / admin | `chris.christiansen@vauco.no` | Full kontroll | | Agent (OPAX / Jason) | `jason.vauger@vauco.no` | `billing.viewer` — hente og rapportere kostnadsdata | | Fremtidig gruppe | `billing@vauco.no` | `billing.viewer` (Fase C) | --- ## 9. CLOUD RUN — LIVE ENDEPUNKTER **Service:** `osvauco-agent` | **Region:** `europe-west1` **URL:** `https://osvauco-agent-357036551735.europe-west1.run.app` | Endepunkt | Status | |-----------|--------| | `GET /health` | ✅ | | `POST /run` | ✅ | | `POST /run/dag` | ✅ | | `GET /billing/summary` | ✅ | | `GET /billing/forecast` | ✅ | | `GET /billing/anomalies` | ✅ | | `GET /auth/login` | ✅ | | `GET /auth/callback` | ✅ | | `GET /static/billing-dashboard.html` | ✅ | | `GET /state` | ✅ | | `GET /telemetry/history` | ✅ | --- ## 10. TUI-BRIDGE — Status Planen var lokal TUI for å kode fra hvor som helst. Det som skjedde: OPAX + Cloud Shell + Gemini TUI løste behovet. **Konklusjon:** Koden bevares i `OSVauco/tui/`. Reaktiveres etter CG3 + første kunde hvis behovet melder seg igjen. --- ## 11. GO-TO-MARKET — Enkel og konkret **Produkt #1: CostGuard** - **Hvem:** Norske bedrifter med GCP-kostnader de ikke kontrollerer - **Hva:** Autonomt kostnadsovervåkningsverktøy med AI-anomali-deteksjon - **Pris:** $300-500/mnd per kunde (breakeven ved 1 kunde) - **Salgskanal:** Chris selv via OPAX → HITL-møte → `terraform apply` **Ikke selg Vauco OS. Ikke selg OPAX. De er interne verktøy.** --- ## 12. KJENTE HULL | ID | Problem | Løsning | Prioritet | |----|---------|---------|-----------| | OQ-15 | BQ billing_export tabell | Venter på aktivering — sjekk neste sesjon | Medium | | OQ-16 | Duplikat CostGuard-implementasjoner | Slett gammel, behold `ml/billing_agent.py` | Høy | | OQ-17 | `github-token` secret mangler | Opprett alias fra `github-pat` | Medium | | OQ-18 | VM alltid-på kostnad | Kjør `03-teardown.sh` hver kveld | Høy | | OQ-19 | MASTERPLAN/ROADMAP ikke synkronisert | Gjøres som del av R6 | Høy | --- ## 13. OPAX — FREMTIDIG VISJON (parkert, prioriteres etter CG3) > Notert 2026-05-28. Ikke bygg dette nå — fokus er CG3 + UI/UX-opprydding. ### Hva OPAX skal bli OPAX (`opax.vauco.no`) er Chris sin **mobile salgssentral**. Ikke en terminal, ikke et dashboard — en stille, tekstbasert assistent han kan snakke MED via AirPods mens han er i møte med en potensiell kunde. ### Flyt: tale → modul → provisjonering ``` Chris snakker (AirPods, Web Speech API / Whisper) ↓ OPAX transkriberer tale — aldri lyd ut, kun tekst inn ↓ Jason analyserer: "hvem er kunden, hva trenger de" ↓ Genererer ferdig kundeskreddersydd modul (HTML + config) ↓ Chris reviewer på skjerm — sier "kjør" eller "send" ↓ OPAX sender mail fra vauco.no med magic link ↓ Kunde logger inn med godkjent e-postadresse (ingen passord) ``` ### Prinsipper - **OPAX snakker aldri** — kun tekst på skjerm, ingen TTS - **Voice er kun inn** — Web Speech API (gratis, Chrome/Safari) eller Whisper - **Silent assistant** — OPAX er stille, rask, mørk, monospace - **Provisjonering on-the-go** — modul lages mens Chris er i møtet, sendes direkte - **Auth** — magic link til kundens mail, eller forhåndsgodkjent e-postadresse ### Teknisk stack (når det bygges) | Komponent | Teknologi | |-----------|-----------| | Voice-input | Web Speech API (fase 1) → Whisper API (fase 2) | | Module generator | Gemini 2.5 Pro + customer-template | | Auth/provisjonering | Magic link via SendGrid/Resend fra `vauco.no` | | UI | Mørk, monospace, minimalistisk — lever i `static/opax.html` | | Backend | Nytt endepunkt `POST /opax/generate` i `main.py` | ### Hva som IKKE skal inn i OPAX - Ingen TTS / robot-stemme - Ikke erstatte command-hub.html direkte — de har ulike roller - Ikke blande med Threadstone-customer-template logikk ### Når starter vi? **Trigger:** CG3 er live OG `static/` UI/UX-opprydding er gjort. Første steg da: bygg `static/opax-v2.html` med tale-input + chat-display. --- *OSVauco | propane-will-491900-m5 | europe-west1 | Autoritativ fra 2026-05-27*