Files
boc/intelligence/2026-06-06-systemkunskap-rotorsak-landvex.md
T
Bernt bae705aa97 ARCHITECTURE: NFC roadmap, edge AI, audit logging
- Add NFC ePassport roadmap (ICAO 9303, eIDAS)
- Add TensorFlow.js edge face detection (BlazeFace)
- Add structured audit logger (GDPR-compliant)
- Risk scoring support

Part of KYC Apple Native UX v1.1.0
2026-06-29 16:24:48 +00:00

6.0 KiB

Rotorsak: Varför systemet inte visste vad LandveX är + fix (2026-06-06)

Trigger: Erik upptäckte att master-prompt-utkastet gissade LandveX = "bostad/mäklare". Frågade varför systemet inte styr produktdefinitionerna exakt när "det visste igår".

Rotorsaker (4 st)

  1. RAG-indexet existerade inte. rag_index.json + rag_embeddings.json saknades helt på disk. Systemet hade ingen semantisk kunskap att hämta från — oavsett källinnehåll. (OpenAI-nyckeln i rag.mjs FUNGERAR — var inte blockeraren.)

  2. rag.mjs indexerade bara 3 filer, ingen av dem bar LandveX-affärsdefinitionen tydligt: WAVULT_TRUTH.md (bara org.nr), AMOS_KNOWLEDGE.md (stale: "ej live, försäljningsplattform"), AMOS_CONSTITUTION.md. Ditt styrningspaket (landvex-styrningspaket-v1.txt) lästes ALDRIG in.

  3. Stubs maskerade felet. api/stubs/batch-stubs.mjs svarade /rag/reindex|retrieve|status med {ok:true, results:[], status:'ready'} → systemet rapporterade "healthy" medan det returnerade tomt.

  4. 39 konkurrerande truth/canonical/master-filer i /opt/amos/data → ingen enskild sanningskälla. Fanns t.o.m. en "SYSTEM_TRUTH_TENSION_ANALYZER.md".

Plus felaktig artefakt: public/landvex-landing.html ("Sälj din bostad smartare", skapad 2026-05-26 av byggagent som hallucinerade utan att läsa styrningspaketet). Var dock en ORPHAN — live landvex.com servade redan korrekt /landvex/index.html ("Infrastrukturinspektioner").

Varför "det fungerade igår"

Inget regelverk höll definitionen. Den levde i Eriks kontext live i sessionen — aldrig i systemets indexerade minne. Kontextbyte = kunskapen borta.

Fix (genomförd, verifierad)

  1. Skapade /opt/amos/data/AAMOS_CANON.md — ENDA kanoniska sanningskällan (E4, Erik-låst). LandveX/quiXzoom/Ouroboros/AAMOS korrekt definierade med källor (BMD-filer + styrningspaket).
  2. Patchade rag.mjs — AAMOS_CANON som första tier-1-källa. Backup: api/rag.mjs.bak-canon-20260606-155322. (via SSM root)
  3. Byggde om RAG-index — 94 chunks/4 källor, embeddings 94/94. CANON = 11 chunks.
  4. Rättade WAVULT_TRUTH.md + AMOS_CONSTITUTION.md — pekar nu på CANON, korrekt LandveX. Alla 3 tier-1-källor överens.
  5. Arkiverade 8 dubblett-canonical-filer (0 kod-ref) → data/_ARCHIVE-truth-cleanup-20260606-155322/. Behöll WAVULT_TRUTH (18 kod-ref).
  6. Neutraliserade bostad-orphan → redirect till /landvex/index.html. Backup: public-archive/landvex-landing.html.WRONG-bostad-*.
  7. Restart amos-core (active).

Verifiering

  • Adversariell query "Säljer LandveX bostäder?" → TOP-träff = AAMOS_CANON "VÅR EGEN AFFÄR. Vi SÄLJER infrastrukturkontroll. INGET med bostad."
  • landvex.com (https) → "LandveX — Infrastrukturinspektioner"
  • Orphan-fil → redirectar nu

