portfolio-optimiser/docs/rapport/2026-07-04-program-statusrapport-ingest.md
Kjell Tore Guttormsen 6d2837fdca docs: fjern brukernavn, hjemmekatalog-stier og privat namespace fra publisert flate
Operatørdirektiv 2026-08-18: alt av privat natur skal bort. Dette er klasse 1
fra økt 43-gjennomgangen, utvidet etter en bredere sveip enn de seks linjene
som var kjent.

FJERNET (11 linjer i 7 filer):
- /Users/ktg-stier i tre docs -> relative stier (../portfolio-optimiser-claude,
  tests/golden/...). Røpet brukernavn OG maskinens repo-layout. De relative
  formene er dessuten mer brukbare for en ekstern leser.
- `Hi there, ktg!` i demo-runbookens SSH-probe -> `<user>!`.
- `ktg-plugin-marketplace` -> `plugin-marketplace` i to plandokumenter.
- `commons`-remotens `ktg/`-referanse i CLAUDE.md -> "den private namespacen".
- git.fromaitochitta.com/ktg/portfolio-optimiser-claude ->
  .../open/portfolio-optimiser-claude. Den var både privat OG utdatert:
  søskenet ligger i open/ (verifisert med ls-remote, exit 0).

BEHOLDT, MED GRUNN:
- LICENSE:3 `Copyright (c) 2026 Kjell Tore Guttormsen` - MIT krever at
  copyright-erklæringen står. Å fjerne rettighetshaveren ville brutt lisensen,
  ikke beskyttet noe: dette er forfatterens egen, tilsiktede attribusjon på et
  åpent prosjekt.
- hello@fromaitochitta.com (SECURITY/CODE_OF_CONDUCT) og
  git.fromaitochitta.com/open/... - organisasjonens publiserte kontaktpunkt og
  publiseringsvert. Å fjerne verten ville brukket install-instruksjonene.
- Statens vegvesen-sitatene under shared/examples/ - offentlige håndbøker
  (V124, N500) sitert som kildemateriale, ikke en opplysning om noen.

IKKE RØRT, RAPPORTERT VIDERE: tre linjer under shared/ (.gitignore:7 "KTG
global", 2026-07-26-...:608 `human:ktg`, 2026-07-31-...:92
`~/repos/ktg-plugin-marketplace/catalog`). shared/ er en pull-only subtree av
commons; å redigere den her ville brutt subtree-kontrakten og blitt overskrevet
ved neste pull. Meldt til commons, som er source of truth.

MÅLT: ingen test, gate eller kode pinner de redigerte strengene (0 treff i
tests/+src/+scripts/; kjent-positiv kontroll fant DEPLOY.md pinnet i to tester).
Regresjonsgaten: 869 passed / 5 skipped, likt referansen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WVTZgMF94VZtNa7nGVtupF
2026-08-18 13:20:23 +02:00

9.4 KiB
Raw Blame History

Programstatusrapport — ingest-laget (I1I7)

Dato: 2026-07-04 Program: ingest-konnektorer for portfolio-optimiser, avsluttende steg (I7). Omfang: begge referanseimplementasjonene — MAF (dette repoet) og Claude Agent SDK-søsknet (D7, portfolio-optimiser-claude, sitert read-only). Bindende føring: ærlighets-regelen — målbilde §0 + §11 «Stack-mapping (ærlighets-avgrenset)». Rapporten skiller kapabilitet-implementert fra kjørt-mot-live, og holder to «live»-akser adskilt: live datakilde vs. live modellkjøring.


1. Executive-sammendrag

Ingest-laget lar rammeverket bygge en per-prosjekt OKF-bundle fra en ekstern kilde via ett deterministisk, JSON-Schema-validert manifest som kjører før den agentiske loopen. Laget er nå implementert og verifisert på begge stacker for de to transport-familiene som ble besluttet bygget — file/CSV og SQL — med bit-identiske golden-uttrekk fra den delte spec-en. En tredje familie, HTTP, er demonstrert som extension point på MAF-siden mot en lokal mock; MCP er dokumentert som en krok (create_sdk_mcp_server på D7), ikke en shipped connector.

