reset: autoritativ MASTERPLAN med domeneoversikt, repo-struktur og roadmap

This commit is contained in:
chrischristiansen-glitch 2026-05-27 23:05:43 +02:00
parent 8c844894da
commit 811c73a956

View File

@ -1,281 +1,250 @@
# VAUCO MASTERPLAN — Chris Christiansen # VAUCO OS — MASTERPLAN RESET
**Versjon:** 2026-05-27 | **Eier:** Chris Christiansen | **Status:** Autoritativ
**Sist oppdatert: 2026-05-27 20:30 CEST**
**Status: ✅ FASE A | ✅ FASE B | ✅ ML-1 | ✅ CG1+CG2 live | ✅ OAuth live | CG3 neste**
> **Les dette først:** Autoritativ arkitektur er `vauco-os/VAUCO_OS_DOMAIN_ARCHITECTURE.md`.
> Ikke overstyr beslutninger som allerede er dokumentert der.
--- ---
## ARKITEKTUR-HIERARKI (autoritetivt) ## 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 (935 989 779) Vauco AS
├── Vauco OS ← internt operativsystem (kun Chris) ├── VAUCO OS (intern plattform — kun Chris)
│ ├── os.vauco.no ← LIVE PROD │ └── Formål: operere, bygge og selge fra
│ ├── oss.vauco.no ← STAGING (nåværende arbeidsområde)
│ ├── Jason (autonom agent)
│ ├── Vauco OS Hub (orchestrator)
│ └── Cloud Console ← salgsmoduler bygges herfra
│ └── CostGuard ← modul #1 (use case + første salgbar modul)
│ costguard.oss.vauco.no ← nåværende
│ costguard.os.vauco.no ← når live
└── Threadstone ← separat SaaS-produkt til kunder └── THREADSTONE (eksternt SaaS-produkt — til kunder)
threadstone.vauco.no └── Formål: selges til bedrifter
app.threadstone.vauco.no
``` ```
**CostGuard er et use case som beviste OPAX-arkitekturen.** Og et tredje prosjekt under utvikling:
Det bygges simultant med OPAX som modul #1 i Cloud Console.
Medioteq og fremtidige kunder onboardes av deg selv via OPAX innenfra — ikke her. ```
└── PROOF OF CURIOSITY (separat merkevare/prosjekt)
└── Domener registrert, ikke lansert ennå
```
Disse skal ALDRI blandes i samme repo, samme deploy eller samme domenestruktur.
--- ---
## REPO-OVERSIKT ## 3. REGISTRERTE DOMENER
| Repo | Hva det er | ### Vauco (hos Proisp)
|---|---|
| `OSVauco` | Kjerne: Cloud Run agent, GCP-scripts, ml/, auth/ | | Domene | Prosjekt | Status |
| `vauco-gemini-tui-bridge` | TUI-cockpit (langt arbeid → bruk Gemini TUI) | |--------|----------|--------|
| `vauco-os` | Arkitektur og kundedok (authoritative) | | `vauco.no` | Vauco OS / alle Vauco-tjenester | ✅ Aktiv, verifisert på GitHub |
| `vauco-bootstrap` | Terraform-modul for kunde-provisjonering |
| `deep-dream` | Strategisk visjon — aldri deploy herfra | **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.
--- ---
## AGENT-IDENTITET ## 4. REPO-STRUKTUR — Fasit
| Identitet | E-post | Rolle | Formål | ### Behold (4 repos)
|---|---|---|---|
| Eier / admin | `chris.christiansen@vauco.no` | `billing.admin` + `billing.viewer` | Full kontroll |
| Agent (OPAX) | `jason.vauger@vauco.no` | `billing.viewer` | Hente og rapportere kostnadsdata autonomt |
| Fremtidig gruppe | `billing@vauco.no` | `billing.viewer` (Fase C) | Delt innboks for team og kunder |
**Agent-kapabiliteter med `billing.viewer`:** | Repo | Formål | Synlighet |
- Svare på «Hva koster dette prosjektet denne måneden?» |------|--------|-----------|
- Sende ukentlig kostnadsrapport til chat-appen | `OSVauco` | Alt kjerne: Cloud Run, GCP-scripts, ml/, auth/, docs/ | Privat |
- Reagere på Pub/Sub budget-alerts (via `10-cost-guard.sh`) | `vauco-bootstrap` | Terraform-modul for kunde-provisjonering | Privat |
- **Ikke:** endre IAM, budsjetter eller koble prosjekter | `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 |
--- ---
## DNS / DOMENE-ARKITEKTUR ## 5. OSVauco — INTERN MAPPESTRUKTUR (fasit)
> **Arkitekturavgjørelse — 2026-05-26** ```
OSVauco/
| Domene | Type | Teknologi | Fase | ├── infrastructure/ # GCP-scripts (00-11)
|---|---|---|---| ├── scripts/ # smoke-test, utils
| `opax.vauco.no` | Intern cockpit (kun Chris) | CNAME → Cloud Run (gratis) | B1 nå | ├── ml/ # billing_agent, anomaly_detector, feedback_loop
| `costguard.oss.vauco.no` | Standalone app | CNAME → osvauco-agent-357036551735.europe-west1.run.app | CG3 | ├── auth/ # OAuth2-flow
| `kunde1.vauco.no` / kundedomener | Kunde-instanser | LB + IAP (Terraform) | Fase C | ├── tui/ # ← vauco-gemini-tui-bridge flyttes hit
├── static/ # HTML-filer servert av Cloud Run
**Begrunnelse:** │ ├── billing-dashboard.html
- `opax.vauco.no` er et internt arbeidsverktøy for én bruker — Load Balancer ($18-20/mnd) er unødvendig overhead. │ ├── costguard.html ← CG3 (bygges her, ikke GitHub Pages)
- Kundeinstanser provisjoneres via `vauco-bootstrap` Terraform-modul i Fase C. LB + IAP bakes inn i modulen én gang og kjøres automatisk per kunde med `terraform apply -var="customer_id=X"`. │ └── command-hub.html ← fra command-hub repo
- Terraform-modulen (Fase C) skal inkludere: Cloud Run, Cloud Build, IAP, LB, budsjett, SA, Dialogflow CX, ML state store. ├── docs/
│ ├── MASTERPLAN.md ← autoritativ (denne filen)
--- │ ├── ROADMAP.md ← én roadmap, ikke to
│ ├── HANDOFF.md ← alltid én fil, overskrives per sesjon
## CLOUD SHELL QUICK-START (kopi-klipp) │ ├── architecture/ ← fra vauco-os repo
│ ├── threadstone/ ← fra threadstone-instructions repo
> Bruk Cloud Shell: https://shell.cloud.google.com │ └── [alle andre MD-filer]
├── .gemini/ # Gemini TUI konfig
```bash ├── .env.example
# Steg 1: Klon og sett opp miljø ├── Dockerfile
gcloud config set project propane-will-491900-m5 ├── main.py
git clone https://github.com/vauco-saas/OSVauco.git ~/OSVauco └── MASTERPLAN.md ← denne filen (rot-nivå)
cd ~/OSVauco
# Steg 2: Kopier og rediger .env
cp .env.example .env
nano .env
# Fyll ut: BILLING_ACCOUNT_ID, ALERT_EMAIL, GITHUB_APP_INSTALLATION_ID
# Steg 3: Installer Python-avhengigheter
pip install google-adk google-cloud-aiplatform>=1.111.0 --quiet
# Steg 4: Kjør i rekkefølge
source .env
bash infrastructure/00-authcheck.sh
bash infrastructure/01-setupenv.sh
bash infrastructure/07-rag-setup.sh
# *** Kopier RAG_CORPUS_NAME fra output inn i .env ***
nano .env && source .env
bash infrastructure/08-memorybank-setup.sh
# *** Kopier MEMORY_ENGINE_NAME fra output inn i .env ***
nano .env && source .env
gcloud run deploy osvauco-agent
--source . --region europe-west1
--project propane-will-491900-m5
--set-secrets RAG_CORPUS=rag-corpus-name:latest
--set-env-vars GOOGLE_GENAI_USE_VERTEXAI=1,GOOGLE_CLOUD_PROJECT=propane-will-491900-m5,GOOGLE_CLOUD_LOCATION=global,MEMORY_ENGINE_NAME=$MEMORY_ENGINE_NAME
--no-allow-unauthenticated
bash infrastructure/04-observability-setup.sh
bash infrastructure/11-billing-iam-hardening.sh
bash scripts/smoke-test.sh
# Om kvelden (OBLIGATORISK):
bash infrastructure/03-teardown.sh
``` ```
--- ---
## CLOUD RUN — LIVE ENDEPUNKTER ## 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` **Service:** `osvauco-agent` | **Region:** `europe-west1`
**URL:** `https://osvauco-agent-357036551735.europe-west1.run.app` **URL:** `https://osvauco-agent-357036551735.europe-west1.run.app`
**Siste revisjon:** `osvauco-agent-00064-p9h`
| Endepunkt | Status | Beskrivelse | | Endepunkt | Status |
|---|---|---| |-----------|--------|
| `GET /health` | ✅ | Health check | | `GET /health` | ✅ |
| `POST /run` | ✅ | Agent (light/heavy) | | `POST /run` | ✅ |
| `POST /run/dag` | ✅ | Parallell DAG | | `POST /run/dag` | ✅ |
| `GET /billing/summary` | ✅ | Kostnad per tjeneste siste 30d | | `GET /billing/summary` | ✅ |
| `GET /billing/forecast` | ✅ | Prognose 7d snitt | | `GET /billing/forecast` | ✅ |
| `GET /billing/anomalies` | ✅ | Anomali-deteksjon + Pub/Sub | | `GET /billing/anomalies` | ✅ |
| `GET /auth/login?client_id=X` | ✅ | Start OAuth2-flow | | `GET /auth/login` | ✅ |
| `GET /auth/callback` | ✅ | Google redirect → token | | `GET /auth/callback` | ✅ |
| `GET /static/billing-dashboard.html` | ✅ | Billing dashboard UI | | `GET /static/billing-dashboard.html` | ✅ |
| `GET /state` | ✅ | Agent state | | `GET /state` | ✅ |
| `GET /telemetry/history` | ✅ | Telemetri | | `GET /telemetry/history` | ✅ |
**OAuth (Vauco OS Web App):**
- Client ID: `357036551735-ka7t2fv9ue2jp01bs826hpdctlvispuo.apps.googleusercontent.com`
- Redirect URI: `https://osvauco-agent-357036551735.europe-west1.run.app/auth/callback`
- Secrets: `OAUTH_CLIENT_ID`, `OAUTH_CLIENT_SECRET` (Secret Manager)
**BigQuery:** `propane-will-491900-m5:billing_export` — tabell ventes innen 24t fra 2026-05-27
--- ---
## FASE CG — CostGuard (OPAX modul #1) ← AKTIV ## 10. TUI-BRIDGE — Status
``` Planen var lokal TUI for å kode fra hvor som helst.
[x] CG1 — ml/billing_agent.py: /billing/summary, /forecast Det som skjedde: OPAX + Cloud Shell + Gemini TUI løste behovet.
[x] CG2 — ml/anomaly_detector.py: anomali → Pub/Sub
[x] AUTH — OAuth2 flow live
[ ] CG3 — costguard.oss.vauco.no landingsside **Konklusjon:** Koden bevares i `OSVauco/tui/`. Reaktiveres etter CG3 + første kunde hvis behovet melder seg igjen.
static/costguard.html i OSVauco-repo
"Koble til GCP" → /auth/login
Billing dashboard embed
CNAME costguard.oss.vauco.no → Cloud Run
(promoveres til costguard.os.vauco.no når klar)
[ ] CG4 — Første ekstern kunde via vauco-bootstrap
[ ] CG5 — Salgsdemo klar
```
--- ---
## FASE A — ✅ KOMPLETT ## 11. GO-TO-MARKET — Enkel og konkret
``` **Produkt #1: CostGuard**
[x] A1-A9 + SMOKE 10/10 ✅ (2026-05-26 01:45 CEST) - **Hvem:** Norske bedrifter med GCP-kostnader de ikke kontrollerer
RAG: projects/357036551735/locations/europe-west1/ragCorpora/6917529027641081856 - **Hva:** Autonomt kostnadsovervåkningsverktøy med AI-anomali-deteksjon
Memory: projects/357036551735/locations/us-central1/reasoningEngines/2260229219579592704 - **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.**
--- ---
## FASE A2 — Dialogflow CX (Jason-v1 FAQ) ## 12. KJENTE HULL
``` | ID | Problem | Løsning | Prioritet |
[x] DX1-DX3 — Agent live, Data Store, norsk systemprompt |----|---------|---------|-----------|
[x] DX4 — Parkert (Cloud Run-webhook til C4) | OQ-15 | BQ billing_export tabell | Venter på aktivering — sjekk neste sesjon | Medium |
[ ] DX5 — Dialogflow Messenger (trigger: CG3) | OQ-16 | Duplikat CostGuard-implementasjoner | Slett gammel, behold `ml/billing_agent.py` | Høy |
[ ] DX6 — Budsjett-alert | OQ-17 | `github-token` secret mangler | Opprett alias fra `github-pat` | Medium |
[ ] DX7 — Voice-kanal (trigger: etter DX5) | OQ-18 | VM alltid-på kostnad | Kjør `03-teardown.sh` hver kveld | Høy |
[ ] B6 — Eksporter Dialogflow CX til versjonskontroll | OQ-19 | MASTERPLAN/ROADMAP ikke synkronisert | Gjøres som del av R6 | Høy |
```
--- ---
## FASE ML *OSVauco | propane-will-491900-m5 | europe-west1 | Autoritativ fra 2026-05-27*
```
[x] ML-1 — DAG, state store, telemetri ✅ (2026-05-25)
[ ] ML-2 — Adaptiv intelligens (trigger: >500 telemetri-kall)
[ ] ML-3 — Strategisk innsikt (trigger: ML-2 + første kunde)
```
---
## FASE B — ✅ KOMPLETT
```
[x] B1-B5, B1-IAP (opax.vauco.no CNAME live)
[ ] B6 — Dialogflow CX versjonskontroll (se DX-lista)
```
---
## FASE C — Kunde-onboarding
> Medioteq og fremtidige kunder håndteres av deg selv via OPAX.
```
[x] C1 — vauco-bootstrap Terraform-modul (validate: PASS)
[x] C2 — CUSTOMER_API.md
[x] C3 — billing@vauco.no Google Group
[ ] C4 — Medioteq: HITL-møte → project_id → terraform apply
```
---
## INFRASTRUKTUR
| Script | Rolle |
|--------|-------|
| `00-authcheck.sh` | Verifiser innlogging |
| `01-setupenv.sh` | APIs, SA, IAM, Pub/Sub |
| `03-teardown.sh` | Riv ned Cloud Run (kjør hver kveld) |
| `04-observability-setup.sh` | Cloud Monitoring |
| `07-rag-setup.sh` | RAG corpus |
| `08-memorybank-setup.sh` | Memory Bank |
| `10-cost-guard.sh` | Auto-teardown + GCS telemetri |
| `11-billing-iam-hardening.sh` | IAM hardening |
| `scripts/smoke-test.sh` | 10-case røyktest |
---
## KJENTE HULL
| ID | Hva | Status |
|---|---|---|
| OQ-01 | Memory Bank — ingen gcloud CLI | Python SDK only |
| OQ-02 | RAG regional | Auto-fallback us-east1 |
| OQ-15 | billing_export BQ-tabell | Venter — aktivert 2026-05-27 |
---
## DRIFTSKOSTNADER
| Scenario | Kostnad/mnd |
|---|---|
| Dev (teardown daglig) | ~$25-75 |
| Dev + Dialogflow CX (10k req) | ~$145-195 |
| 1 betalende kunde | ~$115-280 |
Breakeven: 1 kunde à $300-500/mnd.
---
## LLM-RUTING
| Modell | Bruksområde |
|---|---|
| `gemini-2.5-flash` | light — alle enkle kall |
| `gemini-2.5-pro` | heavy — reasoning, compliance |
`LOCATION=global` | Autoriserte heavy: `opax`, `admin`
---
*OSVauco | propane-will-491900-m5 | europe-west1*