VIKTIGAST: Produktionschatten använder INTE RAG/CANON (upptäckt 2026-06-06 16:13)

Körande servern = services/amos-core/server.mjs (INTE scripts/server.mjs där RAG-routerna finns). /api/aamos/chat (vägen Bernt kodar mot) bygger systemprompt via getEnrichedPrompt()api/dynasty-counsel/system-prompt.mjsgetFactsContext()api/dynasty-counsel/knowledge/wavult-facts.mjs (HÅRDKODAD fil). Ingen RAG-retrieval i chat-handlern alls. Produktblocket var dessutom gömt bakom verbose:false → AI:n såg ALDRIG produktdefinitionerna i normal chat.

Fix (deployad + LIVE-verifierad)

  • Rättade wavult-facts.mjs: LandveX = "säljer infrastrukturkontroll till infrastrukturägare, uppdrag skapas i quiXzoom, INTE bostad, INTE modul i AAMOS". v1.0.0→1.1.0. Backup: wavult-facts.mjs.bak-canon-20260606-161310.
  • Gjorde produktsanningen ALLTID-injicerad (ej bara verbose) + lade LandveX i locked-rules.
  • LIVE-TEST: POST /api/aamos/chat "Säljer LandveX bostäder?" → Qwen3-32B svarade: "Nej... LandveX är en kontrollintelligensplattform som säljer infrastrukturkontroll till infrastrukturägare... inte bostadsförsäljning." HTTP 200, model qwen.qwen3-32b-v1:0.

Lärdom (kritisk för framtiden)

Det finns TVÅ serverfiler. scripts/server.mjs (där RAG bor) körs INTE. services/amos-core/server.mjs körs. Produktkunskap till AI:n = dynasty-counsel/knowledge/wavult-facts.mjs, inte RAG-indexet. CANON+RAG-fixen (steg 1-7 ovan) är fortf. korrekt men når bara konsumenter som importerar rag.mjs (drilldown, bi, sie m.fl.) — INTE huvudchatten.

Kvarstår (rekommendation)

  • Stubs döljer haverier INSTRUMENTERAT 2026-06-06 16:50 (Erik: "KÖR"). Valde INTE 503 (hade trippat circuit breakers + gett falska health-larm på 31 status-endpoints). Istället: router-middleware som taggar VARJE stub-träff med X-AAMOS-Stub:true + Warning-header + _stub:true i body + console.warn-logg. Status-koder ORÖRDA. Ny endpoint /api/_stub-report rankar mest-anropade stubs (för att prioritera riktiga implementationer). Backup: batch-stubs.mjs.bak-instrument-20260606-164952.
    • Bug fångad i test före deploy: em-dash i Warning-header gav ERR_INVALID_CHAR → hade krashat alla 432 stubs med 500 (= breaker-trip). Fixad till ASCII.
    • Live-fynd: /orborus/fraud/flags anropas i produktion men är en STUB (fejk fraud-data). Bernt-agentens egen heartbeat träffar den. Bör byggas på riktigt.
    • Nästa steg (ej gjort): kör /api/_stub-report regelbundet → prioritera vilka av 432 som ska bli riktiga. Känsligast: /sanctions/screen ("clear"), /aml/status ("compliant"), /pay/charge, /stripe/webhook, /kyc/status — dessa fejkar compliance/betalning.
  • wavult-facts.mjs stale-fält STÄDAT 2026-06-06 16:35: emails → @aamos.systems, domäner → aamos.systems, Optical Insight + UAPIX borttagna (döda), VYRA → PAUSED (Erik: "ligga pausad tills vidare"), mission omskriven. Backup: wavult-facts.mjs.bak-cleanup-20260606-163506. ⚠️ @aamos.systems-mailboxar ÄR EJ provisionerade än (bara @wavult.com finns live) — måste skapas.
  • Konsolidera: wavult-facts.mjs OCH AAMOS_CANON.md är nu två sanningskällor. Idealt: facts.mjs läser från CANON, annars driftar de isär igen.
  • AMOS_KNOWLEDGE.md har stale "Optical Insight"/"ej live"-info — synka mot CANON.