The context sets, the packaged knowledge bases and the example bundles are replaced by one fictitious example set about IT operations in an invented organisation: three context sets (serverrom-2027, driftsavtale-2027 and the two-base drift-og-avtale-2027), two synthetic knowledge bases under src/portfolio_optimiser/data/kunnskapsbaser and two example bundles under src/portfolio_optimiser/data/bundles. Numbers, codes and structural values in tests and fixtures are kept; names, ids and wording change. Dated measurement documents that only recorded runs on the replaced material are deleted. Gate figures measured on the new set are not comparable with earlier ones. The exclusion gate from the previous commit is green: 0 tracked files hit outside the shared/ subtree. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| k2-prisskjema-SYNTETISK | ||
| k2-prisskjema-uprisert-SYNTETISK | ||
| p7-grounding | ||
| p13b-block-sources | ||
| prepass | ||
| README.md | ||
Test fixtures
k2-prisskjema-SYNTETISK/ and k2-prisskjema-uprisert-SYNTETISK/
SYNTETISK — every number in these bundles is invented. They copy the structure of a
public-tender Prisskjema.xlsx (NS 3451 posts: code, description, unit, quantity, unit price,
sum) and nothing else. No private tender document is reproduced here, and the unit prices in
the priced variant are round synthetic values chosen to be obviously not a real bid — they must
never be read as anyone's pricing. This is the first building block of the S7b corpus.
The two variants are the two halves of the same measurement:
| bundle | Enhetspris column |
what it stands for |
|---|---|---|
k2-prisskjema-SYNTETISK/ |
filled | a priced schedule a baseline CAN be derived from |
k2-prisskjema-uprisert-SYNTETISK/ |
empty | K2's actual pre-award state — codes and descriptions, no quantities or prices |
The table form is MEASURED, not hand-typed
Both bodies are the verbatim output of the producer's own office conversion, so the fixture states something about the format rather than recording our own idea of it:
pandoc -f xlsx -t markdown --eol=lf --wrap=none <sheet>.xlsx
with pandoc 3.10.2 — the writer and the two arguments are llm_ingestion_okf.extract's
_PANDOC_WRITER / _PANDOC_ARGS. That is a pandoc simple table (a dash rule whose groups
define the column spans), NOT the pipe table render_table emits: measured in session 78, the
xlsx path reaches a concept body through inbox.py's render_inbox_concept(sanitized_text, …)
and never touches render_table at all. An empty spreadsheet cell therefore arrives as blank
space inside its column span — which is exactly what the unpriced variant has to carry for the
refusal it gates to be the real one.