OSVauco/docs/MASTERPLAN.md

417 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# VAUCO OS — MASTERPLAN
**Eier:** Chris Christiansen · Vauco AS · Org.nr 935 989 779
**Sist oppdatert:** 2026-06-12
**Status:** 🟢 AUTORITATIV — én kilde til sannhet for hele Vauco-økosystemet
> **Regel #1:** Denne filen er sannheten. Hvis en annen fil sier noe annet — denne vinner.
> **Regel #2:** Endringer her krever eksplisitt `PLAN APPROVED` fra Chris.
> **Regel #3:** Roadmap → seksjon 7. Sesjonsstatus → `docs/HANDOFF.md`. Ingen andre handoff-filer.
---
## Lessons Learned
- Cloud Build smoke-tests require: hardcoded canonical BASE_URL, bare identity token (no --audiences), and explicit run.invoker IAM binding for the Cloud Build service account on every service.
- **2026-06-10 — Absolutte filstier i Python:** Bruk alltid `Path(__file__).parent / "..."` for å referere til statiske filer og konfigurasjon i FastAPI/Cloud Run. Aldri relativ sti som `"static/file.html"` — dette bryter når WORKDIR avviker fra repo-rot (f.eks. i Docker). Regelen gjelder alle fremtidige tjenester og klientleveranser.
- **2026-06-10 — Dockerfile COPY static/:** `static/`-mappen må eksplisitt kopieres inn i Docker-imaget via `COPY static/ ./static/`. Den kopieres ikke automatisk selv om build-konteksten er repo-roten.
- **2026-06-10 — app.py mangler GET /:** FastAPI returnerer `{"detail":"Not Found"}` for alle ruter som ikke er definert — inkludert rot (`/`). Sørg alltid for at rot-ruten er eksplisitt definert og peker på riktig HTML-fil via absolutt sti.
## 1. Plattformhierarki — sannheten i én modell
```
Vauco AS (selskap, eier alle merkevarer)
├── vauco.no (APEX — bedriftens salgs- og portalside; ansiktet utad)
│ └── ruter besøkende videre til riktig modul
└── VAUCO OS (plattform — visjon, økonomi, token-lag, agent-fabrikk)
└── OPAX (engine — Cloud Run, RAG, agentic arkitektur, IAP)
├── Modul #1 · CostGuard (live på costguard.oss.vauco.no)
├── Modul #2 · Threadstone (landingsside live, app i bygg)
└── Modul #3 · [navngis senere]
Separat merkevare under Vauco AS (parkert til etter Modul #1 + #2 lever):
└── Proof of Curiosity (egen identitet, ikke en OPAX-modul)
```
**Fire nivåer, fire formål:**
| Nivå | Hva | Hvem ser det |
|---|---|---|
| **vauco.no (apex)** | **Bedriftens salgsportal — viser hvem Vauco AS er og hvilke moduler vi selger** | **Alle: kunder, partnere, presse, kandidater** |
| Vauco OS | Plattformen Chris bygger og selger fra | Internt (Chris + agenter) |
| OPAX | Engine som driver modulene | Internt + utviklere |
| Modul (CostGuard / Threadstone / …) | Det kundene faktisk kjøper | Kunder |
**Salgskanal-prinsipp:**
- `vauco.no` = portalen som forteller "hva selger vi" og leder til riktig modul
- Hver modul har sin egen landings-/produktside
- Vauco OS og OPAX nevnes ikke som produkter på `vauco.no` — de er interne verktøy
**Ikke selg Vauco OS. Ikke selg OPAX. De er interne verktøy.**
---
## 2. Registrerte domener — fasit
### Vauco (hos Proisp)
| Domene | Prosjekt | Status |
|--------|----------|--------|
| `vauco.no` | Rot for alle Vauco-tjenester | ✅ Aktiv, live på GCS+LB |
**Aktive subdomener:**
| Domene/subdomen | Teknologi | Status | Eier-flate |
|----------|-----------|--------|------------|
| `vauco.no` (apex) | GCS + GCP Load Balancer + Cloud CDN | ✅ LIVE · 2026-06-05 | Vauco AS apex |
| `www.vauco.no` | Følger apex | ✅ LIVE | Vauco AS apex |
| `opax.vauco.no` | LB + IAP → Cloud Run `osvauco-agent` | ✅ Live (IP 34.98.77.173) | OPAX |
| `oss.vauco.no` | Staging-miljø | ✅ Aktiv | OPAX |
| `os.vauco.no` | Prod-miljø | 🔮 Fase C | OPAX |
| `costguard.oss.vauco.no` | Cloud Run via IAP | ✅ Live | CostGuard |
| `costguard.os.vauco.no` | Promoteres fra oss | 🔮 Fase C | CostGuard |
| `threadstone.vauco.no` | GitHub Pages (`threadstone-landing`) | ✅ Live | Threadstone |
| `app.threadstone.vauco.no` | GitHub Pages (`vauco-saas.github.io`) | ⚠️ CNAME satt, side mangler | Threadstone |
| `<kunde>.vauco.no` | LB + IAP via Terraform | 🔮 Fase C2 | OPAX/Multi-tenant |
**Reservert til senere:**
| Subdomen | Tiltenkt formål | Trigger |
|----------|------------------|---------|
| `status.vauco.no` | Statuspage | Etter første kunde |
| `docs.vauco.no` | Offentlig kundedok | CG4 / første kunde |
| `careers.vauco.no` | Stillinger | Når Vauco rekrutterer |
**Email-infra:**
- MX: Google Workspace ✅
- SPF/DKIM/DMARC: ✅ Live 2026-06-10
### Proof of Curiosity (hos Proisp) — egen merkevare
| 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 |
> **Trigger:** Ingen POC-arbeid før Modul #1 + #2 lever.
---
## 3. Repo-struktur — fasit
### Aktive repos (5)
| Repo | Formål | Synlighet | Eier-flate |
|------|--------|-----------|------------|
| `OSVauco` | Mono-repo: OPAX-engine, infra, Terraform, all dokumentasjon | Privat | OPAX (rot) |
| `vauco-bootstrap` | Terraform-modul for kunde-provisjonering | Privat | OPAX |
| `vauco-site` | `vauco.no` salgsportal | Public | Vauco AS apex |
| `threadstone-landing` | `threadstone.vauco.no` landingsside | Public | Threadstone |
| `vauco-saas.github.io` | `app.threadstone.vauco.no` Threadstone-app frontend | Public | Threadstone |
### Arkiverte repos
| Repo | Arkivert | Innholdet finnes nå i |
|------|----------|------------------------|
| `vauco-os` | ✅ 2026-05-27 | `OSVauco/docs/architecture/` |
| `vauco-gemini-tui-bridge` | ✅ 2026-05-27 | Arkiv — reaktiveres som del av OX1b |
| `command-hub` | ✅ 2026-05-27 | `OSVauco/static/command-hub.html` |
> **Regel:** Nytt repo krever eksplisitt `REPO APPROVED` fra Chris.
---
## 4. OSVauco — intern mappestruktur (fasit)
```
OSVauco/
├── MASTERPLAN.md
├── README.md
├── AGENTS.md
├── Dockerfile / cloudbuild.yaml
├── agents/
│ ├── core-logic/ OPAX orchestrator + FastAPI app
│ │ ├── agent.py
│ │ ├── app.py
│ │ └── token_logger.py
│ ├── mcp_server/
│ ├── rag/
│ ├── memory/
│ ├── multi_agent/
│ ├── eval/
│ ├── tests/
│ └── tools/
├── auth/
├── ml/
├── infrastructure/
├── scripts/
├── static/
│ ├── opax.html
│ ├── jason.html
│ ├── billing-dashboard.html
│ ├── command-hub.html
│ └── admin.html
├── docs/
│ ├── MASTERPLAN.md
│ ├── ROADMAP.md
│ ├── HANDOFF.md
│ ├── AGENT_RULEBOOK.md
│ ├── gemma/
│ │ ├── world.md
│ │ └── README.md
│ └── [øvrige tema-docs]
├── protocols/sessions/
└── data/
```
---
## 4b. vauco.no — salgsportal (Vauco AS apex)
> Eget repo: `vauco-saas/vauco-site` — LIVE 2026-06-05 på GCS+LB.
### Versjons-evolusjon
| Versjon | Inneholder | Trigger |
|---------|------------|---------|
| V1 (MVP) ✅ | Hero + modul-grid + om-oss + kontakt + personvern | LIVE 2026-06-05 |
| V2 | Sales-CTA + CostGuard ROI-kalkulator | Etter første betalende kunde |
| V3 | Blogg, kundereferanser, status-widget | Når 3+ kunder |
| V4 | Internasjonalt (`vauco.no/en`), Proof of Curiosity i footer | Etter Modul #3 |
---
## 5. Dokumenthierarki — én kilde til sannhet
| Fil | Rolle | Oppdateres |
|-----|-------|------------|
| `docs/MASTERPLAN.md` | Arkitektur, domener, repos, agent-identitet | Ved arkitekturendringer |
| `docs/ROADMAP.md` | Faser, status, backlog | Hver sesjon |
| `docs/HANDOFF.md` | Hva ble gjort, hva er neste | Overskrives hver sesjon |
| `docs/AGENT_RULEBOOK.md` | Locked definitions for agent-boot | Ved infrastruktur-låsing |
| `docs/gemma/world.md` | Emmas verden — kontekstpakke for lokal Gemma-modell | Bygges simultant med alt annet |
| `protocols/sessions/YYYY-MM-DD_<tema>.md` | Detaljerte protokoller | Append-only |
---
## 6. AI-modell — tofase-strategi
### Fase 1 — Nå (Vertex AI, løper ut kreditter)
| Parameter | Verdi | Merknad |
|-----------|-------|---------|
| **Intern modell (Emma/Chris)** | `gemini-2.5-pro` / `gemini-2.5-flash` | Via Vertex AI, tærer på kreditter |
| **Stand-in operatør** | Perplexity (Sonnet 4.6) via GitHub MCP | Erstatter Emma til Gemma-VM er oppe |
| **Kundemodell (Jason)** | `gemini-2.5-flash` | Via Vertex AI — kunder betaler indirekte |
| **Endpoint** | `us-central1` | Vertex-kreditter |
| **SDK** | `google-adk` + `google-genai` | |
| **Status Claude** | ⏳ Venter på EU-kvote | Bytt når kvote innvilget |
### Fase 2 — Gemma-migrering
| Parameter | Verdi | Merknad |
|-----------|-------|---------|
| **Emma (intern)** | `gemma-4-12b-it` int4 | GCP `g2-standard-4` Spot VM (~$120150/mnd) |
| **Serving** | Ollama (utvikling) → vLLM (produksjon) | |
| **Jason (kunder)** | `gemini-2.5-flash` via Vertex | Uendret |
| **Kontekst** | `docs/gemma/world.md` lastet som system-prompt | |
---
## 7. Roadmap — kortversjon
> Full status i `docs/ROADMAP.md`.
### 🔴 NOW
- [x] CG4b — Token dashboard breakdown per modul ✅
- [x] OX1c — Jason fullskjerm-chat LIVE ✅
- [x] CI5+CI6 — OPAX-MCP live ✅
- [ ] CG4d — Kundeprisingskalkulator (GCP-spend-basert)
- [ ] CG5a — Delivery layer: webhook-kanal onboarding
- [ ] CG5b — E-postvarsler (SendGrid)
- [ ] CG5c — SMS-varsler (Twilio) [Guard+]
### 🟠 NEXT
- CG6 — Klient-dashboard
- CI1 — OPAX-MCP full CI/CD-kanal
- ML-3a — GPU-VM for Emma
- C4 — Medioteq partnerstrategimøte
### 🟡 LATER
- ML-3c — Hybrid agent
- T1T4 — Threadstone
- Fase C — Multi-tenant
---
## 8. Agent-identitet
| Identitet | E-post | Modell | Rolle | Status |
|-----------|--------|--------|-------|--------|
| Eier / admin | `chris.christiansen@vauco.no` | — | Full kontroll | ✅ Aktiv |
| Jason Vauger | `jason.vauger@vauco.no` | `gemini-2.5-flash` via Vertex | Kundevendt agent | ✅ Live |
| Emma Vauger | `emma.vauger@vauco.no` | `gemma-4-12b-it` (lokal GPU-VM) | Intern agent for Chris | 🔮 ML-3a |
| Fremtidig gruppe | `billing@vauco.no` | — | `billing.viewer` (Fase C) | 🔮 Fase C |
**Forbudte kontoer:** `tinius.vauger`, `ccv` — aldri gi tilganger.
---
## 9. Cloud Run — live endepunkter
**Service:** `osvauco-agent` | **Region:** `us-central1` | **Project:** `propane-will-491900-m5`
**Public URL:** `https://opax.vauco.no`
**Jason UI:** `https://opax.vauco.no/static/jason.html`
**OPAX UI:** `https://opax.vauco.no/`
| Endepunkt | Status |
|-----------|--------|
| `GET /` | ✅ opax.html |
| `GET /health` | ✅ |
| `POST /run` | ✅ |
| `GET /static/jason.html` | ✅ |
| `GET /billing/tokens/by-module` | ✅ |
| `GET /billing/tokens/estimate` | ✅ |
| `GET /billing/summary` | ✅ |
| `GET /billing/anomalies` | ✅ |
| `GET /billing/history` | ✅ |
| `GET /billing/budget` | ✅ |
| `POST /billing/budget` | ✅ |
| `POST /notify/webhook` | 🔴 CG5a |
| `POST /notify/email` | 🔴 CG5b |
| `POST /notify/sms` | 🔴 CG5c |
---
## 10. Go-to-market
### CostGuard — prismodell v2 (godkjent 2026-06-12)
> **Prinsipp:** "Meet them where they are" — CostGuard push-first. Jason finner kunden, ikke omvendt.
#### Tier-oversikt
| Tier | GCP-spend/mnd | Pris | Kjerneløfte |
|------|--------------|------|-------------|
| **Starter** | $0 $3k | **$499/mnd** | Synlighet — du vet hva du bruker |
| **Guard** | $3k $15k | **$999/mnd** | Kontroll — du stopper sløsing før det skjer |
| **Shield** | $15k $50k | **$1.999/mnd** | Automatisering — Jason handler, ikke bare varsler |
| **Enterprise** | > $50k | **$3.500+/mnd** | Platform — Vauco er din interne FinOps-funksjon |
#### Hva er inkludert per tier
**Starter — $499/mnd**
- CostGuard dashboard (read-only)
- Daglig kostnadsoversikt per GCP-tjeneste
- Anomali-varsler → e-post (månedlig rapport)
- 1 bruker-login
- Webhook til én kanal (Slack/Teams/Chat/etc.)
**Guard — $999/mnd**
- Alt i Starter, pluss:
- Budsjett-enforcement (Jason setter og overvåker grenser)
- AI-anbefalinger: årsak + handling per anomali
- Sanntids spike-varsler
- E-post ukentlig digest
- SMS-varsler ved kritiske spikes (Twilio)
- Interaktiv Jason i valgt chat-kanal
- 3 bruker-logins
- Slack + Teams + Google Chat støtte
**Shield — $1.999/mnd**
- Alt i Guard, pluss:
- Automatisk remediation (Jason stopper overforbruk)
- Multi-GCP-prosjekt (opp til 5)
- CUD-anbefalinger (Committed Use Discounts)
- FinOps-rapport til CFO/styret
- Tagging-enforcement
- 10 bruker-logins
- Dedikert onboarding med Chris
- SLA: respons innen 4 timer
**Enterprise — $3.500+/mnd**
- Alt i Shield, pluss:
- Ubegrenset GCP-prosjekter + multi-org
- Jason som dedikert FinOps-agent (tilpasset kundens stack)
- Terraform cost gates (blokkerer deploys over budsjett)
- CI/CD cost gates
- Custom rapportering + BI-eksport
- BankID / SSO
- Dedikert subdomain: `costguard.<kunde>.no`
- SLA: 99.9% uptime, respons innen 1 time
- Kvartalsvis strategimøte med Chris
#### Push-first arkitektur — Delivery layer
```
GCP-event → Jason analyserer → Delivery layer → Kanal
├── Webhook (Slack/Teams/Chat/Discord/etc.) [CG5a]
├── E-post (SendGrid) [CG5b]
├── SMS (Twilio) [Guard+] [CG5c]
└── In-app (CG6 dashboard)
```
Kunden setter opp sin foretrukne kanal ved onboarding — Jason finner dem der.
#### Markedsposisjon
| Konkurrent | Pris | Svakhet | CostGuard vinner på |
|-----------|------|---------|--------------------|
| Kubecost Business | $199/mnd | Kun K8s, ingen AI | GCP-native + Jason AI |
| Apptio Cloudability | $1.930/mnd | Komplekst, enterprise-only | Enklere, raskere, billigere |
| CloudHealth | $5.400+/mnd | Overkill for SMB | Pris + push-first UX |
**Salgspitch:** *"Du trenger ikke lære et nytt verktøy. Jason finner deg."*
### Produkt #2: Threadstone (Q3 2026)
Definisjon låses når Modul #1 har første kunde.
### Medioteq — Joint Venture (ikke en vanlig kunde)
> Medioteq er et partnersamarbeid. **Ikke** standard SaaS-kundeforhold. C4 er partnerstrategimøte.
---
## 11. Kjente hull
| ID | Problem | Løsning | Prioritet |
|----|---------|---------|-----------|
| OQ-15 | BQ billing_export tabell | Venter på aktivering | Medium |
| 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-21 | `app.threadstone.vauco.no` CNAME uten side | Bygg T2 eller fjern CNAME | Lav |
| OQ-22 | Claude EU-kvote | Vent på Google Cloud-team | Medium |
| OQ-26 | Ingen statuspage | Etter første kunde | Lav |
---
## 12. OPAX — fremtidig visjon
**Ferdig:**
- ✅ opax.html LIVE via `GET /`
- ✅ Jason-chat LIVE
- ✅ Billing dashboard + Chart.js donut (CG4b)
- ✅ Cloud Build live-widget
- ✅ Token Intelligence endepunkter
- ✅ CI5+CI6 — OPAX-MCP live
**Gjenstår:**
- CG4d — Prisingskalkulator
- CG5a/b/c — Delivery layer
- CG6 — Klient-dashboard
- OX2 — Command Hub
- CI1 — OPAX-MCP full CI/CD
---
## 13. TUI-bridge — reaktivert som OX1b ✅
---
*OSVauco | propane-will-491900-m5 | us-central1 | Autoritativ fra 2026-05-31 | Oppdatert 2026-06-12*