Hva som gjenstår er bevisst avgrenset og oppgis eksplisitt i §2:

  • Ingen bundle er materialisert fra en live datakilde. Alle uttrekk er øvd mot committede fixtures/golden. «Første live kilde»-gaten er ukonsumert på begge stacker.
  • Live modellkjøring (ekte LLM) er ikke kjørt på MAF-siden — det ende-til-ende-beviset der er en offline, skriptet simulering som viser plumbing + deterministisk ryggrad, ikke levende LLM-atferd. På D7 er programmets ene budsjetterte live modellkjøring utført og validert (S10, 2026-07-03).

Rapporten inneholder ingen salgspåstander; hver påstand i §2 er sporet til en kjørbar kommando eller en fil-/commit-sitering i verifiseringsloggen (§3).


2. Bevist / ikke bevist

2.1 Per connector-familie

Familie Status Bevis-grunnlag
file/CSV (I2/I3) Bygget + bevist på begge stacker Golden-uttrekk bit-identisk mot committet fixture; connector + load-bearing-tester (MAF f331cb4, 994f5be; suite grønn)
SQL (I4/I5) Bygget + bevist på begge stacker SQLite-connector + typet celle-rendring + golden (MAF d7e5f2f, 4f45fe6); D7-speil i søsknet
HTTP (I6) Demonstrert extension point, MAF-only, mot lokal mock read_http-connector bak per-kjøring allow_network-grant + injiserbar transport-søm; golden mot committet payload (MAF 58dda46, bbdcd62, 24e73f4). Ikke shipped på D7.
MCP Dokumentert krok, ikke wiret i kjørestien Spec §4 dokumenterer MCP som utvidelse av http-familien; demonstrert via build_mcp_server (MAF), create_sdk_mcp_server (D7, verifisert mot offisiell SDK-doc). Ingen D7-HTTP/MCP-økt planlagt.

Ikke bevist / bevisst ikke bygget: en shipped D7 nettverks-/HTTP-connector; MCP wiret inn i optimiser-kjørestien (Non-Goal — in-process FunctionTool er default-sømmen).

2.2 To-akset «live»-distinksjon (ærlighets-kjernen)

Ordet «live» brukes om to uavhengige ting. De må ikke blandes.

(a) Live data-KILDE — å materialisere en bundle fra et ekte, kjørende endepunkt (HTTP mot en reell tjeneste, en produksjons-database e.l.):

ALDRI gjort — på ingen av stackene. Ingen bundle er materialisert fra en live kilde. Alle connector-uttrekk (CSV, SQL, HTTP) er øvd mot committede fixtures/golden. HTTP-transporten er alltid injisert med en canned get over fixture-payloads, så suiten kjører offline mot en lokal mock — ingen live kilde, ingen credentials. «Første live kilde»-gaten er ukonsumert.

(b) Live MODELL-kjøring — å drive den agentiske loopen mot en ekte LLM (Azure/Foundry eller Ollama), i motsetning til en skriptet stand-in:

  • MAF-siden: IKKE kjørt mot ekte modell. Ende-til-ende-beviset her er en offline, skriptet simulering (portfolio_optimiser.simulation, skriptet chat-klient). Den beviser plumbing, den deterministiske ryggraden og at lærings-sløyfa lukkes — ikke at en levende LLM ville produsert forslaget/dommen. Kostnadsdrevet valg (privat API for kostbart for løpende kjøring).
  • D7-siden: DONE én gang. Programmets ene budsjetterte live modellkjøring (S10) er utført og validert 2026-07-03 mot micro-bundelen; de fire artefaktene er committet som fast referanse-output under runs/s10/. Sitert read-only fra D7s egen README (linje 1314, 121133).

Den genuine modell-atferd-sammenligningen mellom stackene lever altså på D7-siden (én minimal API-kjøring), ikke på MAF-siden. Se den eksisterende stack-sammenligningsrapporten for detaljert stack-for-stack sammenstilling (dupliseres ikke her).


3. Verifiseringslogg

Hver påstand → kjørbar kommando (med faktisk fanget exit-kode/output) eller fil-/commit-sitering. Kommandoene ble kjørt 2026-07-04 fra repo-rot (MAF) og fra D7-repoet read-only.

