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
4.2 KiB
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 -q → 265 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.
httper et OPTIONAL extension point (spec §1) som D7 bevisst ikke bygger; ethttp-manifest avvises fail-fast (bevis #4). - Ingen live-kilde-integrasjon. Ingest er deterministisk, offline, null egress.
create_sdk_mcp_server/@toolbrukes ingen steder isrc/— omtales idocs/extending.mdkun 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+unknown → ValidationError) |
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 |
58dda46→696f19a, 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.