diff --git a/.gdrive-mirror-state b/.gdrive-mirror-state new file mode 100644 index 0000000..85008a6 --- /dev/null +++ b/.gdrive-mirror-state @@ -0,0 +1,2 @@ +LAST_SYNC=2026-05-25T09:40 UTC +LAST_SHA=5728024 diff --git a/docs/GDRIVE_MIRROR_BOOT.md b/docs/GDRIVE_MIRROR_BOOT.md index fec222f..63fc57b 100644 --- a/docs/GDRIVE_MIRROR_BOOT.md +++ b/docs/GDRIVE_MIRROR_BOOT.md @@ -5,8 +5,8 @@ > GITHUB > GOOGLE DRIVE > ``` > GitHub (`OSVauco/main/docs/AGENT_RULEBOOK.md`) er **alltid** ground truth. -> Denne filen er en leseliste for agenter/tråder uten GitHub-connector (f.eks. Gemini GDrive-modus). -> Ved enhver konflikt: stol på GitHub. Oppdater denne filen etterpå. +> Denne filen er auto-generert av `sync-gdrive-mirror.sh`. +> Ved enhver konflikt: stol på GitHub. Oppdater ved å kjøre scriptet på nytt. --- @@ -14,82 +14,213 @@ ``` ╔══════════════════════════════════════════════════════════════╗ -║ SIST SYNKRONISERT FRA GITHUB: 2026-05-25T11:18 CEST ║ -║ Kilde: OSVauco/main/docs/AGENT_RULEBOOK.md (v1.2) ║ -║ Synkronisert av: OPS-Computer-Hub ║ +║ SIST SYNKRONISERT: 2026-05-25T09:40 UTC ║ +║ HEAD: 5728024 ║ +║ Kilde: OSVauco/main · Synkronisert av: sync-gdrive-mirror.sh ║ ╠══════════════════════════════════════════════════════════════╣ -║ ⚠️ TERSKEL: 12 TIMER (aktiv dev-runde) ║ -║ HVIS MER ENN 12T HAR GÅTT SIDEN OVENSTÅENDE TIDSPUNKT: ║ -║ → STOPP — filen er sannsynligvis utdatert. ║ -║ → Verifiser mot GitHub FØR du handler på instrukser. ║ +║ ⚠️ TERSKEL: 12 TIMER (aktiv dev-runde) ║ +║ HVIS MER ENN 12T HAR GÅTT: STOPP og verifiser mot GitHub ║ ╠══════════════════════════════════════════════════════════════╣ -║ VERIFISER HER: ║ -║ https://github.com/chrischristiansen-glitch/OSVauco/ ║ -║ blob/main/docs/AGENT_RULEBOOK.md ║ -╠══════════════════════════════════════════════════════════════╣ -║ OPPDATER DENNE FILEN: ║ -║ 1. Åpne lenken over ║ -║ 2. Sammenlign «Sist oppdatert»-dato i AGENT_RULEBOOK.md ║ -║ 3. Hvis nyere: last ned og erstatt denne filen i GDrive ║ +║ VERIFISER: https://github.com/chrischristiansen-glitch/ ║ +║ OSVauco/blob/main/docs/AGENT_RULEBOOK.md ║ ╚══════════════════════════════════════════════════════════════╝ ``` -> **Tommelfingerregel (dev-runde):** Filen er fersk i **12 timer**. Etter det — verifiser alltid. +--- + +## PROSJEKTINDEKS — AUTO-GENERERT 2026-05-25T09:40 UTC · HEAD 5728024 + --- -## CONNECTOR-GUIDE +## TODO -| Tråd/Verktøy | Connector tilgjengelig | Bruk | -|---|---|---| -| Perplexity Computer (OPS) | GitHub MCP ✅ | Les direkte fra `AGENT_RULEBOOK.md` på GitHub | -| Gemini CLI / Workstation | GDrive ✅ / GitHub ❌ | Les denne filen — verifiser staleness-varsel øverst | -| Claude (PLAN) | Varierer | Foretrekk GitHub hvis tilgjengelig, ellers GDrive | -| Nemotron / AUDIT | Varierer | Foretrekk GitHub hvis tilgjengelig, ellers GDrive | +# OSVauco / OPAX – TODO -**Når du bruker GDrive og det har gått >12 timer siden SIST SYNKRONISERT:** -- STOPP -- Følg lenken i staleness-varselet over -- Bekreft eller oppdater før du fortsetter +> Managed by PLAN thread. Update when phases move between sections. +> Last updated: 2026-05-25 --- -## INNHOLD — KOPI AV AGENT_RULEBOOK.md v1.2 (2026-05-21) +## NOW -> Kilde: https://github.com/chrischristiansen-glitch/OSVauco/blob/main/docs/AGENT_RULEBOOK.md +- [ ] **Phase 4** — Docs hardening: oppdater `LEARNINGS.md`, `SECRETS-SETUP.md`, `IAP-SETUP.md` med nåværende state. +- [ ] Verifiser at `source scripts/osvauco-opax-boot.sh` printer NESTE OPPGAVE i grønt (Cloud Shell). +- [ ] Legg til `## SLUTTRAPPORT – Phase 3` + `## NESTE OPPGAVE` blokk i `docs/OSVAUCO_OPAX_SESSION_LOG.md`. +- [ ] **GDrive backup — IAM-oppsett** (HITL: `IAM_GODKJENT` gitt 2026-05-25) + - Opprett service account: `vauco-gdrive-backup@propane-will-491900-m5.iam.gserviceaccount.com` + - Last ned JSON-nøkkel + - Del GDrive-mapper `vauco-mirror/` + `vauco-backup/` med service account (Editor) + - Se: `docs/GDRIVE_SETUP.md` for copy-paste-sekvens +- [ ] **GDrive backup — GitHub Secrets** (krever IAM-steget over) + - `RCLONE_GDRIVE_SA_JSON` — innhold av service account JSON + - `GDRIVE_BACKUP_FOLDER_ID` — mappe-ID for `vauco-backup/` fra GDrive URL + - Legg inn på: https://github.com/chrischristiansen-glitch/OSVauco/settings/secrets/actions +- [ ] **Første `mirror-sync`** — kjør etter merge for å opprette `.gdrive-mirror-state` og aktivere dashboard-status --- -### LOCK LIST — ALDRI ENDRE +## NEXT -| Parameter | Verdi | -|---|---| -| GCP Account | chris.christiansen@vauco.no | -| Forbudte kontoer | tinius.vauger, ccv, jason.vauger | -| GCP Project | propane-will-491900-m5 (Jason-v1) | -| Billing | 0171F6-057E6B-A260BA | -| Org | vauco.no / 155051211891 | -| Region | us-central1 — ALDRI us-west1 | -| SDK | `from google import genai` — ALDRI `vertexai.generative_models` | -| Agent-rammeverk | Google ADK (tillatt) — andre krever `ADK_GODKJENT` fra Chris | -| GitHub user | chrischristiansen-glitch | -| Canonical repo | OSVauco | -| Canonical branch | main | -| MCP_NAME | OPAX-MCP | -| MCP_PROTOCOL | OPAX Protocol | -| MCP_SERVICE | opax-mcp-core (Cloud Run, us-central1) | -| ROOT_DOMAIN | vauco.no | -| HUB_URL | https://opax.vauco.no ✅ LIVE 2026-05-21 | +- [ ] IAP på `opax.vauco.no` (kun `@vauco.no` accounts) — blokkerer prod-sikring. +- [ ] `opax-mcp/` restruktureres som ordentlig modul-subtree. +- [ ] Full boot cycle acceptance test (automatisert). +- [ ] VS Code ↔ Cloud Shell workflow — preflight-script for lokal utvikling. +- [ ] **Gemini TUI-output logging** — `script -a`-wrapper for `gemini` + - Alias `gemini-log` starter gemini inne i terminal-recorder + - `opax-logg-slutt` appender siste 50 linjer (stripped escape-koder) til session-log + - Gjør Gemini-dialog søkbar i `OSVAUCO_OPAX_SESSION_LOG.md` --- -### DOMENEKONVENSJON — LOCKED +## LATER -| Subdomain | Type | Formål | -|---|---|---| -| `opax.vauco.no` | Hub/MCP | OPAX-MCP operator hub — kun Vauco internt | -| `-os.vauco.no` | Prod OS | Kundens live produksjonssystem | -| `-oss.vauco.no` | Stage OS | Kundens staging/demo-system (pre-go-live) | +- [ ] Medioteq — kun idéfase, ingenting implementeres før OPAX er fullt operasjonelt. +- [ ] BankID på `medioteq-os.vauco.no`. +- [ ] Multi-klient onboard-mønster (`-oss-core` → `-os-core`). +- [ ] OPS agent + BigQuery live logging. +- [ ] Green OSVauco-prompt med ANSI glow. +- [ ] Nattlig GDrive-backup aktiveres etter IAM + Secrets er satt opp. + +--- + +## BLOCKED + +*(ingen blokkerte punkter)* + +--- + +## ✅ Fullførte faser + +- [x] **Phase 0** — Baseline: `opax-mcp-core` live, OSVauco canonical repo, `.gemini/` grunnmur, boot-script, sessionslogg. +- [x] **Phase 1** — `MCP_NAME`, `MCP_PROTOCOL`, `ROOT_DOMAIN` locked; domenekonvensjon + klientmodell i `ARCHITECTURE.md`; `VAUCO_OS_ROADMAP.md` opprettet. +- [x] **Phase 2** — `opax.vauco.no` LIVE: Cloud Run domain mapping + CNAME + SSL cert. `HUB_URL` locked. Boot-script peker på prod. +- [x] **Phase 3** — Nemotron session loop i `.gemini/GEMINI.md`. `docs/TODO.md` opprettet. Phase 1+2 SLUTTRAPPORT i session log. +- [x] **GDrive/GitHub paritet** — `GDRIVE_MIRROR_BOOT.md` + `sync-gdrive-mirror.sh` + nattlig backup-workflow + PROMPT_COMMAND terminal-logging (2026-05-25). + +--- + +## SESJONSLOGG + +# Sessions Index + +| Dato | Emne | Fil | +|------|------|-----| +| 2026-05-21 | OSVauco/OPAX platform bootstrap — naming, domenekonvensjon, Nemotron TODO | [2026-05-21_osvauco-opax-platform-naming-domains.md](./2026-05-21_osvauco-opax-platform-naming-domains.md) | +| 2026-05-22 | osv-startup.ps1 — banner design, farger, prompt og gcloud-fix | [2026-05-22_osv-startup-banner-styling.md](./2026-05-22_osv-startup-banner-styling.md) | +| 2026-05-24 | OPAX heavy mode + LLM-ruting + RAG re-indeksering | [2026-05-24_opax-heavy-mode-llm-ruting-rag.md](./2026-05-24_opax-heavy-mode-llm-ruting-rag.md) | +| 2026-05-24 | RAG corpus setup — Vertex AI serverless debugging | [2026-05-24_rag-corpus-setup-vertexai.md](./2026-05-24_rag-corpus-setup-vertexai.md) | +| 2026-05-24 | RAG restriction + operator suite heavy lifts + docs hardening | [2026-05-24_osvauco-rag-operator-suite.md](./2026-05-24_osvauco-rag-operator-suite.md) | + +--- + +## ROADMAP + +# VAUCO OS — ROADMAP.md +# Eier: PLAN-Claude-Architect +# Sist oppdatert: 2026-05-22 CEST +# Godkjent av: Chris Christiansen + +--- + +## NOW — Aktiv nå + +- [ ] **Phase 4** — Docs hardening + - Owner: OPS / Gemini TUI + - HITL gate: `MERGE APPROVED` + - Filer: `LEARNINGS.md`, `SECRETS-SETUP.md`, `IAP-SETUP.md` — oppdater med nåværende state + - Done: alle tre filer har seksjon `## Status 2026-05-22` med verifisert info + +--- + +## NEXT — Neste opp + +- [ ] **Phase 5** — IAP på `opax.vauco.no` + - Begrens til `@vauco.no` Google-kontoer + - Owner: EXEC-Gemini / Chris + - HITL gate: `DEPLOY GODKJENT` + - Done: uautentiserte requests → 403, `chris.christiansen@vauco.no` → 200 + +- [ ] **Phase 6** — VS Code ↔ Cloud Shell workflow + - Preflight-script + dokumentasjon for lokal utvikling mot OSVauco-repoet + - Owner: OPS + - HITL gate: `MERGE APPROVED` + +--- + +## LATER — Backlog + +- [ ] `opax-mcp/` restruktureres som ordentlig modul-subtree +- [ ] Full boot cycle acceptance test (automatisert) +- [ ] OPS agent + BigQuery live logging +- [ ] Multi-klient onboard-mønster +- [ ] **Medioteq** — kun idéfase, ingenting implementeres før OPAX er fullt operasjonelt + +--- + +## BLOCKED + +*(ingen blokkerte punkter)* + +--- + +## ✅ Fullførte faser + +- [x] **Phase 0** — Baseline: `opax-mcp-core` live, OSVauco repo, `.gemini/` grunnmur, boot-script, sessionslogg +- [x] **Phase 1** — MCP_NAME/MCP_PROTOCOL/ROOT_DOMAIN locked; ARCHITECTURE.md + ROADMAP.md opprettet · `6ae1a25` `4a971dd` `c4149e7` · 2026-05-21 +- [x] **Phase 2** — `opax.vauco.no` LIVE: domain mapping + CNAME + SSL + HUB_URL locked · `f3bf419` · 2026-05-21 +- [x] **Phase 3** — Nemotron session loop i GEMINI.md; docs/TODO.md; Phase 1+2 SLUTTRAPPORT i session log · `77ed501` · 2026-05-21 + +--- +EOF v2.0 — 2026-05-22 — synkronisert med faktisk repo-state + +--- + +## AGENT_RULEBOOK + +# VAUCO OS — AGENTRLEBOOK.md +# Eier: OPS-Computer-Hub +# Sist oppdatert: 2026-05-21 CEST +# Godkjent av: Chris Christiansen + +--- + +## Hensikt +Immutable regler for alle 4 tråder. Ingen tråd kan overstyre disse. +Endringer krever eksplisitt godkjenning fra Chris. + +--- + +## LOCK LIST — ALDRI ENDRE + +| Parameter | Verdi | +|-------------------|-----------------------------------------------------------------------| +| GCP Account | chris.christiansen@vauco.no | +| Forbudte kontoer | tinius.vauger, ccv, jason.vauger | +| GCP Project | propane-will-491900-m5 (Jason-v1) | +| Billing | 0171F6-057E6B-A260BA | +| Org | vauco.no / 155051211891 | +| Region | us-central1 — ALDRI us-west1 | +| SDK | `from google import genai` — ALDRI `vertexai.generative_models` | +| Agent-rammeverk | Google ADK (tillatt) — andre må eksplisitt `ADK_GODKJENT` av Chris | +| GitHub user | chrischristiansen-glitch | +| Canonical repo | OSVauco | +| Canonical branch | main | +| MCP_NAME | OPAX-MCP | +| MCP_PROTOCOL | OPAX Protocol | +| MCP_SERVICE | opax-mcp-core (Cloud Run, us-central1) | +| ROOT_DOMAIN | vauco.no | +| HUB_URL | https://opax.vauco.no ✅ LIVE 2026-05-21 | + +--- + +## DOMENEKONVENSJON — LOCKED + +| Subdomain | Type | Formål | +|-------------------------|----------|-----------------------------------------------------| +| `opax.vauco.no` | Hub/MCP | OPAX-MCP operator hub — kun Vauco internt | +| `-os.vauco.no` | Prod OS | Kundens live produksjonssystem | +| `-oss.vauco.no` | Stage OS | Kundens staging/demo-system (pre-go-live) | > `-os` = produksjon. `-oss` = staging. Aldri omvendt. @@ -99,15 +230,15 @@ **Kjente/planlagte domener:** -| Domene | Status | Cloud Run-tjeneste | -|---|---|---| -| `opax.vauco.no` | ✅ LIVE | `opax-mcp-core` | -| `medioteq-oss.vauco.no` | Planlagt | `medioteq-oss-core` | -| `medioteq-os.vauco.no` | Planlagt | `medioteq-os-core` | +| Domene | Status | Cloud Run-tjeneste | +|---------------------------|------------------|-----------------------| +| `opax.vauco.no` | ✅ LIVE | `opax-mcp-core` | +| `medioteq-oss.vauco.no` | Planlagt | `medioteq-oss-core` | +| `medioteq-os.vauco.no` | Planlagt | `medioteq-os-core` | --- -### HITL-GATES — STOPP OG SPØR ALLTID +## HITL-GATES — STOPP OG SPØR ALLTID 1. `DEPLOY GODKJENT` — før deploy til Cloud Run 2. `MERGE APPROVED` — før merge til main @@ -118,56 +249,52 @@ --- -### BOOT-PROTOKOLL — kjøres av ALLE tråder ved oppstart +## BOOT-PROTOKOLL — kjøres av ALLE tråder ved oppstart -1. **Connector-sjekk:** Er GitHub tilgjengelig? - - Ja → Les `docs/AGENT_RULEBOOK.md` direkte fra `OSVauco/main` - - Nei → Les denne filen (GDrive) + sjekk staleness-varsel øverst -2. Branch-discovery: list alle branches, finn mest aktiv (ahead av default) +1. Branch-discovery: list alle branches, finn mest aktiv (ahead av default) - Hvis 1+ branch er 10+ commits ahead: STOPP og spør Chris - - Standard: `OSVauco/main` er canonical -3. Les eid fil + ROADMAP fra riktig branch -4. Bekreft i én linje: `Boot OK — branch X, HEAD Y, oppgave Z` + - Standard: OSVauco/main er canonical for dette prosjektet +2. Les eid fil + MASTER_HANDOFF_v2 + ROADMAP fra riktig branch +3. Bekreft i én linje: `Boot OK — branch X, HEAD Y, oppgave Z` --- -### EIERSKAP-MATRISE +## VOCABULARY FIREWALL -| Fil | Eier | Andre kan | +| Type | Ord | Regel | |---|---|---| -| VAUCO_OS_MASTER_HANDOFF_v2.md | OPS | lese | -| VAUCO_OS_ROADMAP.md | PLAN | lese, foreslå patch via PR | -| SYSTEM_STATE_AGENT_BOOT.md | EXEC | lese | -| docs/AGENT_RULEBOOK.md | OPS | lese | -| docs/ARCHITECTURE.md | PLAN | lese, foreslå patch via PR | -| docs/LEARNINGS.md | OPS | lese, foreslå append | -| docs/RISKREGISTER.md | AUDIT | lese | -| docs/PLANBOARD.md | AUDIT | lese | -| CHANGELOG.md | OPS | lese | -| TODO.md | EXEC | lese | -| **docs/GDRIVE_MIRROR_BOOT.md** | **OPS** | lese | +| Offentlig (OK overalt) | Token Ledger, VVN, Provenance, File signature, Client identity record, Cognitive contribution, The system | Fritt bruk | +| Strategisk (KUN internt) | Pregeverdi, Deep Dream, Vauco-arv, Pregesignatur, T-konto, Work of Living, Pregeverk | KUN i `deep-dream/`-mappe | --- -### KOST-DISIPLIN +## KOST-DISIPLIN - $3/dag hard cap per tråd - `gemini-2.5-flash` for enkle steg, `pro` for komplekse - ALDRI rekursive modell-loops - Hvis tråden bruker $1 på én oppgave: STOPP, rapporter, spør +- 80%/95%/100% quota stops aktive --- -### VOCABULARY FIREWALL +## FRICTION-REGLER (kodifisert lærdom) -| Type | Ord | Regel | -|---|---|---| -| Offentlig (OK overalt) | Token Ledger, VVN, Provenance, File signature, Client identity record | Fritt bruk | -| Strategisk (KUN internt) | Pregeverdi, Deep Dream, Vauco-arv, Pregesignatur, T-konto | KUN i `deep-dream/`-mappe | +### TASK-FRICTION-001: Branch-discovery-before-read +Preflight må advare hvis non-default branch er 10+ commits ahead. +Implementer i: `scripts/preflight-check.sh` + +### TASK-FRICTION-002: SYSTEM_STATE_AGENT_BOOT autogenerering +Boot-script skriver fersk state-fil ved hver tråd-oppstart. +Implementer i: `scripts/boot-state.sh` (EXEC eier) + +### TASK-FRICTION-003: Eierskap-matrise håndhevet i pre-commit +Pre-commit hook avviser commit hvis fil endres av feil tråd. +Implementer i: `.githooks/pre-commit` (OPS eier) --- -### KORREKSJONS-REGEL +## KORREKSJONS-REGEL Ground truth wins always. 1. Innrøm direkte i én setning @@ -177,15 +304,101 @@ ALDRI forsvar gamle posisjoner. --- -## OPPDATERINGS-LOGG (append-only) +## KOMMUNIKASJON MELLOM TRÅDER -| Dato | Versjon | Endring | Synkronisert av | -|---|---|---|---| -| 2026-05-25 | v1.0 | Initial mirror av AGENT_RULEBOOK.md v1.2 + staleness-varsel + connector-guide | OPS-Computer-Hub | -| 2026-05-25 | v1.1 | Staleness-terskel endret fra 3 dager → 12 timer (aktiv dev-runde) | OPS-Computer-Hub | +- ML-TRÅD: Chris kopierer melding over +- Filer flyter via GitHub (`OSVauco` + tjeneste-repoer) +- Aldri direkte tråd-til-tråd — alt via committed MD eller Chris --- -*Neste gang AGENT_RULEBOOK.md endres: oppdater denne filen, endre tidsstempel i staleness-varselet, og last opp til GDrive.* +## EIERSKAP-MATRISE -**EOF · GDRIVE_MIRROR_BOOT v1.1 · 2026-05-25 · OPS-Computer-Hub** +| Fil | Eier | Andre kan | +|---|---|---| +| VAUCO_OS_MASTER_HANDOFF_v2.md | OPS | lese | +| VAUCO_OS_ROADMAP.md | PLAN | lese, foreslå patch via PR | +| SYSTEM_STATE_AGENT_BOOT.md | EXEC | lese | +| docs/AGENTRLEBOOK.md | OPS | lese | +| docs/ARCHITECTURE.md | PLAN | lese, foreslå patch via PR | +| docs/LEARNINGS.md | OPS | lese, foreslå append | +| docs/RISKREGISTER.md | AUDIT | lese | +| docs/PLANBOARD.md | AUDIT | lese | +| CHANGELOG.md | OPS | lese | +| TODO.md | EXEC | lese | + +Regel: én fil — én eier. Andre foreslår via PR, eier merger. + +--- +EOF v1.2 — 2026-05-21 — OPS-Computer-Hub (Phase 2: HUB_URL locked LIVE, domain status updated) + +--- + +## LEARNINGS — siste oppføringer + +Kontekst: Phase A scratchpad sjekket kun `main`-branch i vauco-os. `autoflow-lag-1` var canonical med full operativ kode. Hele Phase A-analysen ble feil, og Phase B-planen ble bygget på feil premiss. +Lærdom: Default branch er ALDRI automatisk canonical. Alltid sjekk alle branches og finn den med mest aktive commits. +Regel: Boot-protokoll starter ALLTID med branch-discovery. Hvis 1+ branch er 10+ commits ahead av default: STOPP og spør Chris. +Implementert i: `docs/AGENTRLEBOOK.md` — BOOT-PROTOKOLL steg 1 + +--- + +### LEARNING-002: Handoff-MD er ferskvare — utdatert på 13 timer +Dato: 2026-05-18 +Kontekst: VAUCO_BOOTSTRAP_HANDOFF_NEMOTRON.md ble utdatert samme dag den ble skrevet. MASTER_HANDOFF_v2 måtte lages for å reconcile motstridende info. +Lærdom: Statiske handoff-filer divergerer fort fra live state. SYSTEM_STATE_AGENT_BOOT.md (EXEC eier) må regenereres ved hver tråd-boot for å være autoritet på hva som er sant nå. +Regel: EXEC-tråden kjører `scripts/boot-state.sh` ved hver sesjon og skriver fersk SYSTEM_STATE_AGENT_BOOT.md. +Implementert i: TASK-FRICTION-002 — `scripts/boot-state.sh` (Day 2) + +--- + +### LEARNING-003: 40% av Phase B var nyttig — resten død/avfeilet +Dato: 2026-05-18 +Kontekst: Phase B-plan var bygget på feil premiss (tom remote repo), men inneholdt gode design-elementer: task manager, dev-orchestrate.sh, doc-consolidation layout. +Lærdom: Selv feil-premiss-planer kan inneholde nyttige sub-komponenter. Skill økten mellom premiss-validering og løsnings-design. +Regel: Før ny plan: verifiser alle premisser eksplisitt. Ground truth wins always. Innrøm direkte, oppdater eid fil, fortsett. +Implementert i: `docs/AGENTRLEBOOK.md` — KORREKSJONS-REGEL + +--- + +### LEARNING-004: Pre-commit hook kan ikke skille regel-definisjon fra regelbrudd +Dato: 2026-05-18 +Kontekst: `.githooks/pre-commit` bruker innholdsbasert regex-gate. Fanger `vertexai.generative_models` overalt — inkludert i NEVER-lister og kommentarer. +Lærdom: Semantisk korrekt bypass (`--no-verify` eller `git config --unset core.hooksPath`) er riktig for commits som inneholder regel-definisjoner, ikke regelbrudd. +Regel: Hook v2 må implementere Argument C: kun match uncommented lines i .py/.sh, og kun utenfor NEVER/blocked/forbid-kontekst i .md. +Implementert i: TASK-FRICTION-003 — hook v2 (Day 2) + +--- + +### LEARNING-005: Verdivurdering før commit — tråden kan absorbere korreksjon raskt +Dato: 2026-05-18 +Kontekst: Doc-konsolidering ble nødvendig (LEARNINGS.md, AGENTRLEBOOK.md). Ground-truth-vinner-alltid-prinsippet fungerte raskt i praksis. +Lærdom: Kjør verdivurdering ved slutten av hver økt: hva produserte vi, hva er nyttig vs dødt, hvilken læring overlever? +Regel: Før tråd-økt avsluttes: oppdater LEARNINGS.md (append), og friction → TASK-FRICTION-NNN i ROADMAP. +Implementert i: `docs/AGENTRLEBOOK.md` — FRICTION-REGLER + +--- +EOF — append videre under denne linjen + + +--- + +### LEARNING-006: gcloud-CLI deler quota med system-prosesser (32555940559) +Dato: 2026-05-18 +Kontekst: gcloud CLI bruker shared project 32555940559 for cloudresourcemanager API. Loop-scripts trigget 2400 RPM cap. Årsak: boot-script eller watch-prosess listet prosjekter/billing i loop. +Lærdom: Quota-hit på shared gcloud-prosjekt er ikke-fatal, forsvinner etter 60s. Sjekk alltid ps aux for spam-prosesser før loop-operasjoner. +Regel: 1) Skriv Y ved quota-prompt → 2) vent 60s → 3) kjør preflight.sh på nytt. Ved 429: `ps aux | grep -E "(gcloud|gemini|watch)" | grep -v grep` → kill -9 ved looping prosess. +--- + +### LEARNING-007: Vertex AI RAG Engine Spanner Restriction & Graceful Degradation +Dato: 2026-05-24 +Kontekst: Forsøk på å opprette serverless RAG Engine corpus i `us-central1` feilet med 400 INVALID_ARGUMENT. Årsak: Nye prosjekter i visse regioner er hard-begrenset til Spanner-modus (som krever allowlist). PATCH på `ragEngineConfig` med `basic` tier og fjerning av `spanner`-nøkkel via REST fungerte ikke (merging, ikke clearing). Fallback til `europe-west4` gav samme resultat. +Lærdom: RAG Engine er ikke universelt tilgjengelig som serverless ennå. SDK 1.153.1 har også bugs som krasjer ved bruk av `backend_config`. +Regel: Implementer alltid "Graceful Degradation" for RAG. Hvis corpus-opprettelse feiler pga. plattform-restriksjoner, sett en flagg, logg situasjonen til operatøren, og fortsett uten RAG i stedet for å krasje. +Implementert i: `agents/rag/setup_corpus.py`, `agents/rag/sync_corpus.py` + +--- + +*Oppdater ved å kjøre: `bash scripts/sync-gdrive-mirror.sh` — last deretter opp til GDrive.* + +**EOF · GDRIVE_MIRROR_BOOT · 2026-05-25T09:40 UTC · HEAD 5728024 · auto-generert**