portfolio-optimiser-claude/docs/2026-07-04-I7-statusrapport.md
Kjell Tore Guttormsen 0c42cebf90 docs(ingest): I7 — programavslutning, D7-docs avgrenset til CSV + SQL
Docs-only program-avslutning for ingest-laget (D7-stacken). Bygget fra
commons-spec + eget repo alene — MAF-koden kun eksistens-bekreftet (I6-gate),
aldri lest/reverse-engineert.

- README: ingest-seksjon (file/CSV + sql/sqlite RO) som post-S10-tillegg;
  testtall 187 -> 265; HTTP/MCP kun peker (D7 har ingen HTTP-konnektor).
- docs/extending.md (ny): hvordan ingest-laget virker + hvordan legge til en
  kildetype; HTTP/MCP som ærlig extension-point-peker (spec §4, MAF I6-demo,
  create_sdk_mcp_server som ubygd vehikkel — brukt ingen steder i src/).
- docs/2026-07-04-I7-brief.md + -statusrapport.md: I7-brief + D7-lokal
  statusrapport m/ verifiseringslogg. Kryss-stack-kriteriet peker til
  MAF-programrapporten.

Ærlighetsregelen (method-spec §1): ingen artefakt påstår HTTP/MCP-støtte i D7
eller live-kilde-integrasjon. Grep-sjekk mot overpåstand ren.

Verifisering: 265 passed uten nøkkel/nettverk · ruff/mypy rene.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R7nuUMUyWB9viiBjz8Bo7R
2026-07-04 20:08:06 +02:00

4.2 KiB

I7 — statusrapport (D7): ingest-programmet, D7-stacken

Scope: denne rapporten dekker D7-stacken alene (dette repoet). Kryss-stack- sluttkriteriet (begge stacker materialiserer identiske golden-uttrekk) eies av MAF-programrapporten — se Kryss-stack. Dato: 2026-07-04. Ingen ny kode i I7 (docs-avslutning).

Hva D7 har bevist

# Påstand Bevis
1 D7 implementerer file (CSV) + sql (sqlite RO) mot delt spec src/…/ingest.py (FileSource, SqlSource, diskriminert union); test_ingest_golden.py, test_ingest_sql_golden.py
2 Golden-uttrekk er byte-identisk (CSV + SQL) examples/ingest-golden-file/, examples/ingest-golden-sql/ mot expected-bundle/ — golden-regresjonstester grønne
3 Alle sømmer load-bearing (rød ved detach) test_ingest_loadbearing.py, test_ingest_sql_loadbearing.py, test_ingest_spec_loadbearing.py (provenance, navigerbarhet via UENDRET okf.py, verdict-reservasjon, re-ingest-sikkerhet)
4 http-manifest avvises fail-fast (ingen stille aksept) test_ingest.py::test_malformed_manifest_is_rejected (parametriserer http OG ukjent diskriminator → ValidationError)
5 Ingest gjør null modellkall / null nettverk ingest.py er ren stdlib (ingen SDK/requests-import); hele suiten kjører uten nøkkel/nettverk
6 Full suite grønn uten nøkkel/nettverk uv run pytest -q265 passed
7 Lint + type rene uv run ruff check . → All checks passed · uv run mypy src → no issues (16 filer)
8 Dokumentasjonen er sannferdig avgrenset (CSV+SQL; HTTP/MCP kun peker) README.md (ingest-seksjon + honesty-note), docs/extending.md; grep-sjekk mot overpåstand ren

Hva D7 IKKE har (ærlighetsregelen, method-spec §1 / ingest-spec §1)

  • Ingen HTTP-konnektor, ingen MCP-konnektor. http er et OPTIONAL extension point (spec §1) som D7 bevisst ikke bygger; et http-manifest avvises fail-fast (bevis #4).
  • Ingen live-kilde-integrasjon. Ingest er deterministisk, offline, null egress.
  • create_sdk_mcp_server/@tool brukes ingen steder i src/ — omtales i docs/extending.md kun som det ubygde vehikkelet man ville grepet til for en MCP-konnektor.
  • Ingen ny live-atferd utover S10. Programmets ENE ekte API-kjøring forblir S10 (D6); ingest la ingenting til på den fronten.

Verifiseringslogg (hver påstand → kommando/kilde)

Påstand Kommando / kilde Resultat
Suite grønn uten nøkkel/nettverk uv run pytest -q 265 passed in 1.18s
Lint rent uv run ruff check . All checks passed!
Type rent uv run mypy src Success: no issues found in 16 source files
http avvist fail-fast tests/test_ingest.py:71-72 (parametrisert http+unknownValidationError) testbevist
Ingest rører ikke SDK/nett grep -n "sdk|claude_agent|create_sdk" src/…/ingest.py ingen treff (ren stdlib)
create_sdk_mcp_server ubrukt i src grep -rn "create_sdk_mcp_server|@tool" src/ ingen treff
Ingen overpåstand i docs grep http|mcp|live|egress over README.md + docs/extending.md + briefer hvert treff = negasjon eller peker; ingen påstand om D7-HTTP/MCP-støtte eller live-kilde
MAF I6 landet (I7-gaten) git -C /Users/ktg/repos/portfolio-optimiser log --oneline 58dda46696f19a, review 72cb15f — kun eksistens bekreftet
Golden byte-identisk test_ingest_golden.py, test_ingest_sql_golden.py grønne

Kryss-stack (eies av MAF-programrapporten)

Program-sluttkriteriet «begge stacker materialiserer identiske golden-uttrekk fra delt spec (CSV + SQL)» er en kryss-stack-påstand. Den eies av MAF-programrapporten (hovedrepoet), som ser begge stackene; denne D7-rapporten dupliserer den ikke. D7-siden av kontrakten er oppfylt: D7 konsumerer den delte spec-en uendret og reproduserer golden-bytene (bevis #1, #2). HTTP/MCP-extension-pointet er demonstrert MAF-only (I6, lokal mock, bak opt-in-flagg); D7 har det bevisst ikke.

Utestående (gated på operatør — ikke I7-scope)

  • Åpent-speil-synk (open/…) av I3+I5+I7-koden — outward-facing operatør-handling.
  • LICENSE-valg / S12-release.