OSVauco/MASTERPLAN.md

251 lines
8.8 KiB
Markdown

# 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 |
---
*OSVauco | propane-will-491900-m5 | europe-west1 | Autoritativ fra 2026-05-27*