plan(ML-3): Gemma-migrering + kontekstbygging dokumentert i MASTERPLAN + ROADMAP
- MASTERPLAN §6: AI-modell-strategi utvidet med tofase-plan (Vertex nå → Gemma lokalt når kreditter brukes) - MASTERPLAN §12: OPAX-evolusjon utvidet med Gemma-verdenbygging (simultan kontekstlasting) - ROADMAP: ML-3 Gemma-migrering lagt til under LATER med trigger + deloppgaver ML-3a–ML-3d
This commit is contained in:
parent
7686fc7623
commit
8bc52fc0bb
|
|
@ -1,7 +1,7 @@
|
||||||
# VAUCO OS — MASTERPLAN
|
# VAUCO OS — MASTERPLAN
|
||||||
|
|
||||||
**Eier:** Chris Christiansen · Vauco AS · Org.nr 935 989 779
|
**Eier:** Chris Christiansen · Vauco AS · Org.nr 935 989 779
|
||||||
**Sist oppdatert:** 2026-05-31
|
**Sist oppdatert:** 2026-06-10
|
||||||
**Status:** 🟢 AUTORITATIV — én kilde til sannhet for hele Vauco-økosystemet
|
**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 #1:** Denne filen er sannheten. Hvis en annen fil sier noe annet — denne vinner.
|
||||||
|
|
@ -39,7 +39,7 @@ Separat merkevare under Vauco AS (parkert til etter Modul #1 + #2 lever):
|
||||||
|
|
||||||
**Salgskanal-prinsipp:**
|
**Salgskanal-prinsipp:**
|
||||||
- `vauco.no` = portalen som forteller "hva selger vi" og leder til riktig modul
|
- `vauco.no` = portalen som forteller "hva selger vi" og leder til riktig modul
|
||||||
- Hver modul har sin egen landings-/produktside (`costguard.oss.vauco.no`, `threadstone.vauco.no`, …)
|
- Hver modul har sin egen landings-/produktside
|
||||||
- Vauco OS og OPAX nevnes ikke som produkter på `vauco.no` — de er interne verktøy
|
- 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.**
|
**Ikke selg Vauco OS. Ikke selg OPAX. De er interne verktøy.**
|
||||||
|
|
@ -52,34 +52,34 @@ Separat merkevare under Vauco AS (parkert til etter Modul #1 + #2 lever):
|
||||||
|
|
||||||
| Domene | Prosjekt | Status |
|
| Domene | Prosjekt | Status |
|
||||||
|--------|----------|--------|
|
|--------|----------|--------|
|
||||||
| `vauco.no` | Rot for alle Vauco-tjenester | ✅ Aktiv, verifisert på GitHub |
|
| `vauco.no` | Rot for alle Vauco-tjenester | ✅ Aktiv, live på GCS+LB |
|
||||||
|
|
||||||
**Aktive subdomener:**
|
**Aktive subdomener:**
|
||||||
|
|
||||||
| Domene/subdomen | Teknologi | Status | Eier-flate |
|
| Domene/subdomen | Teknologi | Status | Eier-flate |
|
||||||
|----------|-----------|--------|------------|
|
|----------|-----------|--------|------------|
|
||||||
| `vauco.no` (apex) | Proisp parking-side (placeholder) | ⚠️ "Under construction" — skal erstattes med ekte salgsportal | Vauco AS apex |
|
| `vauco.no` (apex) | GCS + GCP Load Balancer + Cloud CDN | ✅ LIVE · 2026-06-05 | Vauco AS apex |
|
||||||
| `www.vauco.no` | Følger apex | ⚠️ Samme placeholder | 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 |
|
| `opax.vauco.no` | LB + IAP → Cloud Run `osvauco-agent` | ✅ Live (IP 34.98.77.173) | OPAX |
|
||||||
| `oss.vauco.no` | Staging-miljø | ✅ Aktiv | OPAX |
|
| `oss.vauco.no` | Staging-miljø | ✅ Aktiv | OPAX |
|
||||||
| `os.vauco.no` | Prod-miljø | 🔮 Fase C | OPAX |
|
| `os.vauco.no` | Prod-miljø | 🔮 Fase C | OPAX |
|
||||||
| `costguard.oss.vauco.no` | Cloudflare Pages | ✅ Live | CostGuard |
|
| `costguard.oss.vauco.no` | Cloud Run via IAP | ✅ Live | CostGuard |
|
||||||
| `costguard.os.vauco.no` | Promoteres fra oss | 🔮 Fase C | CostGuard |
|
| `costguard.os.vauco.no` | Promoteres fra oss | 🔮 Fase C | CostGuard |
|
||||||
| `threadstone.vauco.no` | GitHub Pages (`threadstone-landing`) | ✅ Live | Threadstone |
|
| `threadstone.vauco.no` | GitHub Pages (`threadstone-landing`) | ✅ Live | Threadstone |
|
||||||
| `app.threadstone.vauco.no` | GitHub Pages (`vauco-saas.github.io`) | ⚠️ CNAME satt, side mangler | 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 |
|
| `<kunde>.vauco.no` | LB + IAP via Terraform | 🔮 Fase C2 | OPAX/Multi-tenant |
|
||||||
|
|
||||||
**Reservert til senere — ikke opprettet ennå:**
|
**Reservert til senere:**
|
||||||
|
|
||||||
| Subdomen | Tiltenkt formål | Trigger |
|
| Subdomen | Tiltenkt formål | Trigger |
|
||||||
|----------|------------------|---------|
|
|----------|------------------|---------|
|
||||||
| `status.vauco.no` | Statuspage for alle moduler (Cloud Run uptime, RAG, IAP) | Etter første kunde — trust-signal |
|
| `status.vauco.no` | Statuspage | Etter første kunde |
|
||||||
| `docs.vauco.no` | Offentlig kundedokumentasjon (CostGuard onboarding, API-ref) | CG4 / første kunde |
|
| `docs.vauco.no` | Offentlig kundedok | CG4 / første kunde |
|
||||||
| `careers.vauco.no` | Stillinger (kan bare være redirect til notion-side) | Når Vauco rekrutterer |
|
| `careers.vauco.no` | Stillinger | Når Vauco rekrutterer |
|
||||||
|
|
||||||
**Email-infra:**
|
**Email-infra:**
|
||||||
- MX: Google Workspace (`smtp.google.com`) ✅
|
- MX: Google Workspace ✅
|
||||||
- TXT-records (SPF/DKIM/DMARC): ⚠️ Mangler — sett opp som del av V1 for å unngå at salgs-mail havner i spam
|
- SPF/DKIM/DMARC: ⚠️ Mangler — sett opp som del av V1e
|
||||||
|
|
||||||
### Proof of Curiosity (hos Proisp) — egen merkevare
|
### Proof of Curiosity (hos Proisp) — egen merkevare
|
||||||
|
|
||||||
|
|
@ -91,44 +91,31 @@ Separat merkevare under Vauco AS (parkert til etter Modul #1 + #2 lever):
|
||||||
| `proof-of-curiosity.no` | Registrert — ikke i bruk |
|
| `proof-of-curiosity.no` | Registrert — ikke i bruk |
|
||||||
| `proofofcuriosity.no` | Registrert — ikke i bruk |
|
| `proofofcuriosity.no` | Registrert — ikke i bruk |
|
||||||
|
|
||||||
> **Trigger:** Ingen POC-arbeid før Modul #1 (CostGuard) har første betalende kunde og Modul #2 (Threadstone) er i pilot.
|
> **Trigger:** Ingen POC-arbeid før Modul #1 + #2 lever.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 3. Repo-struktur — fasit
|
## 3. Repo-struktur — fasit
|
||||||
|
|
||||||
### Aktive repos (5 — hold antallet lavt)
|
### Aktive repos (5)
|
||||||
|
|
||||||
| Repo | Formål | Synlighet | Eier-flate |
|
| Repo | Formål | Synlighet | Eier-flate |
|
||||||
|------|--------|-----------|------------|
|
|------|--------|-----------|------------|
|
||||||
| `OSVauco` | Mono-repo: OPAX-engine, alle infrastruktur-scripts, Terraform, all dokumentasjon | Privat | OPAX (rot) |
|
| `OSVauco` | Mono-repo: OPAX-engine, infra, Terraform, all dokumentasjon | Privat | OPAX (rot) |
|
||||||
| `vauco-bootstrap` | Terraform-modul for kunde-provisjonering (referert som submodul fra OSVauco) | Privat | OPAX |
|
| `vauco-bootstrap` | Terraform-modul for kunde-provisjonering | Privat | OPAX |
|
||||||
| `vauco-site` | `vauco.no` salgsportal (apex + www) — eget public repo for SEO, ikke skjul kildekoden | Public | Vauco AS apex |
|
| `vauco-site` | `vauco.no` salgsportal | Public | Vauco AS apex |
|
||||||
| `threadstone-landing` | `threadstone.vauco.no` landingsside | Public | Threadstone |
|
| `threadstone-landing` | `threadstone.vauco.no` landingsside | Public | Threadstone |
|
||||||
| `vauco-saas.github.io` | `app.threadstone.vauco.no` — Threadstone-app frontend | Public | Threadstone |
|
| `vauco-saas.github.io` | `app.threadstone.vauco.no` Threadstone-app frontend | Public | Threadstone |
|
||||||
|
|
||||||
> **Hvorfor `vauco-site` får eget repo (ikke i mono-repoet):**
|
### Arkiverte repos
|
||||||
> 1. Skal være public (mono-repoet er privat og må forbli det — inneholder infra, secrets-referanser, kundedata-mønstre)
|
|
||||||
> 2. Skal serveres via GitHub Pages eller Cloudflare Pages — egen deploy-pipeline
|
|
||||||
> 3. Designere/markedsfolk kan jobbe der uten å se OPAX-koden
|
|
||||||
> 4. Følger samme mønster som `threadstone-landing`
|
|
||||||
|
|
||||||
### Arkiverte repos (ikke gjenåpne uten plan-endring)
|
|
||||||
|
|
||||||
| Repo | Arkivert | Innholdet finnes nå i |
|
| Repo | Arkivert | Innholdet finnes nå i |
|
||||||
|------|----------|------------------------|
|
|------|----------|------------------------|
|
||||||
| `vauco-os` | ✅ 2026-05-27 | `OSVauco/docs/architecture/` |
|
| `vauco-os` | ✅ 2026-05-27 | `OSVauco/docs/architecture/` |
|
||||||
| `vauco-gemini-tui-bridge` | ✅ 2026-05-27 | (kun arkiv; reaktiveres etter Fase 8 om behov) |
|
| `vauco-gemini-tui-bridge` | ✅ 2026-05-27 | Arkiv — reaktiveres som del av OX1b |
|
||||||
| `command-hub` | ✅ 2026-05-27 | `OSVauco/static/command-hub.html` |
|
| `command-hub` | ✅ 2026-05-27 | `OSVauco/static/command-hub.html` |
|
||||||
|
|
||||||
### Parkerte repos — leve videre, ikke arkiver, ikke aktivt jobb før trigger
|
> **Regel:** Nytt repo krever eksplisitt `REPO APPROVED` fra Chris.
|
||||||
|
|
||||||
| Repo | Trigger for å gjenoppta | Hvor det hører hjemme i hierarkiet |
|
|
||||||
|------|--------------------------|------------------------------------|
|
|
||||||
| `threadstone-instructions` | Når Threadstone-app går i pilot (Modul #2 fase 2) | Threadstone-modul — boot-prompter + tema-config |
|
|
||||||
| `deep-dream` | Når Modul #1 har betalende kunde | Strategisk visjon, klassifisert — egen prosess |
|
|
||||||
|
|
||||||
> **Regel:** Hvis du vil opprette et nytt repo — `STOP`. Vurder først om det kan leve som mappe i `OSVauco`. Krever eksplisitt `REPO APPROVED` fra Chris.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -136,140 +123,62 @@ Separat merkevare under Vauco AS (parkert til etter Modul #1 + #2 lever):
|
||||||
|
|
||||||
```
|
```
|
||||||
OSVauco/
|
OSVauco/
|
||||||
├── MASTERPLAN.md → symlink/peker til docs/MASTERPLAN.md (denne filen)
|
├── MASTERPLAN.md
|
||||||
├── README.md
|
├── README.md
|
||||||
├── AGENTS.md ML-roller, ikke rør uten ML-fase-endring
|
├── AGENTS.md
|
||||||
├── Dockerfile / cloudbuild.yaml CI/CD (auto-deploy på push til main)
|
├── Dockerfile / cloudbuild.yaml
|
||||||
│
|
│
|
||||||
├── agents/ Python-agentene
|
├── agents/
|
||||||
│ ├── core-logic/ OPAX orchestrator + FastAPI app (main.py)
|
│ ├── core-logic/ OPAX orchestrator + FastAPI app
|
||||||
│ ├── rag/ RAG-agent
|
│ │ ├── agent.py Kjører Gemini nå → Gemma fra ML-3
|
||||||
│ ├── memory/ Memory-agent
|
│ │ ├── app.py
|
||||||
│ ├── multi_agent/ Sub-orchestrators
|
│ │ └── token_logger.py
|
||||||
│ ├── eval/ Evaluering
|
│ ├── rag/
|
||||||
│ ├── tests/ Pytest
|
│ ├── memory/
|
||||||
│ └── tools/ Hjelpere
|
│ ├── multi_agent/
|
||||||
|
│ ├── eval/
|
||||||
|
│ ├── tests/
|
||||||
|
│ └── tools/
|
||||||
│
|
│
|
||||||
├── auth/ OAuth2-flow
|
├── auth/
|
||||||
├── ml/ CostGuard-engine (billing_agent, anomaly_detector, telemetry)
|
├── ml/
|
||||||
├── infrastructure/ GCP-scripts (00–12, 99) + terraform/
|
├── infrastructure/
|
||||||
│ └── terraform/ IaC (modules, customers, platform.tf)
|
├── scripts/
|
||||||
├── scripts/ smoke-test, cost-audit, opax-boot, sync-gdrive
|
├── static/
|
||||||
├── static/ HTML servert av Cloud Run
|
│ ├── opax.html Operator hub — blir Chris sitt cockpit (OX1)
|
||||||
│ ├── opax.html OPAX operator hub
|
|
||||||
│ ├── billing-dashboard.html
|
│ ├── billing-dashboard.html
|
||||||
│ ├── command-hub.html
|
│ ├── command-hub.html
|
||||||
│ ├── costguard.html ← CG3 bygges her
|
│ ├── costguard.html
|
||||||
│ └── admin.html
|
│ └── admin.html
|
||||||
├── docs/
|
├── docs/
|
||||||
│ ├── MASTERPLAN.md ← denne filen, autoritativ
|
│ ├── MASTERPLAN.md ← denne filen
|
||||||
│ ├── ROADMAP.md ← levende, oppdateres hver sesjon
|
│ ├── ROADMAP.md
|
||||||
│ ├── HANDOFF.md ← ÉN fil, overskrives per sesjon
|
│ ├── HANDOFF.md
|
||||||
│ ├── AGENT_RULEBOOK.md ← immutable regler for agent-boot
|
│ ├── AGENT_RULEBOOK.md
|
||||||
│ ├── ARCHITECTURE.md
|
│ ├── gemma/ ← NY: Gemma kontekstpakke (ML-3b)
|
||||||
│ ├── LEARNINGS.md
|
│ │ ├── world.md Vaucos verden — alt Gemma trenger å vite
|
||||||
│ ├── architecture/ fra vauco-os repo
|
│ │ └── README.md
|
||||||
│ ├── threadstone/ (kommer når threadstone-instructions konsolideres)
|
|
||||||
│ └── [øvrige tema-docs]
|
│ └── [øvrige tema-docs]
|
||||||
├── protocols/
|
├── protocols/sessions/
|
||||||
│ └── sessions/ Detaljerte sesjonsprotokoller (én per dag)
|
└── data/
|
||||||
├── data/ RAG-input (threadstone_faq.*)
|
|
||||||
└── dialogflow/ DX-agent-config
|
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 4b. vauco.no — salgsportal (Vauco AS apex)
|
## 4b. vauco.no — salgsportal (Vauco AS apex)
|
||||||
|
|
||||||
> Eget repo: `vauco-saas/vauco-site` — opprettes som del av V1.
|
> Eget repo: `vauco-saas/vauco-site` — LIVE 2026-06-05 på GCS+LB.
|
||||||
|
|
||||||
### Formål (én linje)
|
### Formål
|
||||||
Vauco AS sin offisielle bedriftsside. Selger Vaucos AI-moduler ved å lede besokende videre til riktig modul-landingsside. Bygger tillit gjennom å vise hvem som står bak.
|
Vauco AS sin offisielle bedriftsside. Selger moduler ved å lede besøkende til riktig produktside.
|
||||||
|
|
||||||
### Hvem siden er for (prioritert rekkefølge)
|
|
||||||
1. **Potensielle CostGuard-kunder** — norske bedrifter med GCP-kostnader de ikke kontrollerer (Chris sin primære salgsmotor)
|
|
||||||
2. **Threadstone-pilot-kunder** (Q3 2026+)
|
|
||||||
3. **Partnere og presse** — "hvem er Vauco?"
|
|
||||||
4. **Fremtidige ansatte** — kandidater som googler firmaet etter et møte
|
|
||||||
|
|
||||||
### Informasjonsarkitektur (sidekart)
|
|
||||||
|
|
||||||
```
|
|
||||||
vauco.no (hovedside)
|
|
||||||
├── #hero "Vauco bygger AI-moduler som leverer målbar verdi"
|
|
||||||
├── #moduler Grid med levende moduler
|
|
||||||
│ ├── CostGuard → costguard.oss.vauco.no
|
|
||||||
│ ├── Threadstone → threadstone.vauco.no
|
|
||||||
│ └── "Flere kommer" (placeholder med signup)
|
|
||||||
├── #hvorfor-vauco 3 punkter: norsk eierskap, GCP-ekspertise, AI som ikke er hype
|
|
||||||
├── #om-oss Chris Christiansen + Vauco AS (org.nr, Oslo)
|
|
||||||
├── #kontakt chris.christiansen@vauco.no + LinkedIn
|
|
||||||
└── footer Org.nr, personvern-lenke, status.vauco.no (når live)
|
|
||||||
|
|
||||||
/personvern.html Personvernerklæring (GDPR-krav)
|
|
||||||
/vilkar.html Standardvilkår for kunder
|
|
||||||
/sitemap.xml For SEO
|
|
||||||
/robots.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
### Visuell retning (utgangspunkt)
|
|
||||||
|
|
||||||
- **Ankret i Threadstone-stilen** (`threadstone-landing/index.html`) — mørk bakgrunn, monospace-aksenter, Inter/SF Pro som hovedtypo
|
|
||||||
- **Én hovedfarge per modul:** CostGuard får en, Threadstone en annen — visuelt skille så kundene ikke forveksler
|
|
||||||
- **Ikke generisk SaaS-look.** Vauco er en operatør, ikke et VC-finansiert startup. Tone: rolig, kompetent, norsk.
|
|
||||||
- **Mobile-first** — Chris demoer ofte fra telefon
|
|
||||||
- **Lighthouse ≥0.95** på alle 4 akser
|
|
||||||
- **Ingen tracking-piksler** ved lansering (kan legges til senere som GA4 om nødvendig)
|
|
||||||
|
|
||||||
### Salgs-flow (hva siden faktisk skal drive)
|
|
||||||
|
|
||||||
```
|
|
||||||
Google/LinkedIn → vauco.no
|
|
||||||
↓
|
|
||||||
#moduler-grid
|
|
||||||
↓
|
|
||||||
klikk "CostGuard" → costguard.oss.vauco.no
|
|
||||||
↓
|
|
||||||
Magic-link login
|
|
||||||
↓
|
|
||||||
(etter CG3-flow): kunden ser sine GCP-kostnader
|
|
||||||
↓
|
|
||||||
"Bestill" → Chris ringes opp (OPAX HITL)
|
|
||||||
```
|
|
||||||
|
|
||||||
### Teknisk stack
|
|
||||||
|
|
||||||
| Lag | Valg |
|
|
||||||
|-----|------|
|
|
||||||
| Hosting | GitHub Pages (samme mønster som `threadstone-landing`) eller Cloudflare Pages |
|
|
||||||
| Bygg | Vanilj HTML/CSS — ingen framework før vi har en grunn |
|
|
||||||
| Deploy | Push til main → Pages bygger |
|
|
||||||
| Domene | `vauco.no` + `www.vauco.no` CNAME |
|
|
||||||
| SSL | Auto via Pages |
|
|
||||||
| Skjema | Formspark / Netlify Forms eller `mailto:` (V1 = mailto) |
|
|
||||||
|
|
||||||
### Det som IKKE skal være på vauco.no
|
|
||||||
|
|
||||||
- Ingen OPAX, Vauco OS, eller intern arkitektur — dette er kundenes side
|
|
||||||
- Ingen Deep Dream-innhold
|
|
||||||
- Ingen Proof of Curiosity (egen merkevare, egen side når tiden er inne)
|
|
||||||
- Ingen demo-credentials, ingen tekniske dypdykk
|
|
||||||
- Ingen "vi er det neste OpenAI"-retorikk
|
|
||||||
|
|
||||||
### Designreferanser å inspireres av (ikke kopiere)
|
|
||||||
|
|
||||||
- Linear.app — ren visuell hierarki
|
|
||||||
- Resend.com — norsk-ish tone, fokus på én ting
|
|
||||||
- Vercel.com — strukturen på modul-grid (men råere typografi)
|
|
||||||
- Threadstone-landing.html — vår egen stilreferanse
|
|
||||||
|
|
||||||
### Versjons-evolusjon
|
### Versjons-evolusjon
|
||||||
|
|
||||||
| Versjon | Inneholder | Trigger |
|
| Versjon | Inneholder | Trigger |
|
||||||
|---------|------------|---------|
|
|---------|------------|---------|
|
||||||
| V1 (MVP) | Hero + modul-grid (CostGuard live, Threadstone "coming soon") + om-oss + kontakt + personvern | NOW — etter Fase 8 |
|
| V1 (MVP) ✅ | Hero + modul-grid + om-oss + kontakt + personvern | LIVE 2026-06-05 |
|
||||||
| V2 | Sales-CTA på hver modul (kalkulator-widget for CostGuard ROI), case study #1 | Etter første betalende kunde |
|
| V2 | Sales-CTA + CostGuard ROI-kalkulator | Etter første betalende kunde |
|
||||||
| V3 | Blogg/innsikter, kundereferanser, status-widget fra `status.vauco.no` | Når 3+ kunder |
|
| V3 | Blogg, kundereferanser, status-widget | Når 3+ kunder |
|
||||||
| V4 | Internasjonalt (`vauco.no/en`), Proof of Curiosity i footer | Etter Modul #3 |
|
| V4 | Internasjonalt (`vauco.no/en`), Proof of Curiosity i footer | Etter Modul #3 |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -278,104 +187,65 @@ Google/LinkedIn → vauco.no
|
||||||
|
|
||||||
| Fil | Rolle | Oppdateres |
|
| Fil | Rolle | Oppdateres |
|
||||||
|-----|-------|------------|
|
|-----|-------|------------|
|
||||||
| `docs/MASTERPLAN.md` | Arkitektur, domener, repos, agent-identitet — **denne filen** | Ved arkitekturendringer |
|
| `docs/MASTERPLAN.md` | Arkitektur, domener, repos, agent-identitet | Ved arkitekturendringer |
|
||||||
| `docs/ROADMAP.md` | Faser, status, backlog — **levende dokument** | Hver sesjon |
|
| `docs/ROADMAP.md` | Faser, status, backlog | Hver sesjon |
|
||||||
| `docs/HANDOFF.md` | Hva ble gjort, hva er neste, kjente hull — **alltid kun én fil** | Overskrives hver sesjon |
|
| `docs/HANDOFF.md` | Hva ble gjort, hva er neste | Overskrives hver sesjon |
|
||||||
| `docs/AGENT_RULEBOOK.md` | Locked definitions for agent-boot | Kun ved infrastruktur-låsing |
|
| `docs/AGENT_RULEBOOK.md` | Locked definitions for agent-boot | Ved infrastruktur-låsing |
|
||||||
| `protocols/sessions/YYYY-MM-DD_<tema>.md` | Detaljerte protokoller per sesjon | Append-only |
|
| `docs/gemma/world.md` | Gemmas verden — kontekstpakke for lokal modell | Bygges simultant med alt annet |
|
||||||
|
| `protocols/sessions/YYYY-MM-DD_<tema>.md` | Detaljerte protokoller | Append-only |
|
||||||
**Regel:** Arkitektur → MASTERPLAN. Oppgave → ROADMAP. Sesjonsstatus → HANDOFF. **Aldri dobbelt opp.**
|
|
||||||
|
|
||||||
> **VAUCO_OS_ROADMAP.md er deprecated 2026-05-31.** Erstattet av `docs/ROADMAP.md`.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 6. AI-modell — låst (midlertidig)
|
## 6. AI-modell — tofase-strategi
|
||||||
|
|
||||||
|
### Fase 1 — Nå (Vertex AI, løper ut kreditter)
|
||||||
|
|
||||||
| Parameter | Verdi | Merknad |
|
| Parameter | Verdi | Merknad |
|
||||||
|-----------|-------|---------|
|
|-----------|-------|---------|
|
||||||
| **Modell** | `gemini-2.5-pro` | Via Vertex AI |
|
| **Intern modell (Jason/Chris)** | `gemini-2.5-pro` / `gemini-2.5-flash` | Via Vertex AI, tærer på kreditter |
|
||||||
| **Endpoint** | `us-central1` | Bruker Vertex-kreditter |
|
| **Kundemodell** | `gemini-2.5-flash` | Via Vertex AI — kunder betaler indirekte |
|
||||||
| **SDK** | `from google import genai` | google-genai >=0.3 |
|
| **Endpoint** | `us-central1` | Vertex-kreditter |
|
||||||
| **Status Claude Opus 4.6/4.7** | ⏳ Venter på kvote-godkjenning fra Google Cloud-team | Bytt når kvote er innvilget |
|
| **SDK** | `google-adk` + `google-genai` | |
|
||||||
|
| **Status Claude** | ⏳ Venter på EU-kvote | Bytt når kvote innvilget |
|
||||||
|
|
||||||
**Bytte til Claude krever:**
|
### Fase 2 — Gemma-migrering (trigger: kreditter < 20% eller første kunde onboardet)
|
||||||
1. Bekreftelse fra Google Cloud-team at kvote er innvilget i `us-central1` eller `eu`-region
|
|
||||||
2. Eksplisitt `MODEL APPROVED` fra Chris
|
| Parameter | Verdi | Merknad |
|
||||||
3. Oppdatering av denne tabellen, `AGENT_RULEBOOK.md` og `.gemini/GEMINI.md` i samme commit
|
|-----------|-------|---------|
|
||||||
|
| **Intern modell (Jason/Chris)** | `gemma-4-12b-it` int4 | GCP `g2-standard-4` Spot VM (~$120–150/mnd) |
|
||||||
|
| **Serving** | Ollama (utvikling) → vLLM (produksjon) | |
|
||||||
|
| **Kundemodell** | `gemini-2.5-flash` via Vertex | Uendret — kunder merker ingenting |
|
||||||
|
| **Kontekst** | `docs/gemma/world.md` lastet som system-prompt | Gemma forstår Vauco fra dag 1 |
|
||||||
|
|
||||||
|
**Prinsipp:** Kunder bruker alltid Gemini via Vertex. Chris/Jason bruker Gemma lokalt.
|
||||||
|
**Gemma er ikke dum når den starter** — kontekstpakken (`docs/gemma/world.md`) bygges simultant og lastes ved oppstart.
|
||||||
|
|
||||||
|
**Bytte til Gemma krever:**
|
||||||
|
1. ML-3b kontekstpakke ferdigstilt
|
||||||
|
2. GPU-VM verifisert med smoke-test
|
||||||
|
3. Eksplisitt `MODEL APPROVED` fra Chris
|
||||||
|
4. Oppdatering av `agent.py`, `AGENT_RULEBOOK.md` og denne tabellen i samme commit
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 7. Roadmap — prioritert rekkefølge
|
## 7. Roadmap — kortversjon
|
||||||
|
|
||||||
> Denne seksjonen er kortversjonen. Full status og daglig oppdatering ligger i `docs/ROADMAP.md`.
|
> Full status i `docs/ROADMAP.md`.
|
||||||
|
|
||||||
### 🔴 NÅ — Konsolidering + Fase 8 verifisering
|
### 🔴 NOW
|
||||||
|
- [x] K2, F8, CG6, CG3e — alle done ✅
|
||||||
|
|
||||||
| # | Oppgave | Eier | Status |
|
### 🟠 NEXT
|
||||||
|---|---------|------|--------|
|
- V1e — SPF/DKIM/DMARC
|
||||||
| K1 | Slå sammen MASTERPLAN-er, slett duplikater, fjern merge-markører | Chris + Perplexity | 🟡 In progress (denne sesjonen) |
|
- CG4 — Token Intelligence (estimering + prising)
|
||||||
| K2 | Oppdater AGENT_RULEBOOK med korrekt region + modell | Chris | 🟡 In progress |
|
- OX1 — Operator Hub (Cloud Build widget, TUI, Jason-chat som cockpit)
|
||||||
| K3 | Fiks nattlig GDrive backup-workflow | Chris | ⏳ Pending |
|
- ML-3b — Gemma kontekstpakke bygges simultant (starter neste sesjon)
|
||||||
| F8 | End-to-end test: `opax.vauco.no` → login → chat → svar | Chris | ✅ Delvis (Cloud Run + IAP OK, gemini-2.5-pro deployet, browser-flow gjenstår) |
|
|
||||||
|
|
||||||
**Nåværende status:**
|
### 🟡 LATER
|
||||||
- Primary region bekreftet: `us-central1`
|
- C4 — Første betalende kunde
|
||||||
- `gemini-2.5-pro` deployet ✅
|
- ML-3 — Full Gemma-migrering (trigger: kreditter < 20%)
|
||||||
- Åpne PR-er: #8, #9, #10
|
- T1–T4 — Threadstone
|
||||||
|
- Fase C — Multi-tenant
|
||||||
### 🟠 V — vauco.no salgsportal (parallelt spor)
|
|
||||||
|
|
||||||
| # | Oppgave |
|
|
||||||
|---|---------|
|
|
||||||
| V1a | Opprett `vauco-saas/vauco-site` (public repo) |
|
|
||||||
| V1b | Bygg MVP: hero + modul-grid (CostGuard live, Threadstone "coming soon") + om-oss + kontakt + personvern |
|
|
||||||
| V1c | Sett CNAME `vauco.no` + `www.vauco.no` → GitHub Pages i Proisp |
|
|
||||||
| V1d | Erstatt "Under construction" placeholder — deploy MVP |
|
|
||||||
| V1e | Sett opp SPF + DKIM + DMARC TXT-records på `vauco.no` (e-post fra Workspace) |
|
|
||||||
| V2 | Sales-CTA + CostGuard ROI-kalkulator (trigger: etter Fase 8 OG første demo) |
|
|
||||||
|
|
||||||
### 🟡 NESTE — CG3 (CostGuard frontend wiring)
|
|
||||||
|
|
||||||
| # | 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 (Modul #1)
|
|
||||||
|
|
||||||
| 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) |
|
|
||||||
|
|
||||||
### 🔵 MODUL #2 — Threadstone
|
|
||||||
|
|
||||||
| # | Oppgave |
|
|
||||||
|---|---------|
|
|
||||||
| T1 | Konsolider `threadstone-instructions` → `OSVauco/docs/threadstone/` (når app-arbeid starter) |
|
|
||||||
| T2 | Bygg `app.threadstone.vauco.no` i `vauco-saas.github.io` |
|
|
||||||
| T3 | Koble til OPAX-engine via `POST /threadstone/generate` |
|
|
||||||
| T4 | Pilot med første kunde |
|
|
||||||
|
|
||||||
### 🟣 STRATEGISK — Deep Dream (klassifisert)
|
|
||||||
|
|
||||||
> Innholdet i `deep-dream` repo er strategisk visjon. **Røres ikke** før Modul #1 har betalende kunde. Lever som eget repo for å holde tilgang adskilt.
|
|
||||||
|
|
||||||
### 🌐 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 (vurder om det skal under `vauco-saas` eller separat org) |
|
|
||||||
| POC-4 | Bygg landing/MVP |
|
|
||||||
|
|
||||||
> **Trigger:** Ikke start POC før Modul #1 er live med betalende kunde OG Modul #2 er i pilot.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -384,7 +254,7 @@ Google/LinkedIn → vauco.no
|
||||||
| Identitet | E-post | Rolle |
|
| Identitet | E-post | Rolle |
|
||||||
|-----------|--------|-------|
|
|-----------|--------|-------|
|
||||||
| Eier / admin | `chris.christiansen@vauco.no` | Full kontroll |
|
| Eier / admin | `chris.christiansen@vauco.no` | Full kontroll |
|
||||||
| Agent (OPAX / Jason) | `jason.vauger@vauco.no` | `billing.viewer` + `run.invoker` på `osvauco-agent` |
|
| Agent (OPAX / Jason) | `jason.vauger@vauco.no` | `billing.viewer` + `run.invoker` |
|
||||||
| Fremtidig gruppe | `billing@vauco.no` | `billing.viewer` (Fase C) |
|
| Fremtidig gruppe | `billing@vauco.no` | `billing.viewer` (Fase C) |
|
||||||
|
|
||||||
**Forbudte kontoer:** `tinius.vauger`, `ccv` — aldri gi tilganger.
|
**Forbudte kontoer:** `tinius.vauger`, `ccv` — aldri gi tilganger.
|
||||||
|
|
@ -405,22 +275,24 @@ Google/LinkedIn → vauco.no
|
||||||
| `GET /billing/summary` | ✅ |
|
| `GET /billing/summary` | ✅ |
|
||||||
| `GET /billing/forecast` | ✅ |
|
| `GET /billing/forecast` | ✅ |
|
||||||
| `GET /billing/anomalies` | ✅ |
|
| `GET /billing/anomalies` | ✅ |
|
||||||
|
| `GET /billing/history` | ✅ |
|
||||||
|
| `GET /billing/budget` | ✅ |
|
||||||
|
| `POST /billing/budget` | ✅ |
|
||||||
|
| `GET /billing/tokens/summary` | ✅ (data fra CG3e) |
|
||||||
| `GET /auth/login` | ✅ |
|
| `GET /auth/login` | ✅ |
|
||||||
| `GET /auth/callback` | ✅ |
|
| `GET /auth/callback` | ✅ |
|
||||||
| `GET /static/billing-dashboard.html` | ✅ |
|
|
||||||
| `GET /static/opax.html` | ✅ |
|
|
||||||
| `GET /state` | ✅ |
|
| `GET /state` | ✅ |
|
||||||
| `GET /telemetry/history` | ✅ |
|
| `GET /telemetry/history` | ✅ |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 10. Go-to-market — enkelt og konkret
|
## 10. Go-to-market
|
||||||
|
|
||||||
**Produkt #1: CostGuard**
|
**Produkt #1: CostGuard**
|
||||||
- **Hvem:** Norske bedrifter med GCP-kostnader de ikke kontrollerer
|
- **Hvem:** Norske bedrifter med GCP-kostnader de ikke kontrollerer
|
||||||
- **Hva:** Autonomt kostnadsovervåkningsverktøy med AI-anomali-deteksjon
|
- **Hva:** Autonomt kostnadsovervåkningsverktøy med AI-anomali-deteksjon
|
||||||
- **Pris:** $300–500/mnd per kunde (breakeven ved 1 kunde)
|
- **Pris:** $300–500/mnd per kunde (breakeven ved 1 kunde)
|
||||||
- **Salgskanal:** Chris selv via OPAX → HITL-møte → `terraform apply`
|
- **Salgskanal:** Chris selv → HITL-møte → `terraform apply`
|
||||||
|
|
||||||
**Produkt #2: Threadstone** (Q3 2026)
|
**Produkt #2: Threadstone** (Q3 2026)
|
||||||
- Definisjon låses når Modul #1 har første kunde.
|
- Definisjon låses når Modul #1 har første kunde.
|
||||||
|
|
@ -431,43 +303,60 @@ Google/LinkedIn → vauco.no
|
||||||
|
|
||||||
| ID | Problem | Løsning | Prioritet |
|
| ID | Problem | Løsning | Prioritet |
|
||||||
|----|---------|---------|-----------|
|
|----|---------|---------|-----------|
|
||||||
| OQ-15 | BQ billing_export tabell | Venter på aktivering — sjekk neste sesjon | Medium |
|
| OQ-15 | BQ billing_export tabell | Venter på aktivering | Medium |
|
||||||
| OQ-17 | `github-token` secret mangler | Opprett alias fra `github-pat` | 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-18 | VM alltid-på kostnad | Kjør `03-teardown.sh` hver kveld | Høy |
|
||||||
| OQ-20 | Nattlig GDrive backup feiler hver natt siden 2026-05-25 | Diagnostisere SA-key / folder-ID; fikses i K3 | Høy |
|
| OQ-20 | Nattlig GDrive backup | Fikset K3 · 2026-06-09 ✅ | — |
|
||||||
| OQ-21 | `app.threadstone.vauco.no` CNAME satt, men ingen `index.html` | Bygg som del av T2 eller fjern CNAME | Lav |
|
| OQ-21 | `app.threadstone.vauco.no` CNAME uten side | Bygg T2 eller fjern CNAME | Lav |
|
||||||
| OQ-22 | Claude Opus 4.6/4.7 mangler EU-kvote | Vent på Google Cloud-team; midlertidig på Gemini 2.5 Pro | Medium |
|
| OQ-22 | Claude EU-kvote | Vent på Google Cloud-team | Medium |
|
||||||
| OQ-23 | `vauco.no` viser "Under construction" (Proisp placeholder) | Erstattes av V1-fase | Høy |
|
| OQ-23 | vauco.no placeholder | LIVE 2026-06-05 ✅ | — |
|
||||||
| OQ-24 | Ingen SPF/DKIM/DMARC TXT-records på `vauco.no` | Sett opp som del av V1e — salgsmail havner ellers i spam | Høy |
|
| OQ-24 | Ingen SPF/DKIM/DMARC | V1e | Høy |
|
||||||
| OQ-25 | Ingen `personvern.html` / `vilkar.html` på vauco.no | GDPR-krav før betalende kunder onboardes — del av V1 | Høy |
|
| OQ-25 | Ingen personvern/vilkår | LIVE 2026-06-05 ✅ | — |
|
||||||
| OQ-26 | Ingen statuspage (`status.vauco.no`) | Etter første kunde — trust-signal | Lav |
|
| OQ-26 | Ingen statuspage | Etter første kunde | Lav |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 12. OPAX — fremtidig visjon (parkert, prioriteres etter CG3 + Fase 8)
|
## 12. OPAX — fremtidig visjon
|
||||||
|
|
||||||
> Notert 2026-05-28. Ikke bygg dette nå — fokus er Fase 8 + CG3.
|
> Notert 2026-05-28, utvidet 2026-06-10.
|
||||||
|
|
||||||
OPAX (`opax.vauco.no`) blir Chris sin **mobile salgssentral** — en stille, tekstbasert assistent han kan snakke MED via AirPods mens han er i møte med en potensiell kunde.
|
### Operator Hub (OX1) — Chris sitt cockpit
|
||||||
|
|
||||||
|
OPAX (`opax.vauco.no`) blir Chris sin **komplette arbeidsflate** — aldri trenger VM igjen for daglig drift.
|
||||||
|
|
||||||
|
**Inneholder når ferdig:**
|
||||||
|
- Jason-chat (allerede der)
|
||||||
|
- Billing dashboard (allerede der)
|
||||||
|
- Cloud Build live-widget (spinner → ✅/❌ ved push)
|
||||||
|
- Embedded TUI/terminal (reaktiverer `vauco-gemini-tui-bridge`)
|
||||||
|
- Token Intelligence dashboard (CG4)
|
||||||
|
|
||||||
**Flyt:** tale → transkribering → Jason analyserer → genererer kundemodul → Chris reviewer → magic-link til kundens mail.
|
**Flyt:** tale → transkribering → Jason analyserer → genererer kundemodul → Chris reviewer → magic-link til kundens mail.
|
||||||
|
|
||||||
**Prinsipper:**
|
### Gemma-verdensbygging (ML-3b) — simultant spor
|
||||||
- OPAX snakker aldri — kun tekst på skjerm
|
|
||||||
- Voice er kun inn (Web Speech API / Whisper)
|
|
||||||
- Silent assistant — stille, rask, mørk, monospace
|
|
||||||
- Provisjonering on-the-go
|
|
||||||
|
|
||||||
**Teknisk stack når det bygges:** Web Speech API → Whisper, Gemini 2.5 Pro (eller Claude når kvote kommer), magic link via SendGrid/Resend fra `vauco.no`, ny endepunkt `POST /opax/generate` i `main.py`.
|
**Prinsipp:** Gemma skal ikke være dum når den tar over. Kontekstpakken bygges nå, simultant med alt annet.
|
||||||
|
|
||||||
**Trigger for å starte:** CG3 live OG `static/` UI/UX-opprydding gjort.
|
```
|
||||||
|
docs/gemma/world.md ← bygges løpende fra neste sesjon
|
||||||
|
├── Hvem er Vauco AS og Chris
|
||||||
|
├── Plattformhierarkiet (Vauco OS → OPAX → Moduler)
|
||||||
|
├── Alle aktive domener og endepunkter
|
||||||
|
├── Agent-identitet og HITL-grenser
|
||||||
|
├── Alle sesjons-protokoller (komprimert)
|
||||||
|
├── Teknisk stack og GCP-konfig
|
||||||
|
├── Gjeldende ROADMAP-status
|
||||||
|
└── Tone og kommunikasjonsstil (norsk bokmål, direkte)
|
||||||
|
```
|
||||||
|
|
||||||
|
Når Gemma-VM starter → `world.md` lastes som system-prompt → Jason/Gemma forstår konteksten fra første token.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 13. TUI-bridge — parkert
|
## 13. TUI-bridge — reaktiveres som OX1b
|
||||||
|
|
||||||
Lokal TUI-plan ble løst av OPAX + Cloud Shell + Gemini TUI. Koden ligger i arkiv (`vauco-gemini-tui-bridge`). Reaktiveres etter Fase 8 + første kunde hvis behovet melder seg igjen — flyttes da til `OSVauco/tui/`.
|
Lokal TUI-plan ble løst av OPAX + Cloud Shell + Gemini TUI. Koden ligger i arkiv (`vauco-gemini-tui-bridge`). Reaktiveres som **OX1b** — embedded terminal i operator hub — når OX1a (Cloud Build widget) er live.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*OSVauco | propane-will-491900-m5 | us-central1 | Autoritativ fra 2026-05-31*
|
*OSVauco | propane-will-491900-m5 | us-central1 | Autoritativ fra 2026-05-31 | Oppdatert 2026-06-10*
|
||||||
|
|
|
||||||
103
docs/ROADMAP.md
103
docs/ROADMAP.md
|
|
@ -22,65 +22,43 @@
|
||||||
## NOW — Aktiv akkurat nå
|
## NOW — Aktiv akkurat nå
|
||||||
|
|
||||||
- [x] **K2 — AGENT_RULEBOOK retting**
|
- [x] **K2 — AGENT_RULEBOOK retting**
|
||||||
- Region → `us-central1`, modell → `gemini-2.5-pro`, MCP_SERVICE → `osvauco-agent`
|
- [x] **F8 — End-to-end test via opax.vauco.no** ✅
|
||||||
- Done når: AGENT_RULEBOOK matcher MASTERPLAN §6 og §9
|
|
||||||
- [x] **F8 — End-to-end test via opax.vauco.no**
|
|
||||||
- Cloud Run `/health` ✅, IAP blokk ✅
|
|
||||||
- browser-login → chat → svar ✅
|
|
||||||
- HITL gate: `FASE8 APPROVED` ✅
|
|
||||||
- [x] **CG6 — Modulært drag+collapse dashboard + nye billing-endepunkter** · 2026-06-10
|
- [x] **CG6 — Modulært drag+collapse dashboard + nye billing-endepunkter** · 2026-06-10
|
||||||
- `/billing/anomalies` ✅ — live, henter ekte BigQuery-data
|
- [x] **CG3e — Token-logging til BQ med full CG4-labeling** · 2026-06-10
|
||||||
- `/billing/history` ✅ — daglig MTD-historikk for bar-chart
|
|
||||||
- `/billing/budget` GET+POST ✅ — localStorage frontend, in-memory backend
|
|
||||||
- Alle dashboard-moduler draggable + collapsible + layout persistert i localStorage
|
|
||||||
- Compute Engine SKU-duplikater fikset — grupperes nå per tjeneste
|
|
||||||
- TODO Fase-C: `/billing/budget` migreres til Firestore per bruker
|
|
||||||
- [x] **CG3e — Tokenmeter: token-logging til BigQuery** · 2026-06-10
|
|
||||||
- `token_logger.py`: utvidet schema med `module_name`, `caller_type`, `session_id`
|
|
||||||
- `agent.py`: labeling `jason/light` | `jason/heavy`, `caller_type` propagert fra call-site
|
|
||||||
- BQ-tabell opprettes automatisk ved oppstart (`create_bq_table_if_not_exists()`)
|
|
||||||
- `/billing/tokens/summary` endepunkt finnes ✅ — vil nå få data
|
|
||||||
- Tokenkortet på dashbordet vil vise data ved neste agent-kall
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## NEXT — Neste opp (etter NOW)
|
## NEXT — Neste opp
|
||||||
|
|
||||||
### vauco.no salgsportal (V-spor)
|
### vauco.no salgsportal (V-spor)
|
||||||
> **ARKITEKTURVALG 2026-06-05:** vauco.no hostes på **GCP** (GCS static bucket + global HTTPS load balancer + Cloud CDN), IKKE GitHub Pages. Stack: bucket `vauco-site-public` → backend-bucket → url-map → managed SSL → global IP **34.13.124.217**.
|
- [x] **V1a–V1d** — vauco.no LIVE (GCS+LB, SSL ACTIVE) · 2026-06-05
|
||||||
- [x] **V1a** — Opprett `vauco-saas/vauco-site` (public repo) · 2026-06-05
|
|
||||||
- [x] **V1b** — Bygg MVP: hero + modul-grid + om-oss + kontakt + personvern + vilkår · 2026-06-05
|
|
||||||
- [x] **V1c** — DNS i Proisp: apex `vauco.no` + `www` A-record → 34.13.124.217 · 2026-06-05
|
|
||||||
- [x] **V1d** — V1 LIVE på https://vauco.no (GCS+LB, SSL ACTIVE) · 2026-06-05
|
|
||||||
- [ ] **V1e** — Sett opp SPF + DKIM + DMARC TXT-records på `vauco.no`
|
- [ ] **V1e** — Sett opp SPF + DKIM + DMARC TXT-records på `vauco.no`
|
||||||
|
|
||||||
### CostGuard Strategi & Arkitektur
|
### CostGuard frontend
|
||||||
|
- [x] **CG3a–CG3d** — costguard.html, CNAME, OAuth-flow ✅
|
||||||
- **Dobbelt formål:** Egenbruk (intern kostnadsovervåkning) + Salgsmodus (kundedemoer og pitch)
|
|
||||||
- **Modellstrategi:** `gemini-2.5-pro` for high-touch, Flash-modell (fremtidig) for bakgrunnsoppgaver
|
|
||||||
- **Hierarkisk koststruktur:** Kostnader grupperes per tjeneste (ikke flate SKU-labels)
|
|
||||||
- **Token-logging:** All AI-bruk logges til `llm_token_usage`-tabell med full labeling
|
|
||||||
|
|
||||||
### CostGuard frontend wiring
|
|
||||||
- [x] **CG3a** — Bygg `static/costguard.html`
|
|
||||||
- [x] **CG3b** — Sett CNAME `costguard.oss.vauco.no` → Cloud Run
|
|
||||||
- [x] **CG3c** — Verifiser `/static/costguard.html` via Cloud Run
|
|
||||||
- [x] **CG3d** — Test OAuth-flow
|
|
||||||
- [ ] **OQ-21** — Bygg `app.threadstone.vauco.no` eller fjern CNAME
|
- [ ] **OQ-21** — Bygg `app.threadstone.vauco.no` eller fjern CNAME
|
||||||
|
|
||||||
### CG4 — Token Intelligence (neste etter CG3e)
|
### CG4 — Token Intelligence
|
||||||
|
|
||||||
> Bygger på `llm_token_usage`-rådata fra CG3e. Formål: full synlighet på AI-kostnader per modul,
|
> Bygger på `llm_token_usage`-rådata fra CG3e. Trigger: minst 50 loggede kall.
|
||||||
> prosjektestimering FØR oppgave startes, og korrekt prising av oppdrag til kunder.
|
|
||||||
|
|
||||||
| # | Oppgave | Formål |
|
| # | Oppgave | Formål |
|
||||||
|---|---------|--------|
|
|---|---------|--------|
|
||||||
| CG4a | `/billing/tokens/by-module` endepunkt — aggreger token-bruk per `module_name` og `caller_type` | Vise hvilken komponent som spiser tokens |
|
| CG4a | `/billing/tokens/by-module` — aggreger per `module_name` + `caller_type` | Hvilken komponent spiser tokens |
|
||||||
| CG4b | Dashboard-utvidelse: tokenmodul viser breakdown per `jason/light`, `jason/heavy`, `costguard`, `billing_agent`, `cli/gemini-tui` | Visuell oversikt per kaller |
|
| CG4b | Dashboard breakdown: `jason/light`, `jason/heavy`, `costguard`, `billing_agent`, `cli/gemini-tui` | Visuell oversikt |
|
||||||
| CG4c | Prosjektestimator: historisk snitt-tokens per oppgavetype × kompleksitetsfaktor → estimert kostnad i USD før oppgave startes | Estimer hva et prosjekt koster FØR det bygges |
|
| CG4c | Prosjektestimator: historisk snitt-tokens × kompleksitetsfaktor → USD-estimat FØR oppgave startes | Estimer kostnad før bygg |
|
||||||
| CG4d | Kundeprisingskalkulator: basert på token-historikk per modul → autogenerer prisforslag per oppdrag (basis for CostGuard-faktura til kunder) | Korrekt prising av AI-arbeid |
|
| CG4d | Kundeprisingskalkulator: token-historikk → autogenerer prisforslag per oppdrag | Korrekt prising av AI-arbeid |
|
||||||
|
|
||||||
**Trigger for CG4:** CG3e live og produserer data (minst 50 loggede kall).
|
### OX1 — Operator Hub fullføring
|
||||||
|
|
||||||
|
> Mål: `opax.vauco.no` blir Chris sitt komplette cockpit — aldri trenger VM igjen.
|
||||||
|
|
||||||
|
| # | Oppgave | Formål |
|
||||||
|
|---|---------|--------|
|
||||||
|
| OX1a | Cloud Build live-widget i `opax.html` — spinner → ✅/❌ ved push til main | Se deploy-status live |
|
||||||
|
| OX1b | Embedded terminal / TUI-vindu i operator hub (reaktiver `vauco-gemini-tui-bridge` som iframe/xterm.js) | CLI-tilgang uten VM |
|
||||||
|
| OX1c | Jason-chat som primærgrensesnitt i opax.html (erstatter VM-tilkobling for daglig drift) | Full kontroll fra browser |
|
||||||
|
| OX1d | `/opax/build-status` endepunkt mot Cloud Build API | Backend for OX1a |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -92,6 +70,21 @@
|
||||||
- [ ] **DX5** — Dialogflow Messenger live på costguard-landingssiden
|
- [ ] **DX5** — Dialogflow Messenger live på costguard-landingssiden
|
||||||
- [ ] **ML-2** — Adaptiv intelligens (trigger: >500 telemetri-kall)
|
- [ ] **ML-2** — Adaptiv intelligens (trigger: >500 telemetri-kall)
|
||||||
|
|
||||||
|
### ML-3 — Gemma-migrering (lokal modell)
|
||||||
|
|
||||||
|
> **Strategi:** Kjør ut Vertex AI-kreditter fullt ut. Bygg Gemmas «verden» simultant.
|
||||||
|
> Når kreditter er brukt opp → Gemma tar over internt. Kunder fortsetter på Gemini via Vertex.
|
||||||
|
> **Trigger:** Vertex-kreditter < 20% ELLER første betalende kunde er onboardet.
|
||||||
|
|
||||||
|
| # | Oppgave | Detaljer |
|
||||||
|
|---|---------|----------|
|
||||||
|
| ML-3a | Klargjør GCP GPU-VM: `g2-standard-4` Spot (1× L4, 24GB VRAM, ~$120–150/mnd) | Ollama + Gemma 4 12B int4 |
|
||||||
|
| ML-3b | **Simultant nå:** Bygg Gemma-kontekst-pakke — last inn MASTERPLAN, ROADMAP, HANDOFF, alle sesjonsprotokoller, AGENT_RULEBOOK som system-prompt/RAG for Gemma | Gemma er ikke dum når den starter — forstår Vauco fra dag 1 |
|
||||||
|
| ML-3c | Migrer `agent.py` til hybrid: Gemma internt (Jason/Chris-bruk), Gemini via Vertex for kunder | Tofase-arkitektur |
|
||||||
|
| ML-3d | Fine-tune Gemma 4 på Vauco-sesjonsdata (protokoller + MASTERPLAN + kundeinteraksjoner) | Jason blir virkelig autonom |
|
||||||
|
|
||||||
|
> **ML-3b starter NESTE SESJON** — uavhengig av trigger. Kontekstpakken bygges parallelt med alt annet.
|
||||||
|
|
||||||
### Modul #2 — Threadstone
|
### Modul #2 — Threadstone
|
||||||
- [ ] **T1** — Konsolider `threadstone-instructions` → `OSVauco/docs/threadstone/`
|
- [ ] **T1** — Konsolider `threadstone-instructions` → `OSVauco/docs/threadstone/`
|
||||||
- [ ] **T2** — Bygg `app.threadstone.vauco.no` — migrer fra GitHub Pages til GCP
|
- [ ] **T2** — Bygg `app.threadstone.vauco.no` — migrer fra GitHub Pages til GCP
|
||||||
|
|
@ -103,8 +96,7 @@
|
||||||
- [ ] **C2** — Multi-tenant stamp-out (`scripts/onboard-client.sh`)
|
- [ ] **C2** — Multi-tenant stamp-out (`scripts/onboard-client.sh`)
|
||||||
- [ ] **C3** — BQ-2 / Looker Studio kobling
|
- [ ] **C3** — BQ-2 / Looker Studio kobling
|
||||||
- [ ] **CG6-Fase-C** — Migrer `/billing/budget` fra in-memory til Firestore per bruker
|
- [ ] **CG6-Fase-C** — Migrer `/billing/budget` fra in-memory til Firestore per bruker
|
||||||
- [ ] Full boot cycle acceptance test (automatisert)
|
- [ ] **CI1** — MCP-native CI/CD: GCP Cloud Build/Deploy
|
||||||
- [ ] **CI1** — MCP-native CI/CD: GCP Cloud Build/Deploy, fjern GitHub-avhengighet for deploy
|
|
||||||
|
|
||||||
### OPAX-evolusjon
|
### OPAX-evolusjon
|
||||||
- [ ] Voice-input på `opax.vauco.no` (Web Speech API → Whisper)
|
- [ ] Voice-input på `opax.vauco.no` (Web Speech API → Whisper)
|
||||||
|
|
@ -125,7 +117,7 @@
|
||||||
|
|
||||||
## KJENTE HULL
|
## KJENTE HULL
|
||||||
|
|
||||||
- [x] **OQ-23** — `vauco.no` LIVE (GCS+LB) · 2026-06-05
|
- [x] **OQ-23** — `vauco.no` LIVE · 2026-06-05
|
||||||
- [ ] **OQ-24** — SPF/DKIM/DMARC mangler på `vauco.no` → V1e
|
- [ ] **OQ-24** — SPF/DKIM/DMARC mangler på `vauco.no` → V1e
|
||||||
- [x] **OQ-25** — Personvern + vilkår publisert · 2026-06-05
|
- [x] **OQ-25** — Personvern + vilkår publisert · 2026-06-05
|
||||||
- [ ] **OQ-26** — Ingen statuspage → etter første kunde
|
- [ ] **OQ-26** — Ingen statuspage → etter første kunde
|
||||||
|
|
@ -134,23 +126,16 @@
|
||||||
|
|
||||||
## ✅ Fullførte faser
|
## ✅ Fullførte faser
|
||||||
|
|
||||||
- [x] **Phase 0** — Baseline: repo, `.gemini/`-struktur, boot-script, sesjonslogg
|
- [x] **Phase 0–7** — Baseline, domener, Cloud Run, IAP, CI/CD, RAG · 2026-05-21–30
|
||||||
- [x] **Phase 1** — Domain/protocol locking, `ARCHITECTURE.md`
|
- [x] **GDrive/GitHub paritet** · 2026-05-25
|
||||||
- [x] **Phase 2** — `opax.vauco.no` LIVE: Cloud Run, CNAME, SSL · 2026-05-21
|
- [x] **Repo-konsolidering trinn 1** · 2026-05-27
|
||||||
- [x] **Phase 3** — Nemotron session loop, `docs/TODO.md`, Phase 1+2 rapport · 2026-05-21
|
|
||||||
- [x] **Phase 4** — Docs hardening · 2026-05-25
|
|
||||||
- [x] **Phase 5** — Cloud Run IAM-autentisering · 2026-05-25
|
|
||||||
- [x] **Phase 5 IAP** — IAP migrering til GCP Load Balancer (IP 34.98.77.173) · 2026-05-30
|
|
||||||
- [x] **Phase 6** — CI/CD: auto-deploy på push til main · 2026-05-30
|
|
||||||
- [x] **Phase 7** — RAG corpus `osvauco-corpus` populert i `europe-west4` · 2026-05-30
|
|
||||||
- [x] **GDrive/GitHub paritet** — mirror-script, PS1 prompt, IAM/Secrets · 2026-05-25
|
|
||||||
- [x] **Repo-konsolidering trinn 1** — arkivert 3 repos · 2026-05-27
|
|
||||||
- [x] **Terraform bootstrap-modul** · 2026-05-26
|
- [x] **Terraform bootstrap-modul** · 2026-05-26
|
||||||
- [x] **OPAX operator hub** — `static/opax.html` deployet · 2026-05-31
|
- [x] **OPAX operator hub** · 2026-05-31
|
||||||
- [x] **K1 — Repo-konsolidering** · 2026-06-09
|
- [x] **K1 — Repo-konsolidering** · 2026-06-09
|
||||||
- [x] **K3 — Fiks nattlig GDrive backup** · 2026-06-09
|
- [x] **K3 — Fiks nattlig GDrive backup** · 2026-06-09
|
||||||
- [x] **CG6 — Modulært dashboard, anomalier, historikk, budsjett** · 2026-06-10
|
- [x] **CG6 — Modulært dashboard, anomalier, historikk, budsjett** · 2026-06-10
|
||||||
- [x] **CG3e — Token-logging til BQ med full CG4-labeling** · 2026-06-10
|
- [x] **CG3e — Token-logging til BQ med full CG4-labeling** · 2026-06-10
|
||||||
|
- [x] **ML-3 plan — Gemma-migrering dokumentert, kontekstbygging planlagt** · 2026-06-10
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user