OSVauco/docs/vauco-site/DESIGN.md
chrischristiansen-glitch 70eced385f
chore(docs): konsolider MASTERPLAN/ROADMAP/HANDOFF til én sannhet (#5)
* chore(docs): konsolider MASTERPLAN/ROADMAP/HANDOFF til én sannhet

Bakgrunn: revisjon 2026-05-31 avdekket at vi hadde to MASTERPLAN-er som
ikke matchet, en deprecated VAUCO_OS_ROADMAP som fortsatt ble brukt, tre
parallelle HANDOFF-filer, AGENT_RULEBOOK med feil region (us-central1)
og feil MCP_SERVICE (opax-mcp-core), og committed Git merge-konflikt-
markører i selve session-loggen.

Endringer:
- Ny docs/MASTERPLAN.md (autoritativ, erstatter både rot-MASTERPLAN.md og
  forrige docs-versjon). Tydeligere hierarki:
    Vauco AS → Vauco OS (plattform) → OPAX (engine) → Moduler
- Ny docs/ROADMAP.md (erstatter docs/VAUCO_OS_ROADMAP.md som var deprecated)
- Ny docs/HANDOFF.md — én fil, overskrives per sesjon (per planregelen)
- Oppdatert docs/AGENT_RULEBOOK.md:
    Region: us-central1 → europe-west1
    AI-modell: gemini-2.5-pro (midlertidig, venter på Claude EU-kvote)
    Vertex AI loc: europe-west1
    MCP_SERVICE: opax-mcp-core → osvauco-agent
- Fjernet Git merge-konfliktmarkører i docs/OSVAUCO_OPAX_SESSION_LOG.md
- Flyttet HANDOFF_20260526/20260531/20260531_claude47 → docs/archive/handoffs/
- Slettet duplikat-filer i docs/archive/ (Cost_Management_Rules,
  GCPBestPractices, OSVAUCO_OPAX_SESSION_LOG — alle dekket av live-filer)
- Slettet rot-MASTERPLAN.md (erstattet av peker-fil), VAUCO_OS_ROADMAP.md,
  Procfile (legacy fra POC, ikke brukt av Cloud Run)
- docs/TODO.md → peker-fil mot ROADMAP

Repo-strategi (fra MASTERPLAN §3):
- 4 aktive repos: OSVauco (mono), vauco-bootstrap, threadstone-landing,
  vauco-saas.github.io
- 3 arkiverte: vauco-os, vauco-gemini-tui-bridge, command-hub
- 2 parkerte (lever videre, ikke aktivt jobb): threadstone-instructions,
  deep-dream — venter på hver sin trigger (Threadstone-app pilot / første
  betalende kunde på CostGuard)

Etter merge: neste oppgave er F8 (browser-end-to-end på opax.vauco.no).

Co-authored-by: Perplexity <noreply@perplexity.ai>

* docs: inkorporer vauco.no salgsportal (apex) i planen

Hovedhull avdekket: vauco.no viser fortsatt Proisp 'Under construction'
placeholder. Planen manglet helt et spor for apex-siden — bedriftens
ansikt utad og portalen som leder besøkende til riktig modul.

MASTERPLAN endringer:
- §1 Plattformhierarki: utvidet fra 3 til 4 nivåer; vauco.no apex
  lagt til som egen kunde-flate (over Vauco OS i hierarkiet)
- §2 Domener: vauco.no/www.vauco.no markert som placeholder (skal
  erstattes), reserverte subdomener (status./docs./careers.)
  dokumentert, email-infra-status notert
- §3 Repos: vauco-site lagt til som 5. aktive repo (public,
  GitHub Pages — eget repo fordi sidens kildekode skal være public
  mens mono-repoet må forbli privat)
- §4b NY: vauco.no salgsportal — full spec for formål, IA,
  visuell retning, salgs-flow, teknisk stack, versjons-evolusjon
  V1 → V4
- §11 Kjente hull: OQ-23..OQ-26 lagt til (apex-placeholder,
  SPF/DKIM/DMARC, personvern/vilkår, statuspage)

ROADMAP endringer:
- NEXT-seksjon utvidet med V-spor: V1a–V1e (vauco.no MVP)
  kan kjøres parallelt med CG3
- KJENTE HULL-seksjon lagt til

HANDOFF oppdatert med oppsummering av nye tillegg.

NY FIL: docs/vauco-site/DESIGN.md
- Klar-til-plukk-opp build-spec for V1 MVP
- Sidekart, copy-utkast, farger, typografi, layout, performance-mål
- DNS-tabell for å flytte vauco.no fra Proisp-parking til GitHub Pages
- SPF/DKIM/DMARC oppskrift
- Bygg-rekkefølge med konkrete gh/git-kommandoer
- Akseptkriterier for V1 APPROVED

Etter merge har vi to parallelle spor:
- Spor A: F8 (OPAX end-to-end) + CG3 (CostGuard frontend)
- Spor B: V1 (vauco.no MVP)

Begge har egne HITL gates.

* chore(scripts): konsolider boot/opax/opax2 + hotkeys + README

- boot.sh: ny daglig VM-starter (rename fra osvauco-opax-boot.sh)
  * auto-fornyer gcloud auth + ADC (>8t)
  * git pull current branch
  * spør: opax (Gemini 2.5 Pro) / opax2 (Claude) / hopp over
  * setter aliaser: pf hc st at ca cl cg costs ms logg mp rl ho rb sl osv sol
  * printer NESTE OPPGAVE fra docs/HANDOFF.md
- opax.sh: region europe-west1, model gemini-2.5-pro, peker på docs/HANDOFF.md
- opax2.sh: peker på docs/HANDOFF.md (ikke arkivert handoff), advarer om kvote
- scripts/README.md: hotkey-tabell + bashrc-snippet + lock-tabell
- Slettet: scripts/archived/ (7 filer i git-historikk), osvauco-health-check.sh

* fix(scripts): OS VAUCO-header, github-status, auto-context, exit-hook

boot.sh:
- Ny header: OS VAUCO (stort) + Vauco OS subtitle
- [ REPO + GITHUB ] viser: fetch, pull, ahead/behind, uncommitted, last commit,
  gh CLI auth-status, åpne PRs på branchen
- 'ghs' alias = gh pr list + gh issue list
- NESTE OPPGAVE regex case-insensitive (matcher 'NESTE OPPGAVE' og 'Neste oppgave')

opax.sh / opax2.sh:
- Ny header: OS VAUCO / OPAX (cyan) og OS VAUCO / OPAX2 (Claude) (magenta)
- Sjekker MASTERPLAN + ROADMAP + RULEBOOK + HANDOFF + gh auth i preflight
- Auto-laster RULEBOOK + MASTERPLAN + ROADMAP + HANDOFF inn i CLI som kontekst
  ved oppstart (gemini -p / claude -p, fallback til stdin)
- Exit-hook: spør 'Vil du logge sesjonen nå?' når TUI avsluttes, kjører sol()
- ABSOLUTT REGEL (ingen handling uten PLAN APPROVED) injiseres i kontekst

* fix(scripts): NESTE OPPGAVE-parsing + gemini sandbox workaround

- Bytt awk(IGNORECASE) → sed-pipeline som funker på både gawk og mawk
  (HANDOFF.md har '## 🔄 Neste oppgave: ...' — emoji + capitalized)
- Flytt auto-context fra /tmp/ → $OSVAUCO_DIR/.gemini/context/ og .claude/context/
  Gemini CLI sandboxer alt utenfor workspace; /tmp er blokkert.
- Send relativ sti (.gemini/context/session-PID.md) til 'gemini -p @...'
- Rydd context-filer eldre enn 1 dag ved oppstart
- .gitignore: ekskluder .gemini/context/ + .claude/context/

* fix(scripts): flytt context til tmp-context/ (Gemini respekterer .gitignore)

Gemini CLI nekter å lese filer som er git-ignored. .gemini/context/ var
ignored, så context-fil ble blokkert.

- Ny mappe: tmp-context/ (innenfor workspace, ikke gitignored som dir)
- Kun session-*.md er gitignored (selve filene), ikke mappen
- tmp-context/README.md beholder mappen i git
- Ny .geminiignore: lar Gemini lese tmp-context/ men ignorerer
  node_modules, .terraform, dist osv.

* fix(scripts): bytt context-filnavn til ctx-*.md (Gemini respekterer .gitignore)

Gemini CLI blokkerer enhver fil som matcher et .gitignore-mønster, selv
om den ikke er i .geminiignore. Vi hadde 'tmp-context/session-*.md' i
.gitignore som blokkerte session-PID.md.

Løsning:
- Fjern session-pattern fra .gitignore helt
- Bytt filnavn: session-$$.md → ctx-$$.md
- Mappen ryddes uansett av find -mtime +1 -delete ved hver opax-oppstart
- Kommentar i .gitignore forklarer hvorfor og hvordan skippe lokalt

* fix(scripts): start gemini/claude TUI uten -p (TUI bombet pga non-interactive mode)

Problem: 'gemini -p "..."' kjører non-interactive (svarer + avslutter) —
det er derfor TUI ikke kom opp etter at vi la til auto-context.

Løsning: Gemini CLI auto-laster .gemini/GEMINI.md ved hver TUI-start.
- Oppdaterte .gemini/GEMINI.md: model=gemini-2.5-pro (var Claude 4.6),
  boot-prompt peker på MASTERPLAN/ROADMAP/HANDOFF (var slettet ROADMAP)
- opax.sh og opax2.sh: fjernet -p flag, kjører bare 'gemini'/'claude' = full TUI
- Slettet tmp-context/ (ikke nødvendig — GEMINI.md gjør jobben)
- Modellen får LOCKED DEFS automatisk fra GEMINI.md
- For full kontekst-load, skriv 'BOOT' i TUI

* chore(session): logg 20260531-153243 — git pull origin chore/consolidate-2026-05-31

* feat(opax): auto-kjør BOOT-prompt ved hver TUI-start

---------

Co-authored-by: Perplexity <noreply@perplexity.ai>
Co-authored-by: Chris Christiansen <chris.christian...@>
2026-05-31 17:57:13 +02:00

253 lines
9.2 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.no — Design & build-spec for V1 (MVP)
**Eier:** Chris Christiansen
**Sist oppdatert:** 2026-05-31
**Status:** 🟡 Spec klar — venter på V1a (repo-opprettelse)
**Trigger for å starte build:** Etter Fase 8 approved, eller parallelt hvis Chris vil
> **Plassering av denne filen:** Mens `vauco-site`-repoet ikke finnes ennå, lever spec'en her i OSVauco. Når `vauco-saas/vauco-site` opprettes (V1a), flyttes denne filen dit som `README.md` eller `DESIGN.md`.
---
## 1. Hva siden er
Vauco AS sin offisielle bedriftsside på `vauco.no`. Ett formål: **lede besøkende videre til riktig salgs-modul** og samtidig svare på "hvem er Vauco?".
Det er ikke en produktside. Det er ikke en blogg. Det er en portal.
---
## 2. Sidekart V1
```
vauco.no/ (hovedside — én lang side, ankerlenker)
├── #hero
├── #moduler Grid av salgs-moduler
├── #hvorfor
├── #om
├── #kontakt
└── footer
vauco.no/personvern.html GDPR personvernerklæring
vauco.no/vilkar.html Standardvilkår for kunder
vauco.no/sitemap.xml
vauco.no/robots.txt
```
V1 er **én HTML-fil** + 2 statiske underdokumenter. Ikke noe mer.
---
## 3. Innhold per seksjon (utkast — Chris godkjenner copy)
### #hero
- **H1:** "Vauco bygger AI-moduler som leverer målbar verdi."
- **Sub:** "Norskutviklet. Drevet på Google Cloud. Lansert av operatører som faktisk har drevet plattformer i produksjon."
- **CTA primær:** "Se CostGuard →" (anchor til #moduler eller direkte til costguard.oss.vauco.no)
- **CTA sekundær:** "Snakk med Chris →" (mailto:chris.christiansen@vauco.no)
### #moduler (kjernen — grid med kort)
| Kort | Status | Lenke |
|------|--------|-------|
| **CostGuard** — AI-drevet GCP-kostnadsovervåkning. Stopp surprise-regninger før de skjer. | 🟢 Live | costguard.oss.vauco.no |
| **Threadstone** — Generativ AI-assistent for innhold som leverer. | 🟡 I pilot | threadstone.vauco.no |
| **Modul #3***Coming soon.* Meld deg på for tidlig tilgang. | ⏳ Q4 2026 | (mailto med subject "Modul 3 interesse") |
### #hvorfor (3 punkter, ikke flere)
1. **Norsk eierskap, norsk drift.** Data forblir i EU. Vauco AS er norsk-registrert (org.nr 935 989 779).
2. **GCP-ekspertise i bunn.** Vi har bygget og driftet Google Cloud-plattformer profesjonelt. Det er ingen tilfeldighet at CostGuard er første produkt.
3. **AI som ikke er hype.** Hver modul har en konkret jobb og et målbart utfall. Hvis vi ikke kan vise ROI, lanserer vi den ikke.
### #om
- Bilde av Chris (kan tas opp senere — V1 kan kjøre uten)
- Kort tekst: "Vauco AS er grunnlagt av Chris Christiansen i Oslo, 2026. Vi bygger AI-moduler for nordiske bedrifter."
- LinkedIn-lenke
### #kontakt
- `chris.christiansen@vauco.no`
- LinkedIn
- Oslo, Norge
- (Telefon kun ved forespørsel — ikke list åpent)
### footer
- Vauco AS · Org.nr 935 989 779
- Lenker: Personvern · Vilkår · Status (placeholder, peker til status.vauco.no når live)
- © 2026 Vauco AS
---
## 4. Visuell retning
### Stil-anker
Bygger videre på `threadstone-landing/index.html` sin estetikk:
- Mørk bakgrunn (`#0a0a0a` eller lignende)
- Lys tekst (`#f5f5f5`)
- Monospace for kodeaksenter / labels / footer (`'JetBrains Mono'`, `'SF Mono'`, fallback `ui-monospace`)
- Sans-serif for body: Inter / SF Pro Display / system-ui
### Farger
| Rolle | Hex | Bruk |
|-------|-----|------|
| Bakgrunn | `#0a0a0a` | `<body>` |
| Tekst primær | `#f5f5f5` | H1, body |
| Tekst sekundær | `#a0a0a0` | Sub-text, captions |
| Aksent — Vauco | `#e8d4a3` (varm sand/gull, samme som Threadstone) | Lenker, CTA-knapp |
| Aksent — CostGuard | TBD (foreslå grønn/blå, ikke samme som Vauco-aksent) | Kun på CostGuard-kortet |
| Aksent — Threadstone | TBD (foreslå lilla/rose) | Kun på Threadstone-kortet |
| Border | `rgba(255,255,255,0.08)` | Kort-borders |
### Typografi
- H1: 4864px, weight 600, line-height 1.1
- H2: 3240px, weight 500
- Body: 1618px, line-height 1.6
- Monospace caption: 13px, uppercase letter-spacing 0.1em
### Layout
- Maks bredde: 1100px, sentrert
- Padding: 24px på mobil, 48px på desktop
- Grid på #moduler: 1 kolonne mobil, 2 kolonner tablet, 3 kolonner desktop
- Vertikal rytme: 96px mellom hovedseksjoner
### Mobile-first
Chris demoer fra telefon. Side må fungere perfekt på iPhone 13/14/15. Test både portrait og landscape.
### Performance-mål
- Lighthouse: Performance ≥95, Accessibility ≥95, Best Practices ≥95, SEO ≥95
- Total page size <100KB (uten bilder)
- Ingen tracking-piksler i V1
- Ingen tredjepartsfonter bruk system-stack med fallback (eller selvhostet Inter via woff2)
---
## 5. Teknisk
### Stack
- **HTML5 + CSS3** (vanilj ingen framework)
- **Ingen JavaScript** i V1 (eller maks 1 KB for smooth-scroll ankerlenker)
- **GitHub Pages** for hosting
- **GitHub Actions** for valider-og-deploy (auto-deploy push til main)
### Filstruktur i `vauco-site/` repo
```
vauco-site/
├── index.html
├── personvern.html
├── vilkar.html
├── style.css (kan inline-es i index.html for V1)
├── assets/
│ ├── favicon.svg
│ ├── og-image.png (1200x630, Open Graph)
│ └── (evt. Chris-portrett)
├── CNAME (innhold: vauco.no)
├── robots.txt
├── sitemap.xml
└── README.md (denne filen flyttes hit)
```
### Meta-tags (kritisk for SEO + sosial deling)
```html
<title>Vauco — AI-moduler som leverer målbar verdi</title>
<meta name="description" content="Vauco AS bygger AI-moduler for nordiske bedrifter. CostGuard for GCP-kostnader. Threadstone for innhold.">
<meta property="og:title" content="Vauco — AI-moduler som leverer">
<meta property="og:description" content="Norskutviklet. Drevet på Google Cloud. Norsk eierskap.">
<meta property="og:image" content="https://vauco.no/assets/og-image.png">
<meta property="og:url" content="https://vauco.no">
<meta name="twitter:card" content="summary_large_image">
<link rel="canonical" href="https://vauco.no">
```
### DNS-endringer (i Proisp)
| Record | Type | Verdi |
|--------|------|-------|
| `@` (apex) | A | `185.199.108.153` (GitHub Pages) |
| `@` (apex) | A | `185.199.109.153` |
| `@` (apex) | A | `185.199.110.153` |
| `@` (apex) | A | `185.199.111.153` |
| `www` | CNAME | `vauco-saas.github.io.` |
**Eksisterende A-records (Proisp-parking 104.37.38.95, 104.37.39.71) må fjernes.**
### Email-records (V1e — samme runde)
| Record | Type | Verdi |
|--------|------|-------|
| `@` | TXT | `"v=spf1 include:_spf.google.com ~all"` |
| `google._domainkey` | TXT | (hent fra Google Workspace Admin Apps Gmail Authenticate email) |
| `_dmarc` | TXT | `"v=DMARC1; p=quarantine; rua=mailto:dmarc@vauco.no; pct=100"` |
---
## 6. Akseptkriterier for V1
Før V1 kan kalles ferdig:
- [ ] `https://vauco.no` viser ny side (ikke "Under construction")
- [ ] `https://www.vauco.no` viser samme side (eller redirect til apex)
- [ ] Lighthouse mobil: alle 4 95
- [ ] OG-bilde rendrer korrekt i LinkedIn-deling (test via [LinkedIn Post Inspector](https://www.linkedin.com/post-inspector/))
- [ ] CostGuard-kort lenker til `costguard.oss.vauco.no` og kortet åpnes som ny tab
- [ ] Threadstone-kort lenker til `threadstone.vauco.no`
- [ ] `personvern.html` og `vilkar.html` finnes og er lenket fra footer
- [ ] SPF + DKIM + DMARC verifisert via [mxtoolbox.com](https://mxtoolbox.com) alle grønne
- [ ] Sitemap pinget til Google Search Console
- [ ] Chris signer av visuelt `V1 APPROVED`
---
## 7. V2 og videre — ikke bygg ennå
Bare for kontekst:
- **V2:** CostGuard ROI-kalkulator inline siden, første case study
- **V3:** Blogg/innsikter (`vauco.no/innsikt/`), kundereferanser, live status-widget
- **V4:** `/en` engelsk versjon, Proof of Curiosity i footer
---
## 8. Bygg-rekkefølge for V1 (når du eller en agent starter)
```bash
# 1. Opprett repo
gh repo create vauco-saas/vauco-site --public \
--description "vauco.no — Vauco AS salgsportal" \
--add-readme
# 2. Klon, lag struktur
git clone https://github.com/vauco-saas/vauco-site.git
cd vauco-site
# (kopier denne DESIGN.md inn som README.md)
# (bygg index.html, personvern.html, vilkar.html, CNAME, robots.txt, sitemap.xml)
# 3. Sett CNAME-fil
echo "vauco.no" > CNAME
# 4. Push
git add -A
git commit -m "feat: Vauco AS apex-side V1 MVP"
git push origin main
# 5. Aktiver Pages: Settings → Pages → Source: main / root
# 6. Vent på SSL-sertifikat (kan ta 24t første gang)
# 7. Endre DNS i Proisp (se tabell §5 over)
# 8. Vent på DNS-propagering, verifiser med:
dig +short vauco.no A
# Forventet: 185.199.108-111.153
# 9. Sjekk SSL:
curl -sI https://vauco.no | head -5
# Forventet: HTTP/2 200, server: GitHub.com
```
---
## 9. Referanser
- Stilanker: `threadstone-landing/index.html` (samme org)
- Designinspirasjon: [linear.app](https://linear.app), [resend.com](https://resend.com), [vercel.com](https://vercel.com)
- GDPR-guide for personvernerklæring: [Datatilsynet — krav til personvernerklæring](https://www.datatilsynet.no/)
- GitHub Pages custom domain: [docs.github.com/pages/configuring-a-custom-domain](https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site)
---
*Denne spec'en flyttes til `vauco-saas/vauco-site/README.md` så snart V1a er gjennomført.*