Files
boc/intelligence/build-d1d2-remediering.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

9.2 KiB

BUILD-D1+D2 — Leon/Vincento Remediering: Staged Ändringsplan

Skapad: 2026-06-06
Av: Subagent (build-d1d2-staging)
Status: STAGED — GRANSKNING PÅGÅR. Bernt godkänner och kör apply-script.
Separation of duties: Subagent läser + förbereder. Bernt godkänner + kör.


🔄 AKTUELL STATUS (Läst 2026-06-06)

VIKTIG OBSERVATION: Majoriteten av D1+D2-ändringarna har redan applicerats av en tidigare session.
Nedan redovisas fullständig faktisk status per fil + vad som återstår.


REDAN KLART (verifierat i prod)

F1 — api/dynasty-counsel/knowledge/wavult-facts.mjs

Leon-objektet borttaget. CMO-vakant-kommentar finns:

// CMO: VACANT (2026-06-06) — Leon Russo De Cerame lämnade 2026-05-19; temporärt Johan (CTO) via cmo@aamos.systems.

Status: KLAR. Ingen åtgärd.

F2 — api/cognitive/homo-deus-comms.mjs

AGENTS-array: vincento borttagen
NATS-subject: borttagen
Header-kommentarer (rader 3 och 6): FORTFARANDE med Vincento-refs (harmless kommentarer, rensas i apply-script)

F3 — api/agents/list.mjs

Vincento status=offboarded :

{ id:"vincento", name:"Vincento", wave:1, human:null, role:"CMO / Operations", emoji:"🤖", status:"offboarded", offboarded_at:"2026-06-06", note:"Leon lämnade 2026-05-19" }

Status: KLAR. Ingen åtgärd.

F5 — api/homo-deus/domain-experts.mjs

hr-bot parent_agent=bernt

parent_agent: 'bernt',

Status: KLAR. Ingen åtgärd.

F6a — api/aamos/comms/engine.mjs — TEAM-objektet

leon@hypbit.com borttagen från TEAM
#marketing: ['johan@hypbit.com','erik@hypbit.com']
#board: utan leon

F7 — api/approvals.js

ops-roll inaktiverad
leon@wavult.com ur getUserRole
mock requested_by → bernt@wavult.com

V1 — Mailu cmo→cto mail-routing

Status: INTAKT — INGENTING ATT GÖRA Mailu config-export bekräftar:

- email: cmo@aamos.systems
  destination:
    - cto@aamos.systems

Kedjan: sales/marketing/[domain]@aamos.systemscmo@aamos.systemscto@aamos.systems (Johan)


ÅTERSTÅENDE ÅTGÄRDER (2 stycken)

KRITISK: api/aamos/comms/engine.mjs — Rad 384 — AKTIV ROUTING

Fil: /opt/amos/api/aamos/comms/engine.mjs
Risk: HÖG. Aktiv routing-funktion routeQuestion() skickar marketing-frågor till leon@hypbit.com (raderad adress).

