fix: strengthen boot prompt to force file reading in both GEMINI.md and CLAUDE.md
This commit is contained in:
parent
3d2559b8a3
commit
6758685b7b
|
|
@ -1,6 +1,6 @@
|
|||
# GEMINI.md — OSVauco / OPAX
|
||||
|
||||
> Claude Opus 4.6 · Vertex AI EU endpoint · Nemotron session protocol · HITL-safe
|
||||
> Gemini 2.5 Pro · Vertex AI EU endpoint · Nemotron session protocol · HITL-safe
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -29,31 +29,14 @@ OPERATOR_ROLE: Eier, arkitekt og primær operatør av OSVauco / OS-Vauco
|
|||
|
||||
---
|
||||
|
||||
## Modell: Claude Opus 4.6 via Vertex AI
|
||||
## Modell: Gemini 2.5 Pro via Vertex AI
|
||||
|
||||
Denne agenten kjøres med **Claude Opus 4.6** tilgjengelig via Vertex AI EU multi-region endpoint.
|
||||
Denne agenten kjøres med **Gemini 2.5 Pro** tilgjengelig via Vertex AI EU endpoint.
|
||||
|
||||
- Data forblir innenfor EU-grensen (GDPR-compliant)
|
||||
- Ingen separat Anthropic API-nøkkel — billing via eksisterende GCP-konto
|
||||
- EU endpoint auto-routes internt mellom europeiske regioner for kapasitet
|
||||
- Billing via eksisterende GCP-konto
|
||||
- Intern budsjett-cap: **2 500 NOK** — ved behov for mer, spør Chris eksplisitt om +1 000 NOK
|
||||
|
||||
```python
|
||||
# Korrekt initialisering
|
||||
import anthropic
|
||||
|
||||
client = anthropic.AnthropicVertex(
|
||||
region="eu",
|
||||
project_id="propane-will-491900-m5"
|
||||
)
|
||||
|
||||
response = client.messages.create(
|
||||
model="claude-opus-4-6@20260801",
|
||||
max_tokens=8192,
|
||||
messages=[{"role": "user", "content": "..."}]
|
||||
)
|
||||
```
|
||||
|
||||
```bash
|
||||
# Auth
|
||||
gcloud auth application-default login --project=propane-will-491900-m5
|
||||
|
|
@ -71,7 +54,7 @@ Chris er en erfaren DevOps/Cloud-utvikler. Han er teknisk, presis og forventer d
|
|||
- **Ikke vær lat.** Internett-søk er siste utvei — ikke første instinkt.
|
||||
- **Vær direkte.** Presenter funn, rot-årsak og fix — ikke lange forklaringer.
|
||||
|
||||
**Denne agenten kjøres utelukkende i Gemini TUI** (terminal, interaktiv CLI).
|
||||
**Denne agenten kjøres utelukkende i Gemini CLI TUI** (terminal, interaktiv CLI).
|
||||
Det er ingen nettleser, ingen GUI, ingen web-editor. Alt skjer i terminalen.
|
||||
|
||||
### Hva dette betyr for oppførsel:
|
||||
|
|
@ -107,8 +90,8 @@ Den er **aldri** i git og eksisterer kun på disk eller i Secret Manager.
|
|||
```bash
|
||||
# Alternativ 1: Sjekk Secret Manager
|
||||
gcloud secrets list --project=propane-will-491900-m5 | grep -i env
|
||||
gcloud secrets versions access latest
|
||||
--secret=<env-secret-navn>
|
||||
gcloud secrets versions access latest \
|
||||
--secret=<env-secret-navn> \
|
||||
--project=propane-will-491900-m5 > .env
|
||||
|
||||
# Alternativ 2: Sjekk GCS backup
|
||||
|
|
@ -152,14 +135,14 @@ NÅR noe feiler:
|
|||
|
||||
NÅR du er usikker på state:
|
||||
```bash
|
||||
gcloud run services describe $CLOUD_RUN_SVC
|
||||
--project=$GCP_PROJECT --region=$GCP_REGION
|
||||
gcloud run services describe $CLOUD_RUN_SVC \
|
||||
--project=$GCP_PROJECT --region=$GCP_REGION \
|
||||
--format="yaml(status,spec.template.spec.containers)"
|
||||
|
||||
gcloud artifacts docker images list
|
||||
gcr.io/$GCP_PROJECT/osvauco-agent
|
||||
--project=$GCP_PROJECT
|
||||
--sort-by=~CREATE_TIME
|
||||
gcloud artifacts docker images list \
|
||||
gcr.io/$GCP_PROJECT/osvauco-agent \
|
||||
--project=$GCP_PROJECT \
|
||||
--sort-by=~CREATE_TIME \
|
||||
--limit=3
|
||||
```
|
||||
|
||||
|
|
@ -182,14 +165,14 @@ gcloud artifacts docker images list
|
|||
|
||||
Etter enhver endring:
|
||||
```bash
|
||||
gcloud run revisions list
|
||||
--service=$CLOUD_RUN_SVC
|
||||
--project=$GCP_PROJECT
|
||||
--region=$GCP_REGION
|
||||
gcloud run revisions list \
|
||||
--service=$CLOUD_RUN_SVC \
|
||||
--project=$GCP_PROJECT \
|
||||
--region=$GCP_REGION \
|
||||
--limit=3
|
||||
|
||||
curl -s -o /dev/null -w "%{http_code}"
|
||||
-H "Authorization: Bearer $(gcloud auth print-identity-token)"
|
||||
curl -s -o /dev/null -w "%{http_code}" \
|
||||
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
|
||||
https://opax.vauco.no/health
|
||||
```
|
||||
|
||||
|
|
@ -208,57 +191,57 @@ VERIFY: [kommando for å bekrefte fix]
|
|||
## Session Protocol (Nemotron Loop)
|
||||
|
||||
### BOOT
|
||||
- Read `docs/AGENT_RULEBOOK.md`, `docs/VAUCO_OS_ROADMAP.md`, and `docs/OSVAUCO_OPAX_SESSION_LOG.md`.
|
||||
- Print LOCKED DEFINITIONS (`MCP_NAME`, `MCP_PROTOCOL`, `HUB_URL`, `ROOT_DOMAIN`, `GCP_PROJECT`, `MODEL`, `BUDGET_CAP`, `OPERATOR`).
|
||||
- Print the last `## NESTE OPPGAVE` block found in the session log.
|
||||
- If no NESTE OPPGAVE found → warn and read ROADMAP NOW section instead.
|
||||
- Les og print innhold fra: `docs/AGENT_RULEBOOK.md`, `docs/MASTERPLAN.md`, `docs/ROADMAP.md`, `docs/HANDOFF.md`.
|
||||
- Print LOCKED DEFINITIONS (`MCP_NAME`, `MCP_PROTOCOL`, `HUB_URL`, `ROOT_DOMAIN`, `GCP_PROJECT`, `MODEL`, `BUDGET_CAP`, `OPERATOR`) i en kompakt blokk.
|
||||
- Print siste `## NESTE OPPGAVE`-blokk fra `docs/HANDOFF.md` i én setning.
|
||||
- Hvis ingen NESTE OPPGAVE → advar og les ROADMAP NOW-seksjon i stedet.
|
||||
- Sjekk gjeldende GCP auth: `gcloud auth list` og `gcloud config get-value project`
|
||||
- Sjekk om `.env` eksisterer: `ls -la .env` — hvis IKKE: rapporter til Chris umiddelbart, IKKE opprett den.
|
||||
|
||||
### PLAN
|
||||
- Before any code change, write a short PLAN block in Markdown:
|
||||
- Files to touch
|
||||
- Expected outcome
|
||||
- HITL gate required
|
||||
- Do NOT proceed to EXECUTE without human confirmation.
|
||||
- Før enhver kodeendring, skriv en kort PLAN-blokk i Markdown:
|
||||
- Filer som berøres
|
||||
- Forventet resultat
|
||||
- HITL gate påkrevd
|
||||
- IKKE gå til EXECUTE uten human bekreftelse.
|
||||
|
||||
### EXECUTE
|
||||
- Apply exactly the change described in the PLAN block — no more, no less.
|
||||
- Always show a full diff before writing any file.
|
||||
- Never batch unrelated edits in a single EXECUTE step.
|
||||
- Gjennomfør nøyaktig den endringen som er beskrevet i PLAN-blokken — ikke mer, ikke mindre.
|
||||
- Vis alltid full diff før du skriver noen fil.
|
||||
- Aldri batch urelaterte endringer i ett EXECUTE-steg.
|
||||
|
||||
### VERIFY
|
||||
- Run the relevant verification command (`curl`, `gcloud`, `grep`, `git log`).
|
||||
- State result explicitly as `PASS` or `FAIL`.
|
||||
- If FAIL → **les loggene** → identifiser rot-årsak → rapport.
|
||||
- Kjør relevant verifikasjonskommando (`curl`, `gcloud`, `grep`, `git log`).
|
||||
- Angi resultatet eksplisitt som `PASS` eller `FAIL`.
|
||||
- Ved FAIL → **les loggene** → identifiser rot-årsak → rapporter.
|
||||
- IKKE gå videre til LOG før VERIFY er PASS.
|
||||
|
||||
### LOG
|
||||
- Append to `docs/OSVAUCO_OPAX_SESSION_LOG.md`:
|
||||
- Append til `docs/OSVAUCO_OPAX_SESSION_LOG.md`:
|
||||
```
|
||||
## SLUTTRAPPORT – <date> – <Phase>
|
||||
- Hva: <description of change>
|
||||
- Filer: <list of files changed>
|
||||
- Verifisering: <command + result>
|
||||
## SLUTTRAPPORT – <dato> – <Fase>
|
||||
- Hva: <beskrivelse av endring>
|
||||
- Filer: <liste over endrede filer>
|
||||
- Verifisering: <kommando + resultat>
|
||||
|
||||
## NESTE OPPGAVE
|
||||
<single next task, explicit>
|
||||
<én konkret neste oppgave>
|
||||
```
|
||||
|
||||
### NEXT
|
||||
- At the next session start, read `## NESTE OPPGAVE` before doing anything else.
|
||||
- Ved neste sesjonstart, les `## NESTE OPPGAVE` fra `docs/HANDOFF.md` før du gjør noe annet.
|
||||
|
||||
---
|
||||
|
||||
## Hard Rules
|
||||
|
||||
1. **Never change LOCK LIST values** without explicit human instruction.
|
||||
2. **Always show diff before writing** any file.
|
||||
3. **Never batch unrelated edits** in a single EXECUTE step.
|
||||
4. **OPAX (`opax.vauco.no`) is management plane only** — it never receives raw patient data.
|
||||
5. **Medioteq clinical data** stays in `europe-north1` inside the Medioteq GCP project boundary.
|
||||
6. **Deploy `clinical-mcp` and `clinical-orchestrator`** to the Medioteq project, never the Vauco project.
|
||||
7. **HITL gates**: PLAN approves order → AUDIT approves format → OPS confirms EST → Human confirms before EXEC fires.
|
||||
1. **Aldri endre LOCK LIST-verdier** uten eksplisitt human instruksjon.
|
||||
2. **Vis alltid diff før du skriver** noen fil.
|
||||
3. **Aldri batch urelaterte endringer** i ett EXECUTE-steg.
|
||||
4. **OPAX (`opax.vauco.no`) er kun management plane** — den mottar aldri rå pasientdata.
|
||||
5. **Medioteq kliniske data** forblir i `europe-north1` innenfor Medioteq GCP-prosjektgrensen.
|
||||
6. **Deploy `clinical-mcp` og `clinical-orchestrator`** til Medioteq-prosjektet, aldri Vauco-prosjektet.
|
||||
7. **HITL gates**: PLAN godkjenner rekkefølge → AUDIT godkjenner format → OPS bekrefter EST → Human bekrefter før EXEC kjøres.
|
||||
8. **Aldri søk på nett for å diagnostisere feil du kan lese i loggene.**
|
||||
9. **Aldri anta at noe virker — verifiser alltid med en faktisk kommando.**
|
||||
10. **Aldri gjett på koden — les den.** Du er i repoet. Bruk `cat`, `grep`, `git diff`.
|
||||
|
|
@ -275,12 +258,12 @@ VERIFY: [kommando for å bekrefte fix]
|
|||
### 🔴 Cloud Build feiler
|
||||
|
||||
```bash
|
||||
BUILD_ID=$(gcloud builds list
|
||||
--project=propane-will-491900-m5
|
||||
--limit=1
|
||||
BUILD_ID=$(gcloud builds list \
|
||||
--project=propane-will-491900-m5 \
|
||||
--limit=1 \
|
||||
--format="value(id)")
|
||||
|
||||
gcloud builds log $BUILD_ID
|
||||
gcloud builds log $BUILD_ID \
|
||||
--project=propane-will-491900-m5 2>&1 | tail -100
|
||||
```
|
||||
|
||||
|
|
@ -293,16 +276,16 @@ Vanlige årsaker:
|
|||
### 🔴 Cloud Run svarer ikke / returnerer feil
|
||||
|
||||
```bash
|
||||
gcloud run services describe osvauco-agent
|
||||
--project=propane-will-491900-m5
|
||||
--region=europe-west1
|
||||
gcloud run services describe osvauco-agent \
|
||||
--project=propane-will-491900-m5 \
|
||||
--region=europe-west1 \
|
||||
--format="value(status.conditions)"
|
||||
|
||||
gcloud logging read
|
||||
'resource.type=cloud_run_revision AND resource.labels.service_name=osvauco-agent'
|
||||
--project=propane-will-491900-m5
|
||||
--limit=50
|
||||
--order=desc
|
||||
gcloud logging read \
|
||||
'resource.type=cloud_run_revision AND resource.labels.service_name=osvauco-agent' \
|
||||
--project=propane-will-491900-m5 \
|
||||
--limit=50 \
|
||||
--order=desc \
|
||||
--format="table(timestamp,textPayload,jsonPayload.message)"
|
||||
```
|
||||
|
||||
|
|
@ -313,33 +296,12 @@ gcloud auth list
|
|||
gcloud config get-value project
|
||||
gcloud auth print-identity-token
|
||||
|
||||
gcloud iap web get-iam-policy
|
||||
--project=propane-will-491900-m5
|
||||
--resource-type=cloud-run
|
||||
gcloud iap web get-iam-policy \
|
||||
--project=propane-will-491900-m5 \
|
||||
--resource-type=cloud-run \
|
||||
--service=osvauco-agent
|
||||
```
|
||||
|
||||
### 🔴 Claude / Vertex AI-feil
|
||||
|
||||
```bash
|
||||
# Test Claude Opus 4.6 via Vertex EU endpoint
|
||||
curl -X POST
|
||||
"https://eu-aiplatform.googleapis.com/v1/projects/propane-will-491900-m5/locations/eu/publishers/anthropic/models/claude-opus-4-6@20260801:rawPredict"
|
||||
-H "Authorization: Bearer $(gcloud auth print-access-token)"
|
||||
-H "Content-Type: application/json"
|
||||
-d '{
|
||||
"anthropic_version": "vertex-2023-10-16",
|
||||
"max_tokens": 256,
|
||||
"messages": [{"role": "user", "content": "ping"}]
|
||||
}'
|
||||
|
||||
# Sjekk at Claude er aktivert i Model Garden
|
||||
gcloud ai models list
|
||||
--region=eu
|
||||
--project=propane-will-491900-m5
|
||||
--filter="displayName:claude"
|
||||
```
|
||||
|
||||
### 🔴 .env mangler ved oppstart
|
||||
|
||||
```bash
|
||||
|
|
@ -360,7 +322,6 @@ find ~ -name ".env" -not -path "*/OSVauco/*" 2>/dev/null
|
|||
| Cloud Run 500 | `gcloud logging read` → les stack trace | Endre kode uten å se feilen |
|
||||
| Cloud Run 404 | `curl` + les rutekonfig | Anta routing er feil |
|
||||
| Auth 403 | `gcloud iap get-iam-policy` | Anta token er utløpt |
|
||||
| Claude API feil | Test EU endpoint direkte med curl | Anta det er koden sin feil |
|
||||
| .env mangler | Rapporter til Chris, hent fra Secret Manager | Opprett fra .env.example |
|
||||
| Noe «virker ikke» | `gcloud run services describe` | Anta det er koden sin feil |
|
||||
|
||||
|
|
@ -377,10 +338,10 @@ IMAGE=gcr.io/propane-will-491900-m5/osvauco-agent
|
|||
|
||||
gcloud builds submit --config=cloudbuild.yaml --project=propane-will-491900-m5
|
||||
|
||||
gcloud run deploy osvauco-agent
|
||||
--image=$IMAGE:latest
|
||||
--project=propane-will-491900-m5
|
||||
--region=europe-west1
|
||||
gcloud run deploy osvauco-agent \
|
||||
--image=$IMAGE:latest \
|
||||
--project=propane-will-491900-m5 \
|
||||
--region=europe-west1 \
|
||||
--platform=managed
|
||||
```
|
||||
|
||||
|
|
@ -400,15 +361,16 @@ Auth: Google OAuth now. BankID on `-os` later (Medioteq first).
|
|||
|
||||
## Standard Boot Prompt
|
||||
|
||||
Lim inn dette ved start av HVER sesjon:
|
||||
> Lim inn dette ord-for-ord ved start av HVER sesjon. `Les og print innhold fra` tvinger faktisk fillesing — ikke bare skumming.
|
||||
|
||||
```
|
||||
BOOT: Read docs/AGENT_RULEBOOK.md, docs/MASTERPLAN.md, docs/ROADMAP.md, docs/HANDOFF.md.
|
||||
Print LOCKED DEFINITIONS. Print NESTE OPPGAVE from HANDOFF.md. Do not take any action until I give a PLAN APPROVED prompt.
|
||||
Les og print innhold fra: @docs/AGENT_RULEBOOK.md @docs/MASTERPLAN.md @docs/ROADMAP.md @docs/HANDOFF.md
|
||||
|
||||
Deretter:
|
||||
1. Print LOCKED DEFINITIONS (project, region, model, service, URLs) i en kompakt blokk
|
||||
2. Oppsummer NESTE OPPGAVE fra HANDOFF.md i én setning
|
||||
3. List 3 konkrete neste-steg du foreslår
|
||||
|
||||
NIKT utfør noe — vent på PLAN APPROVED eller eksplisitt instruksjon.
|
||||
Bekreft at du forstår ABSOLUTT REGEL: når Chris spesifiserer region/modell/parameter eksplisitt, bruk ALLTID den verdien — aldri overstyr med LOCKED DEFINITIONS.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Boot-instruksjon
|
||||
|
||||
BOOT: Les @docs/AGENT_RULEBOOK.md, @docs/MASTERPLAN.md, @docs/ROADMAP.md og @docs/HANDOFF.md. Print så LOCKED DEFINITIONS (project, region, model, service, URLs) i en kompakt blokk. Oppsummer NESTE OPPGAVE fra HANDOFF.md i én setning. List så 3 konkrete neste-steg du foreslår, men IKKE utfør noe — vent på at jeg svarer "PLAN APPROVED" eller gir en spesifikk instruksjon. Bekreft til slutt at du forstår ABSOLUTT REGEL #1.
|
||||
|
|
|
|||
38
CLAUDE.md
38
CLAUDE.md
|
|
@ -26,7 +26,7 @@ OPERATOR_ROLE: Eier, arkitekt og primær operatør av OSVauco / OS-Vauco
|
|||
|
||||
> These values are LOCKED. Do NOT change without explicit human instruction.
|
||||
>
|
||||
> **ABSOLUTT REGEL #1:** Når Chris spesifiserer en region, modell eller parameter eksplisitt i en kommando — bruk ALLTID den verdien som er oppgitt. Ikke overstyr med LOCKED DEFINITIONS. LOCKED DEFINITIONS gjelder kun når ingenting er spesifisert.
|
||||
> **ABSOLUTT REGEL:** Når Chris spesifiserer en region, modell eller parameter eksplisitt i en kommando — bruk ALLTID den verdien som er oppgitt. Ikke overstyr med LOCKED DEFINITIONS. LOCKED DEFINITIONS gjelder kun når ingenting er spesifisert.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -208,9 +208,9 @@ VERIFY: [kommando for å bekrefte fix]
|
|||
## Session Protocol (Nemotron Loop)
|
||||
|
||||
### BOOT
|
||||
- Read `docs/AGENT_RULEBOOK.md`, `docs/MASTERPLAN.md`, `docs/ROADMAP.md` og `docs/HANDOFF.md`.
|
||||
- Les og print innhold fra: `docs/AGENT_RULEBOOK.md`, `docs/MASTERPLAN.md`, `docs/ROADMAP.md`, `docs/HANDOFF.md`.
|
||||
- Print LOCKED DEFINITIONS kompakt.
|
||||
- Print siste `## NESTE OPPGAVE` fra HANDOFF.md.
|
||||
- Print siste `## NESTE OPPGAVE` fra `docs/HANDOFF.md` i én setning.
|
||||
- Hvis ingen NESTE OPPGAVE → advar og les ROADMAP NOW-seksjon.
|
||||
- Sjekk GCP auth: `gcloud auth list` og `gcloud config get-value project`
|
||||
- Sjekk om `.env` eksisterer: `ls -la .env` — hvis IKKE: rapporter til Chris umiddelbart, IKKE opprett den.
|
||||
|
|
@ -246,7 +246,7 @@ VERIFY: [kommando for å bekrefte fix]
|
|||
```
|
||||
|
||||
### NEXT
|
||||
- Ved neste sesjonstart, les `## NESTE OPPGAVE` før du gjør noe annet.
|
||||
- Ved neste sesjonstart, les `## NESTE OPPGAVE` fra `docs/HANDOFF.md` før du gjør noe annet.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -317,18 +317,24 @@ gcloud iap web get-iam-policy \
|
|||
### 🔴 Claude / Vertex AI-feil
|
||||
|
||||
```bash
|
||||
# Test Claude via Vertex EU endpoint
|
||||
curl -X POST \
|
||||
"https://eu-aiplatform.googleapis.com/v1/projects/propane-will-491900-m5/locations/eu/publishers/anthropic/models/claude-opus-4-6:rawPredict" \
|
||||
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"anthropic_version": "vertex-2023-10-16",
|
||||
"max_tokens": 256,
|
||||
"messages": [{"role": "user", "content": "ping"}]
|
||||
}'
|
||||
-d '{"anthropic_version": "vertex-2023-10-16", "max_tokens": 256, "messages": [{"role": "user", "content": "ping"}]}'
|
||||
```
|
||||
|
||||
### 🔴 .env mangler ved oppstart
|
||||
|
||||
```bash
|
||||
ls -la .env
|
||||
gcloud secrets list --project=propane-will-491900-m5 | grep -i env
|
||||
gsutil ls gs://propane-will-491900-m5-*/ 2>/dev/null | grep -i env
|
||||
find ~ -name ".env" -not -path "*/OSVauco/*" 2>/dev/null
|
||||
```
|
||||
|
||||
**STOPP og rapporter til Chris — opprett IKKE .env fra .env.example.**
|
||||
|
||||
---
|
||||
|
||||
## GCP-konvensjoner for dette prosjektet
|
||||
|
|
@ -353,8 +359,16 @@ gcloud run deploy osvauco-agent \
|
|||
|
||||
## Standard Boot Prompt
|
||||
|
||||
Lim inn dette ved start av HVER sesjon i Claude Code TUI:
|
||||
> Lim inn dette ord-for-ord ved start av HVER sesjon. `Les og print innhold fra` tvinger faktisk fillesing — ikke bare skumming.
|
||||
|
||||
```
|
||||
BOOT: Les @docs/AGENT_RULEBOOK.md, @docs/MASTERPLAN.md, @docs/ROADMAP.md og @docs/HANDOFF.md. Print LOCKED DEFINITIONS kompakt. Oppsummer NESTE OPPGAVE fra HANDOFF.md i én setning. Foreslå 3 konkrete neste-steg, men IKKE utfør noe — vent på PLAN APPROVED. Bekreft at du forstår ABSOLUTT REGEL #1.
|
||||
Les og print innhold fra: @docs/AGENT_RULEBOOK.md @docs/MASTERPLAN.md @docs/ROADMAP.md @docs/HANDOFF.md
|
||||
|
||||
Deretter:
|
||||
1. Print LOCKED DEFINITIONS (project, region, model, service, URLs) i en kompakt blokk
|
||||
2. Oppsummer NESTE OPPGAVE fra HANDOFF.md i én setning
|
||||
3. List 3 konkrete neste-steg du foreslår
|
||||
|
||||
Ikke utfør noe — vent på PLAN APPROVED eller eksplisitt instruksjon.
|
||||
Bekreft at du forstår ABSOLUTT REGEL: når Chris spesifiserer region/modell/parameter eksplisitt, bruk ALLTID den verdien — aldri overstyr med LOCKED DEFINITIONS.
|
||||
```
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user