# Påstand Verifikasjon Faktisk resultat
1 MAF-suiten er grønn offline (uten nøkkel/nettverk) uv run pytest -q exit 0237 passed, 4 skipped, 2 warnings in 22.23s
2 MAF-kildekoden er lint-ren uv run ruff check . exit 0All checks passed!
3 MAF-kildekoden er type-ren uv run mypy src exit 0Success: no issues found in 19 source files
4 D7-søsknets suite er grønn offline cd …/portfolio-optimiser-claude && uv run pytest -q (read-only, ingen commit) exit 0265 passed in 1.58s
5 Stale README-status er fjernet grep -c "not yet implemented" README.md 0
6 README oppgir HTTP som MAF-only demo mot lokal mock grep -c "local mock" README.md 1 (≥1)
7 Ingen påstand om at D7 har HTTP/MCP-støtte som bygget grep -niE '(d7|claude).{0,40}(http|mcp).{0,20}(support|built)' README.md ingen treff (exit 1)
8 extending.md skjerper D7-grensa eksplisitt grep -c "MAF-only" docs/extending.md 1 (≥1)
9 Ingen påstand om at D7 bygde HTTP/MCP grep -niE 'D7.{0,30}(built|shipped|implement).{0,20}(http|mcp)' docs/extending.md ingen treff (exit 1)
10 Alle «D7 + http/mcp»-nærhets-treff er MAF-only / krok-peker / forbud grep -rniE '(d7|claude[- ]?sdk).{0,60}(http|mcp)' README.md docs/ --exclude=2026-07-04-program-statusrapport-ingest.md + manuell klassifisering ‡ 9 treff, alle kategori (i) MAF-only, (ii) create_sdk_mcp_server-peker eller (iii) plan-prosa som forbyr D7-HTTP; 0 i README
11 Ingen påstand om live-kilde-integrasjon grep -rniE '(live|produksjon|production).{0,30}(kilde|source|integrasjon|integration)' README.md docs/rapport/ docs/extending.md --exclude=2026-07-04-program-statusrapport-ingest.md 4 treff, alle negasjoner («no live source», «no network connector and no live-source integration»)
12 D7 kjørte programmets ene live modellkjøring (S10) Sitering, read-only: D7 README.md:1314, 121133, artefakter i runs/s10/ «single budgeted live model run has been executed and validated … executed 2026-07-03»
13 file/CSV + SQL bevist på begge stacker (bit-identisk golden) Commit-sitering MAF: f331cb4, 994f5be (CSV/I2); d7e5f2f, 4f45fe6 (SQL/I4). Ingest-serie e4ee8bd..696f19a golden-tester grønne i #1
14 HTTP demonstrert bak per-kjøring nettverks-grant Commit-sitering MAF: 58dda46, bbdcd62, 24e73f4 (I6); spec §4/§8 golden-test grønn i #1

Miljønote (SC6): grep på utviklermaskinen er ugrep, som feiler på enkelte ERE-mønstre med multibyte-tegn («exceeds complexity limits»). Grep-radene over ble kjørt med system-/usr/bin/grep (POSIX ERE) for trofast semantikk; et ugrep-krasj (exit 2) er et tooling-problem, ikke en innholds-verifikasjon, og ble aldri tolket som PASS eller FAIL.

Selv-referanse-note (‡, rad #10/#11): denne rapportfila siterer selve grep-mønstrene i verifiseringsloggen over, så uten --exclude=2026-07-04-program-statusrapport-ingest.md teller kommandoen sine egne mønster-strenger — den måler seg selv (15/12 treff i stedet for 9/4). Eksklusjonen scoper målingen til filene som karakteriseres (README + docs/), ikke rapporten som beskriver dem; da reproduserer 9 og 4 stabilt mot committet tre.


4. Konklusjon

Ingest-programmet (I1I7) er levert innenfor sitt avgrensede omfang: file/CSV og SQL bygget og bit-identisk bevist på begge stacker, HTTP demonstrert som MAF-only extension point, og dokumentasjonen (README + extending.md) er brakt i samsvar med hva koden faktisk gjør. De to gjenstående gatene — første live datakilde (begge stacker) og live modellkjøring på MAF-siden — er eksplisitt merket som ikke bevist, ikke skjult. Programmet lukkes uten overselgende artefakt.

Referanser