Nuvarande (rad 383-384):

  } else if (q.match(/market|campaign|brand|social|seo|content|marknad|marknadsföring/)) {
    to = 'leon@hypbit.com'; reason = 'Marketing question';

Föreslagen ändring:

  } else if (q.match(/market|campaign|brand|social|seo|content|marknad|marknadsföring/)) {
    to = 'johan@hypbit.com'; reason = 'Marketing question (CTO Johan — CMO vakant)';

Kontext: routeQuestion() är en exporterad funktion som routar AI-frågor till rätt person. Marketing-frågor routas just nu till en raderad adress. Ändringen till johan@hypbit.com är konsistent med övrig routing (Johan tar CMO-rollen temporärt).

Vad som bryts om ändringen är fel: Om marketing-frågor fortfarande routas till leon@hypbit.com → silent fail (deliveryfel).

Diff:

-    to = 'leon@hypbit.com'; reason = 'Marketing question';
+    to = 'johan@hypbit.com'; reason = 'Marketing question (CTO Johan — CMO vakant)';

ÅTGÄRD: data/agent-heartbeats.json — leon-daily aktiv

Fil: /opt/amos/data/agent-heartbeats.json
Risk: MEDIUM. Scheduler-fil. leon-daily-dm-status är aktivt heartbeat-jobb som skickar Telegram till Leon (som inte längre är anställd). Övriga jobb (winston, johan, dennis, erik) SKA BEVARAS EXAKT.

Nuvarande heartbeats (5 poster):

  1. leon-daily-dm-status (agent: "leon") — TA BORT
  2. winston-monday-bank-sync — bevara
  3. johan-ecs-health-4h — bevara
  4. dennis-daily-deadlines — bevara
  5. erik-monday-weekly-decisions — bevara (notera: message_template innehåller • Leon: [senaste action] som trivial textreferens — rensa vid tillfälle)

n8n_workflow_ids nuvarande:

{
  "leon-daily": null,
  "winston-monday": null,
  "johan-4h": null,
  "dennis-daily": null,
  "erik-monday": null
}

Ta bort "leon-daily": null ur n8n_workflow_ids.

Ändringen görs med Python (ALDRIG sed på JSON):

import json
FILE = '/opt/amos/data/agent-heartbeats.json'
with open(FILE) as f:
    d = json.load(f)
before = len(d['heartbeats'])
leon = [h['id'] for h in d['heartbeats'] if h.get('agent') == 'leon' or h.get('id','').startswith('leon')]
print(f"Tar bort: {leon}")
d['heartbeats'] = [h for h in d['heartbeats'] if h.get('agent') != 'leon' and not h.get('id','').startswith('leon')]
if 'n8n_workflow_ids' in d:
    d['n8n_workflow_ids'] = {k:v for k,v in d['n8n_workflow_ids'].items() if not k.startswith('leon')}
after = len(d['heartbeats'])
print(f"Heartbeats: {before} -> {after} (expect 4)")
if after == 0: print("ERROR!"); exit(1)
open(FILE,'w').write(json.dumps(d, indent=2, ensure_ascii=False)+'\n')
print("OK")

Förväntat resultat efter ändring:

heartbeats: ['winston-monday-bank-sync', 'johan-ecs-health-4h', 'dennis-daily-deadlines', 'erik-monday-weekly-decisions']

Vad som bryts om fel:

  • Om heartbeats-array töms → inga heartbeats körs (allvarligt!)
  • Om övriga poster raderas → kritiska jobb försvinner
  • Backup måste göras INNAN

KOSMETISK: api/cognitive/homo-deus-comms.mjs — Header-kommentarer

Rader 3 och 6 i header-kommentaren nämner fortfarande Vincento (ren kommentar-text, ej funktionell):

Rad 3:

 * NATS JetStream protocol — Agent mesh for Bernt, Rufus, Sven, Kjell, Vincento

 * NATS JetStream protocol — Agent mesh for Bernt, Rufus, Sven, Kjell
 * [2026-06-06] Vincento avvecklad

Rad 6:

 *   homo.bernt.inbox / homo.rufus.inbox / homo.sven.inbox / homo.kjell.inbox / homo.vincento.inbox

 *   homo.bernt.inbox / homo.rufus.inbox / homo.sven.inbox / homo.kjell.inbox

Risk: Noll funktionell påverkan. Ren kodkosmetik. Inkluderas i apply-script.


📊 Sammanfattning — Vad som faktiskt ska göras

# Fil Ändring Risk Status
A aamos/comms/engine.mjs rad 384 leon@hypbit.comjohan@hypbit.com i routeQuestion() HÖG EJ GJORD
B data/agent-heartbeats.json Ta bort leon-daily-dm-status (Python/JSON) MEDIUM EJ GJORD
C cognitive/homo-deus-comms.mjs rader 3+6 Rensa header-kommentar (kosmetik) NUL EJ GJORD

Allt annat är redan applicerat.


⚠️ FLAGGOR FÖR BERNT

FLAGG 1 — "Leon Magnusson" = Leon Russo De Cerame (KRÄVER BESLUT)

skv-integration-w25.mjs:89 och hela EMP-004-sektionen i ouroboros-filerna använder "Leon Magnusson" — verifierat som SAMMA PERSON (leon@wavult.com, EMP-004, Head of Operations).

Bevis:

  • people.mjs:91 — EMP-004: name="Leon Magnusson", email="leon@wavult.com"
  • payroll.mjs:73 — EMP-004: name="Leon Magnusson", email="leon@wavult.com", status="active"
  • payroll-routes-agd.mjs:51 — EMP-004: name="Leon Magnusson", pnr="199005103456"

Fråga till Bernt: Bekräfta att Leon Magnusson = Leon Russo De Cerame → payroll/HR-avslut av EMP-004 ska schemaläggas (separat D3-fas).

FLAGG 2 — EMP-004 fortfarande active i payroll-system

people.mjs, payroll.mjs, skv-payroll-sweden.mjs — alla har EMP-004 som status: 'active'. Detta är utanför D1+D2-scope men kritiskt för HR/payroll-korrekthet.

FLAGG 3 — erik-monday heartbeat nämner Leon i text

I agent-heartbeats.json, erik-monday-weekly-decisions-posten innehåller:

• Leon: [senaste action]

Funktionellt ofarlig (bara displaytext). Bernt kan rensa vid tillfälle.

FLAGG 4 — heartbeat-runner.mjs buildVincentoBrief()

scripts/heartbeat-runner.mjs anropar fortfarande buildVincentoBrief() dagligen. Utanför D1+D2-scope men aktivt. Separat åtgärd.


🟢 CANON-TILLÄGG (för Bernt att lägga in manuellt i AAMOS_CANON.md)

Lägg till i /opt/amos/data/AAMOS_CANON.md:

## Agent Vincento — Avvecklad (2026-06-06)

Agent Vincento (AI-agent tilldelad Leon Russo De Cerame) är AVVECKLAD per 2026-06-06.
Leon Russo De Cerame lämnade bolaget 2026-05-19.
Vincento-agenten är inte längre aktiv i HOMO DEUS-meshet.
Historiska data och träningsfiler arkiveras men raderas inte.

## CMO-rollen — VAKANT (2026-06-06)

CMO-rollen är vakant sedan Leon Russo De Cerames avslutade anställning (2026-05-19).
Tills vidare hanteras inkommande CMO-mail (cmo@aamos.systems) av Johan Berglund (CTO).
Ny CMO-rekrytering: EJ beslutad per 2026-06-06.
AI-stöd för marketing-domänen: Ompekas till CTO (Johan/Sven) tills vidare.

🔍 VERIFIERAT: skv-integration-w25.mjs:89 — INTE ANNAN PERSON

D3-inventering flaggade "Leon Magnusson" som potentiellt annan person.
Slutsats efter undersökning: Det är SAMMA person (Leon Russo De Cerame).
Skv-integration-w25.mjs rad 89 är F-skatt-register (simulerad/testdata) med personnummer 199005103456.
Åtgärd: Inkluderas INTE i D1+D2-scope. Kräver separat Bernt-beslut för payroll-avslut.


Rapport uppdaterad 2026-06-06 med faktisk prod-status. Apply-script är minimalt — hanterar bara de 3 återstående åtgärderna (A, B, C).