docs(p11): okf 0.8.1 measured - source-quota carries the denominators, one prior constant ranked the price schedule out [skip-docs]
P11 (order 20260910T225652Z), NOK 0, no push. PATH okf is 0.8.1 (uv tool list, __version__, --help flags). src/ untouched. (ix) on 0.8.1 shipped: 629/623/6 and 629/620/9 - PM's predicted denominators, now measured. --no-source-quota alone gives back 629/621/8 and 629/617/12 in both arms; the exact numbers are an interaction with tie-shared-rank (both arms) and stem-prefix (open arm). --title-covered never fires here (byte- identical payload). 0.8.1 with the three new rules off reproduces the 0.7.0 payloads' delivered lists and budgets. P10 section 6 diagnosed: a bisect over okf's own history (known-positive at both ends) puts the price schedule's loss at okf 38104b7, whose only consume code change is DOCUMENT_PRIOR_EXPONENT 1.0 -> 0.5; putting that one constant back in a copy returns the old payload byte for byte. tie-shared-rank is ruled out; known_positive 10349 -> 12563 is a version marker, not the mechanism. On 0.8.1 the schedule is over_budget_after_knapsack, not below_k. okf check on 0.8.1 has 15 rules, not 16: rule 16 (bundle_mismatch) is on okf main 7cca9e0, in no tag. Run from an export of 7cca9e0 the K3-15 pair is rc 1 and the right pair rc 0 - a real cross-corpus mismatch, not an okf defect. Offer rows on four corpora: identifiers unchanged (65/50, 435, 982, 272). The P10 doc gets dated additions in sections 4 and 6; the old sentences stand. Test docstring: +2 lines naming the 0.8.1 rule count, no behaviour change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
d8dadbf236
commit
ce22b0e0e6
3 changed files with 421 additions and 0 deletions
|
|
@ -151,6 +151,20 @@ i den nye. Det er dokumentet hele S7c-målingen («begge låser når prisskjemae
|
|||
endrer rangeringen — men det er en **rapportert observasjon, ikke en diagnose**: ingen måling her
|
||||
isolerer flagget som årsak, og ingen betalt kjøring sier hva bortfallet koster et forslag.
|
||||
|
||||
**Tilføyd 2026-09-11 (P11).** Setningen over står som den ble skrevet; dette er diagnosen den
|
||||
manglet. **Årsaken er IKKE `--tie-shared-rank`.** En bisect over okf sin egen historikk viser
|
||||
prisskjemaet LEVERT på posisjon 10 til og med `f6fea13` og `withheld: below_k` fra og med
|
||||
**`38104b7`** (2026-09-09). Hver commit ble kjørt fra `git archive` mot samme base og samme
|
||||
spørsmål, med kjent-positiv på begge ender: `6776c37` gir den GAMLE payloaden og `v0.7.0` den NYE,
|
||||
begge med identisk levert liste. Den eneste kodeendringen `38104b7` gjør i `consume.py` er
|
||||
dokument-prioren, `total / n` → `total / n**0.5` (`DOCUMENT_PRIOR_EXPONENT`). Satt tilbake til 1.0
|
||||
i en kopi av `38104b7` gir den gamle payloaden byte-identisk tilbake. Default-armens fall
|
||||
(72 535 → 47 679) skjedde i to trinn: `38104b7` (→ 63 644) og deretter tie-effekten ved `a364ef4`
|
||||
(→ 47 679). `known_positive` 10 349 → 12 563 er en versjonsmarkør: tallet flyttet seg ved `17c49fc`
|
||||
og `c95d189` mens den leverte lista sto. På okf 0.8.1 er prisskjemaet ikke lenger `below_k`, men
|
||||
`over_budget_after_knapsack`. Målt med `scratchpad/p11/bisect/` og `scratchpad/p11/exponent/`; tall
|
||||
og kommandoer står i `docs/2026-09-11-p11-okf-081.md` § 4 og § 9.
|
||||
|
||||
Dette er hele grunnen til at en re-spilt payload er en NY måling og ikke en reparert gammel.
|
||||
|
||||
## § 5 `okf check` før og etter, med kjent-negativ
|
||||
|
|
@ -197,6 +211,11 @@ uten et endret tall er støy.
|
|||
innholdet ble et annet.
|
||||
* **Prisskjema-bortfallet i § 4 er observert, ikke diagnostisert.** Ingen måling her isolerer
|
||||
`--tie-shared-rank` som årsak.
|
||||
**Tilføyd 2026-09-11 (P11):** diagnostisert nå, og `--tie-shared-rank` er ikke årsaken.
|
||||
Prisskjemaet ble rangert ut av okf `38104b7`, som endret dokument-prioren
|
||||
(`DOCUMENT_PRIOR_EXPONENT` 1.0 → 0.5). Når bare den konstanten settes tilbake i en kopi av
|
||||
commiten, kommer den gamle payloaden tilbake byte-identisk. Se § 4 over og
|
||||
`docs/2026-09-11-p11-okf-081.md` § 4.
|
||||
* **(A), (B) og (C) forblir operatørens** og ble ikke flyttet av denne økta.
|
||||
* PATH-okf 0.7.0 er ikke bevist å være samme commit som PMs frosne `958e9bc`; versjonsstrengen er
|
||||
det eneste som er målt, og de to sprikte i flaggliste.
|
||||
|
|
|
|||
400
docs/2026-09-11-p11-okf-081.md
Normal file
400
docs/2026-09-11-p11-okf-081.md
Normal file
|
|
@ -0,0 +1,400 @@
|
|||
# P11 — po på okf 0.8.1
|
||||
|
||||
Ordre `20260910T225652Z-5329131326-from-.claude`, 2026-09-11. Ingen betalt kjøring. **NOK 0.**
|
||||
Ingen push. okf på PATH: **0.8.1** (tagg `v0.8.1` = `3daf983`). Basen:
|
||||
`~/repos/portfolio-optimiser/scratchpad/s7c/k2-bundle-s7c` ved ref
|
||||
`sha256-tree:f14872a01104e47474093611b1960c6c541e4701dc40147a00c8e1b337c8a92a`. Spørsmålet
|
||||
ordrett: «Finn kostnadsbesparelser i Stange skole-anbudet».
|
||||
|
||||
## § 0 Hva som ER målt og hva som IKKE er det
|
||||
|
||||
**Målt:**
|
||||
|
||||
* At PATH-okf er 0.8.1, målt på tre uavhengige måter (§ 2).
|
||||
* At P10s premiss (ix), PMs forutsagte nevnere 629/623/6 og 629/620/9, **holder på 0.8.1**. P10s
|
||||
avvik skyldtes versjonen, og det er nå en måling i stedet for en forklaring (§ 3).
|
||||
* Hvilken regel som bærer flyttet: `--no-source-quota` ALENE gir 0.7.0-nevnerne tilbake i begge
|
||||
armer. De eksakte 0.8.1-tallene er et samspill med `--tie-shared-rank` (begge armer) og
|
||||
`--stem-prefix` (åpen arm). `--title-covered` fyrer aldri på denne basen (byte-identisk payload).
|
||||
* At 0.8.1 med de tre nye reglene av reproduserer 0.7.0-payloadene: samme leverte liste og samme
|
||||
budsjett.
|
||||
* **Diagnosen P10 § 6 manglet:** prisskjemaet ble rangert ut av ÉN produsent-konstant, nemlig
|
||||
dokument-prioren `DOCUMENT_PRIOR_EXPONENT` 1.0 → 0.5 i okf `38104b7`. Funnet ved bisect over okf
|
||||
sin historikk og bevist med en én-variabel-test. `--tie-shared-rank` er utelukket, og flyttet i
|
||||
`known_positive` er en versjonsmarkør og ikke mekanismen. På 0.8.1 er prisskjemaet ikke lenger
|
||||
rangert ut. Det kuttes av budsjettet (§ 4).
|
||||
* Tilbudsradene over fire korpus: identifikator-tallene står uendret på 0.8.1, mens `chars` flytter
|
||||
seg fordi payloaden er en annen (§ 5).
|
||||
* At `okf check` på 0.8.1 har **15 regler, ikke 16**, og at K3-15-paret er et ekte avvik mellom to
|
||||
korpus. Det siste er målt med 16-regel-checkeren fra okf `main` (§ 6).
|
||||
|
||||
**IKKE målt:**
|
||||
|
||||
* Ingenting her er bekreftet mot en levende modell. Ingen betalt kjøring er gjort.
|
||||
* Hva et budsjett-kuttet prisskjema koster et forslag.
|
||||
* Om eksponent 0.5 er riktig for K2 generelt. okf sveipet den over 18 rader, og dette er ÉTT
|
||||
spørsmål.
|
||||
* Hva `scratchpad/nbundler-p2/skill-n100/SKILL.md` inneholdt da N-dokumentet 2026-09-08 målte
|
||||
«exit 0 × 3» (§ 6).
|
||||
|
||||
## § 1 Premisser, med utfall per rad
|
||||
|
||||
| # | premiss (ordrens) | utfall | kommando |
|
||||
|---|---|---|---|
|
||||
| (i) | HEAD `d8dadbf`, to utrackede. po sin `ls-remote` er umålt av PM | ✅ HEAD og de to utrackede stemmer eksakt. **`git ls-remote origin main` = `d8dadbf…` = HEAD, altså upushet = 0.** STATE sa 4 (`455d611`, målt 10.09); operatøren har pushet siden | `git rev-parse --short HEAD` · `git status --porcelain` · `git ls-remote origin main` |
|
||||
| (ii) | STATE er 119 linjer | ✅ 119 | `wc -l STATE.md` |
|
||||
| (iii) | arbeidstre 1 577/5, frossen eksport 1 566/5 + 11, ruff, format 199, mypy, golden | ✅ alle. Frossen eksport: 1 566 passed / 5 skipped, 1 failed + 10 errors, altså de 11 navngitte, med 18 linjer `not a git repository`. mypy: 37 filer. Golden `ea8c534…` | `uv run pytest -q` · `git archive d8dadbf` til `/tmp` + `uv run --frozen pytest -q` · `uv run ruff check src tests` · `uv run ruff format --check src tests` · `uv run mypy src` · `shasum -a 1 tests/golden/demo-transcript.stdout` |
|
||||
| (iv) | PATH-okf er 0.8.1 | ✅ på tre måter, se § 2 | § 2 |
|
||||
| (v) | flaggene ordrett fra `--help` | ✅ ordrett. `--source-quota` har default 2, `--stem-prefix` er PÅ siden 2026-09-09 | `okf consume --help` |
|
||||
| (vi) | (ix) = P10 l. 39, considered/withheld/delivered | ✅ brukt som FØR-rader | — |
|
||||
| (vii) | basen ved ref `f14872a0…` | ✅ assertert med `--ref` i HVER re-kutting (okf nekter ved avvik): 14 + 1 + 14 sonder, alle rc 0 | `okf consume … --ref sha256-tree:f14872a0…` |
|
||||
| (viii) | spørsmålet ordrett | ✅ | — |
|
||||
| (ix) | P9 § 4 sine seks tilbudsrader | ✅ reprodusert eksakt på dagens kode | `scratchpad/p11/measure_p11.py` |
|
||||
| (x) | § 6-diagnosen (PM-premiss) | ⚠️ **DELVIS.** «Rangert ut, ikke filtrert» ✅ på 0.7.0. «Tie-breaking utelukket» ✅. «Produsent-versjonsforskjell» ✅, nå navngitt som `38104b7`. **«`known_positive` 10 349 → 12 563» er IKKE mekanismen** ❌: det tallet flytter seg ved `17c49fc` og `c95d189` mens den leverte lista står byte-identisk. **På 0.8.1 er koden heller ikke `below_k`**, men `over_budget_after_knapsack` | § 4 |
|
||||
| (xi) | innboksen har 3 meldinger | ✅ 3, og alle er ført til terminaltilstand | `find ~/.claude/coord/portfolio-optimiser/inbox -type f \| wc -l` → 3, deretter 0 |
|
||||
| (xii) | K3-15-paret går fra rc 0 til rc 1 | ❌ **AVVIK på PATH-0.8.1: fortsatt rc 0 / 15 regler.** Flippen holder bare på okf `main` `7cca9e0`, som ingen tagg inneholder | § 6 |
|
||||
| (xiii) | foreldede «15 regler»-sitater | ✅ funnet der premisset sa (test-docstring l. 3, STATE l. 25/30). **Men 15 er fortsatt riktig tall på 0.8.1.** Docstringen fikk en presisering, se § 7 | `git grep -n -E '15 (regler\|rules)'` |
|
||||
| (xiv) | måleteknikk | ✅ fulgt: rc fanget direkte, `--out` rett til fil, `--k` og ikke `-k` | — |
|
||||
| — | «`okf check` med 16 regler» | ❌ **15 på PATH-0.8.1**. 16 finnes bare på `7cca9e0` | § 6 |
|
||||
| — | `grep -rn 'okf check' src tests scripts` gir ett treff | ✅ 1 treff, en docstring. grep rc 0 | — |
|
||||
|
||||
## § 2 Versjonsmålingen
|
||||
|
||||
```
|
||||
uv tool list
|
||||
# llm-ingestion-okf v0.8.1
|
||||
# - okf
|
||||
which okf
|
||||
# ~/.local/bin/okf
|
||||
~/.local/share/uv/tools/llm-ingestion-okf/bin/python -c "import llm_ingestion_okf as p; print(p.__version__)"
|
||||
# 0.8.1
|
||||
okf --version
|
||||
# usage: okf [-h] {consume,check,skill,project,build} ... (rc 2: flagget finnes ikke)
|
||||
git -C ~/repos/llm-ingestion-okf ls-remote origin main
|
||||
# 7cca9e079edc… refs/heads/main
|
||||
git -C ~/repos/llm-ingestion-okf ls-remote --tags origin 'v0.8*'
|
||||
# v0.8.0^{} = 4d1f9d3… v0.8.1^{} = 3daf983…
|
||||
```
|
||||
|
||||
Flagglista fra `okf consume --help` på 0.8.1, ordrett, ved siden av 0.7.0-lista som P10 § 3 målte:
|
||||
|
||||
```
|
||||
0.7.0: --cost-vocabulary --k --limit --no-tie-shared-rank --out --question
|
||||
--rarity-weight --ref --reserve-top-rank --tie-shared-rank --withheld-titles
|
||||
0.8.1: --question --k --limit --cost-vocabulary --reserve-top-rank --rarity-weight
|
||||
--tie-shared-rank --no-tie-shared-rank --stem-prefix --no-stem-prefix
|
||||
--title-covered --no-title-covered --source-quota N --no-source-quota
|
||||
--withheld-titles --out --ref
|
||||
```
|
||||
|
||||
Seks flagg er nye: `--stem-prefix`/`--no-stem-prefix` («ON since 2026-09-09»),
|
||||
`--title-covered`/`--no-title-covered` («ON since 2026-09-10») og `--source-quota N`/`--no-source-quota`
|
||||
(«Default 2 since 2026-09-10»). `--tie-shared-rank` er PÅ («ON since 2026-09-10»). `--help` er
|
||||
primærkilden for flagg, ikke okf sin CHANGELOG.
|
||||
|
||||
## § 3 (ix)-tabellen — 0.7.0 og 0.8.1 side om side
|
||||
|
||||
Alle 0.8.1-rader er kjørt med okf 0.8.1. De fire lesesidereglene `--source-quota 2`,
|
||||
`--stem-prefix`, `--title-covered` og `--tie-shared-rank` er PÅ som default, og hver rad slår av det
|
||||
som står i navnet. «pris» sier hvor `del-ii-bilag-7-prisskjema/prissammenstilling-sheet-1` (67 245
|
||||
tegn) havnet. po sin egen `prepass.admit_payload` mot den monterte basen gir **ADMITTED på alle 18.**
|
||||
|
||||
**Default-armen** (flaggløs: `--k 8`, `--limit 120000`):
|
||||
|
||||
| payload | okf | considered / withheld / delivered | budsjett brukt av limit | `title` | pris | levert tekst (tegn) |
|
||||
|---|---|---|---|---|---|---|
|
||||
| s7c GAMMEL | `6776c37` | 629 / 621 / 8 | 79 440 av 120 000 | 0 av 8 | withheld `below_k` | 72 535 |
|
||||
| p10 v2 | 0.7.0 | 629 / 621 / 8 | 54 931 av 120 000 | 8 av 8 | withheld `below_k` | 47 679 |
|
||||
| **r1 shipped** | 0.8.1 | **629 / 623 / 6** | 67 011 av 120 000 | 6 av 6 | withheld `below_k` | 60 646 |
|
||||
| r2 `--no-source-quota` | 0.8.1 | 629 / 621 / 8 | 54 931 av 120 000 | 8 av 8 | withheld `below_k` | 47 679 |
|
||||
| r3 `--no-stem-prefix` | 0.8.1 | 629 / 623 / 6 | 67 011 av 120 000 | 6 av 6 | withheld `below_k` | 60 646 |
|
||||
| r4 `--no-title-covered` | 0.8.1 | 629 / 623 / 6 | 67 011 av 120 000 | 6 av 6 | withheld `below_k` | 60 646 |
|
||||
| r5 `--no-tie-shared-rank` | 0.8.1 | 629 / 621 / 8 | 73 211 av 120 000 | 8 av 8 | withheld `below_k` | 64 756 |
|
||||
| r6 de tre nye av | 0.8.1 | 629 / 621 / 8 | 54 931 av 120 000 | 8 av 8 | withheld `below_k` | 47 679 |
|
||||
| r7 alle fire av | 0.8.1 | 629 / 621 / 8 | 71 999 av 120 000 | 8 av 8 | withheld `below_k` | 63 644 |
|
||||
|
||||
**Den åpne armen** (`--cost-vocabulary --k 12 --limit 160000`):
|
||||
|
||||
| payload | okf | considered / withheld / delivered | budsjett brukt av limit | `title` | pris | levert tekst (tegn) |
|
||||
|---|---|---|---|---|---|---|
|
||||
| s7c GAMMEL | `6776c37` | 629 / 617 / 12 | 150 249 av 160 000 | 0 av 12 | **LEVERT pos. 10** | 141 470 |
|
||||
| p10 v2 | 0.7.0 | 629 / 617 / 12 | 88 297 av 160 000 | 12 av 12 | withheld `below_k` | 76 824 |
|
||||
| **r1 shipped** | 0.8.1 | **629 / 620 / 9** | 108 219 av 160 000 | 9 av 9 | withheld `over_budget_after_knapsack` | 97 772 |
|
||||
| r2 `--no-source-quota` | 0.8.1 | 629 / 617 / 12 | 85 873 av 160 000 | 12 av 12 | withheld `below_k` | 74 510 |
|
||||
| r3 `--no-stem-prefix` | 0.8.1 | 629 / 619 / 10 | 147 593 av 160 000 | 10 av 10 | withheld `over_budget_after_knapsack` | 135 343 |
|
||||
| r4 `--no-title-covered` | 0.8.1 | 629 / 620 / 9 | 108 219 av 160 000 | 9 av 9 | withheld `over_budget_after_knapsack` | 97 772 |
|
||||
| r5 `--no-tie-shared-rank` | 0.8.1 | 629 / 619 / 10 | 143 733 av 160 000 | 10 av 10 | **LEVERT pos. 8** | 133 844 |
|
||||
| r6 de tre nye av | 0.8.1 | 629 / 617 / 12 | 88 297 av 160 000 | 12 av 12 | withheld `below_k` | 76 824 |
|
||||
| r7 alle fire av | 0.8.1 | 629 / 617 / 12 | 77 645 av 160 000 | 12 av 12 | withheld `below_k` | 66 696 |
|
||||
|
||||
**Hva tabellen sier, én påstand om gangen:**
|
||||
|
||||
1. **PMs forutsigelse holder på 0.8.1.** Shipped gir 629/623/6 og 629/620/9. P10s avvik skyldtes
|
||||
altså versjonen, og det er nå målt og ikke bare forklart.
|
||||
2. **`--source-quota` er den ene regelen som er NØDVENDIG i begge armer.** r2 alene gir 629/621/8
|
||||
og 629/617/12 tilbake. Mekanismen står i `withheld`-kodene. På r1 er 209 (default) og 219 (åpen)
|
||||
konsepter `source_quota_exceeded`, fordi kvoten 2 skyver ut de mange små utdragene fra SHA-planen
|
||||
og romlisten (v2 har opptil 5 fra én kilde, r1 høyst 2). Plassene fylles av de neste
|
||||
kandidatene, som er større, og knapsacken dropper 2 og 3 av dem over budsjett. Resultatet er
|
||||
færre utdrag med mer tekst: budsjettet øker med 22,0 % og 22,6 %, levert tekst med 27,2 % og
|
||||
27,3 %.
|
||||
3. **De eksakte tallene er et SAMSPILL, ikke én regel.** I default-armen krever fallet fra 8 til 6
|
||||
at også `--tie-shared-rank` er på: r5, med kvote på og tie av, gir 8. I den åpne armen krever
|
||||
fallet fra 12 til 9 at også `--stem-prefix` og `--tie-shared-rank` er på: r3 og r5 gir 10. Ingen
|
||||
enkeltregel kan få æren alene.
|
||||
4. **`--title-covered` fyrer aldri på denne basen.** r4 er byte-identisk med r1 i begge armer
|
||||
(`shasum -a 1` gir `0ec7157e…` og `f9346cbf…` for begge par), som okf sin egen melding sa for K2.
|
||||
5. **0.8.1 med 0.7.0s regler ER 0.7.0.** r6 har samme leverte `(concept_id, text_sha256)`-liste,
|
||||
samme budsjett og samme tekst som v2 i begge armer. Det eneste som skiller dem er
|
||||
`budget.known_positive` (12 563 → 13 238), altså kontraktsdokumentet instrumentet måler seg
|
||||
selv mot.
|
||||
6. Hvert utdrag i alle 14 nye payloads bærer `title`.
|
||||
|
||||
## § 4 Prisskjemaet — diagnosen P10 § 6 manglet
|
||||
|
||||
**Rang uten kutt.** Sonden bruker samme flagg per rad, men `--k 200 --limit 50000000`, så
|
||||
knapsack-kuttet aldri fyrer:
|
||||
|
||||
| arm | r1 | r2 | r3 | r4 | r5 | r6 | r7 |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| default | 193 | 193 | 192 | 193 | 194 | 193 | over 200 (`below_k`) |
|
||||
| åpen | 20 | 20 | 21 | 20 | 20 | 21 | 20 |
|
||||
|
||||
`rank` i et utdrag er LEVERINGSPOSISJON (`len(delivered) + 1` i okf `consume.py`), ikke
|
||||
fusjonsrang. Med k = 200 leverer alle radene 200, så posisjonen blir rangen. I den åpne armen står
|
||||
prisskjemaet på 20–21 under hver rad. Ingen av de fire flaggene bringer det tilbake til topp 12. I
|
||||
den gamle payloaden sto det på 10.
|
||||
|
||||
**Bisect over produsentens egen historikk**, åpen arm. Hver commit er kjørt fra
|
||||
`git archive <commit> src tools docs` under `scratchpad/p11/bisect/`, med okf-verktøyets egen python
|
||||
og commitens egne defaults. okf-repoet er bare lest, og PATH-okf er urørt. Kjent-positiv på BEGGE
|
||||
ender: `6776c37` gir den gamle payloaden og `v0.7.0` gir v2, begge med identisk levert liste
|
||||
(`concept_id` + `text_sha256`).
|
||||
|
||||
| okf-commit | åpen: considered / withheld / delivered | budsjett | `known_positive` | pris | = s7c GAMMEL | = v2 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| `6776c37` | 629 / 617 / 12 | 150 249 | 10 349 | LEVERT pos. 10 | **ja** | nei |
|
||||
| `56ae274` · `56c1205` · `116d3e1` · `a37d5ce` | 629 / 617 / 12 | 150 249 | 10 349 | LEVERT pos. 10 | ja | nei |
|
||||
| `17c49fc` | 629 / 617 / 12 | 151 131 | **12 049** | LEVERT pos. 10 | **ja** | nei |
|
||||
| `c95d189` · `c3b645b` · `f6fea13` | 629 / 617 / 12 | 153 011 | **12 563** | LEVERT pos. 10 | **ja** | nei |
|
||||
| **`38104b7`** | 629 / 617 / 12 | 77 645 | 12 563 | **withheld `below_k`** | nei | nei |
|
||||
| `a364ef4` | 629 / 617 / 12 | 88 297 | 12 563 | withheld `below_k` | nei | **ja** |
|
||||
| `v0.7.0` | 629 / 617 / 12 | 88 297 | 12 563 | withheld `below_k` | nei | **ja** |
|
||||
|
||||
Budsjettet og `known_positive` flytter seg ved `17c49fc` og `c95d189` mens lista står.
|
||||
`38104b7` (2026-09-09, «recovery yields to declaration, and 9 % of the corpus that was in no
|
||||
segment») endrer tre hunks i `consume.py`. Den eneste kodelinja som verken er kommentar eller
|
||||
docstring er dokument-prioren: `totals[document] / units[document]` blir
|
||||
`totals[document] / units[document] ** DOCUMENT_PRIOR_EXPONENT`, med konstanten satt til 0.5. En
|
||||
tetthet blir sublineær, så et dokument delt i mange enheter får prioren sin tilbake. Ved `38104b7`
|
||||
tar `romliste-teknisk` 8 av 12 plasser.
|
||||
|
||||
**Én-variabel-testen.** Eksportene ligger under `scratchpad/p11/exponent/`, og KUN den ene linja er
|
||||
endret i kopien (`sed`, 1 treff av 1):
|
||||
|
||||
| produsent | eksponent | åpen, k 12 | pris (k 12) | pris uten kutt | = s7c GAMMEL | = PATH-0.8.1 shipped |
|
||||
|---|---|---|---|---|---|---|
|
||||
| `38104b7` | 0.5 (som levert) | 629 / 617 / 12 | withheld `below_k` | pos. 20 | nei | — |
|
||||
| `38104b7` | **1.0** | 629 / 617 / 12 | **LEVERT pos. 10** | pos. 10 | **ja, byte-lik liste** | — |
|
||||
| `v0.8.1` | 0.5 (som levert) | 629 / 620 / 9 | withheld `over_budget_after_knapsack` | pos. 20 | nei | **ja** (kontroll) |
|
||||
| `v0.8.1` | **1.0** | 629 / 620 / 9 | withheld `over_budget_after_knapsack` | **pos. 10** | nei | nei |
|
||||
|
||||
Default-armen går samme vei (bisect, flaggløs). Lista er lik den gamle til og med `f6fea13`
|
||||
(72 535 tegn). Den faller ved `38104b7` til 63 644 tegn; med eksponent 1.0 i kopien er det 72 535 og
|
||||
byte-lik liste igjen. Den faller en gang til ved `a364ef4`, til 47 679, som er lik v2. Det andre
|
||||
fallet er nøyaktig det `--no-tie-shared-rank` reverserer på 0.8.1: r7 (alle fire av) har samme
|
||||
leverte liste som `38104b7`, og r6 (tie PÅ) samme liste som `a364ef4`. Det er målt i begge armer.
|
||||
|
||||
**Konklusjon, med tall:**
|
||||
|
||||
* **Prisskjemaet ble RANGERT UT, ikke filtrert, og av én produsent-konstant:**
|
||||
`DOCUMENT_PRIOR_EXPONENT` 1.0 → 0.5 i okf `38104b7`. Satt tilbake i en kopi av den commiten gir
|
||||
konstanten den gamle payloaden byte-identisk tilbake, med prisskjemaet på posisjon 10.
|
||||
* **`--tie-shared-rank` er utelukket som årsak.** Prisskjemaet var alt `below_k` ved `38104b7`, før
|
||||
tie-effekten kom (`a364ef4`), og r7 på 0.8.1 (tie av) gir `below_k`. Tie-regelen bærer derimot den
|
||||
ANDRE halvdelen av tekstfallet i default-armen (63 644 → 47 679).
|
||||
* **`known_positive` 10 349 → 12 563 er en versjonsmarkør, ikke mekanismen.** Tallet flyttet seg ved
|
||||
`17c49fc` og `c95d189` mens den leverte lista sto byte-identisk.
|
||||
* **Det finnes intet flagg for prioren.** okf 0.8.1 med alle fire lesesideregler av er byte-lik
|
||||
`38104b7`.
|
||||
* **På 0.8.1 er diagnosen en ANNEN.** Prisskjemaet er ikke lenger `below_k`, fordi kvoten løfter det
|
||||
inn i kortlista. Det er `over_budget_after_knapsack`: 67 366 byte tekst mot en rest knapsacken ikke
|
||||
har. Med `--limit 240000` leveres det på posisjon 7 (11 levert). Med `--no-tie-shared-rank` alene
|
||||
leveres det på posisjon 8. Eksponent 1.0 alene på 0.8.1 gir det rang 10 uten kutt, men kuttet står.
|
||||
|
||||
## § 5 Tilbudsradene — fire korpus, samme instrument
|
||||
|
||||
Instrumentet er `scratchpad/p9/measure_v070.py`, kopiert til `scratchpad/p11/measure_p11.py` med to
|
||||
endringer: absolutte stier, og id-dumpene lagt i `scratchpad/p11/`, så P9s egne filer ikke skrives
|
||||
over. Komposisjonen er uendret: den SHIPPEDE `generate.grounding_offer` over
|
||||
`render_context(payload)` pluss basens tekst, slik `run_project` komponerer `_grounding_text`.
|
||||
|
||||
**Kjent-positiv-kontroll FØR bruk.** P8s tre K2-rader, byte-identisk:
|
||||
|
||||
| rad | konsepter | tegn | identifikatorer | = P8 |
|
||||
|---|---|---|---|---|
|
||||
| K2 s7c + `payload-open` | 630 | 1 991 597 | 50 | ✅ |
|
||||
| K2 s7c + `payload-default` | 630 | 1 970 415 | 50 | ✅ |
|
||||
| K2 s7a2 (peker-armen) | 629 | 1 894 500 | 50 | ✅ |
|
||||
|
||||
**Tilbudet, P9 og 0.8.1 side om side.** Alle radene har 0 kostlinjer og `derive` REFUSED:
|
||||
|
||||
| Korpus | Bygg | Konsepter | P9-payload: tegn / id | 0.8.1-payload: tegn / id |
|
||||
|---|---|---|---|---|
|
||||
| K2 (uten payload) | v0.7.0-pinnen | 453 | 1 940 723 / **65** | — (ingen payload) |
|
||||
| K2 + åpen | v0.7.0-pinnen | 453 | 2 037 246 / **65** | 2 043 690 / **65** |
|
||||
| K2 + default | v0.7.0-pinnen | 453 | 2 016 064 / **65** | 2 005 070 / **65** |
|
||||
| K2 + åpen | s7c (payloadens egen base) | 630 | 1 991 597 / 50 | 1 998 041 / **50** |
|
||||
| K2 + default | s7c (payloadens egen base) | 630 | 1 970 415 / 50 | 1 959 421 / **50** |
|
||||
| N100 `n100-2023` | v0.7.0 (V3) | 446 | 462 041 / **435** | 461 939 / **435** |
|
||||
| N200 `n200-2024` | v0.7.0 (V3) | 1 133 | 1 500 962 / **982** | 1 497 743 / **982** |
|
||||
| N500 `n500-2024` | v0.7.0 (V3) | 270 | 408 220 / **272** | 411 188 / **272** |
|
||||
|
||||
P9-kolonnen er reprodusert eksakt på dagens kode. «P9-payload» er de samme filene P9 brukte
|
||||
(`scratchpad/s7c/payload-*.json` og `scratchpad/nbundler-p2/payload-n*.json`). «0.8.1-payload» er
|
||||
re-kuttet i denne økta (`scratchpad/p11/payload-{open,default}-r1-shipped.json` og
|
||||
`scratchpad/p11/payload-n*-081.json`). N-payloadene er kuttet med P2s egen default-kommando, og
|
||||
spørsmålet er LEST ut av den gamle payloaden.
|
||||
|
||||
**Hypotesen holdt for identifikatorene, men ikke for tegnene.** Ingen N-rad flytter seg i
|
||||
identifikatorer, fordi hver identifikator i kuttet også står i basens tekst. `chars` flytter seg på
|
||||
alle radene, fordi `grounding_offer` leser kuttet PLUSS basen, og kuttet er et annet. Rang 1 er
|
||||
fortsatt det spurte kravet på alle tre (`Krav 3.3.1—13`, `Krav 2.9.2—12`, `Krav 10.2—2`), men rang
|
||||
2–8 er andre dokumenter.
|
||||
|
||||
**N-ablasjonen** (`scratchpad/p11/n-ablation/`, samme seks rader som for K2). r7 (alle fire av) er
|
||||
byte-lik P2-payloaden på alle tre. r2 (`--no-source-quota`) gir SAMME leverte liste som shipped. r3
|
||||
og r5 flytter hver for seg rang 2–8. Rangflyttet bæres altså av `--stem-prefix` og
|
||||
`--tie-shared-rank`, ikke av kvoten, slik `--help` sier («a bundle with no alternatives is
|
||||
unaffected»).
|
||||
|
||||
**En observasjon, ikke et funn mot okf.** Kvoten endrer likevel payloaden på en base med én kilde:
|
||||
ikke utdragene, men `withheld`-kodene. Alle 438, 1 125 og 262 withheld-oppføringene er
|
||||
`source_quota_exceeded` på 0.8.1, mot `below_k` på P2 og på r2. «Rangert ut» og «kappet av kvoten»
|
||||
er to ulike fakta, og på en base med én kilde viser payloaden bare det andre. Ingen FYI er sendt,
|
||||
fordi dette er et valg av kodeprioritet og ingen målt verdi er gal.
|
||||
|
||||
## § 6 `okf check` — regelantall, nevnere og kjent-negativ
|
||||
|
||||
**På PATH-okf 0.8.1** (`scratchpad/p11/check_matrix.sh`, rc fanget direkte), 24 rader:
|
||||
|
||||
| skill | payload | rc | rapportlinje | funn |
|
||||
|---|---|---|---|---|
|
||||
| `SKILL-k2-s7c` (0.8.1, samme base) | 14 P11-payloads, r1–r7 × 2 armer | **0** × 14 | conformant: **15 rules** over 6–12 excerpts og 617–623 withheld | 0 |
|
||||
| `SKILL-k2-s7c` | `p10/payload-default-v2.json` | **0** | conformant: 15 rules over 8 excerpts and 621 withheld entries | 0 |
|
||||
| `SKILL-k2-s7c` | `p10/payload-open-v2.json` | **0** | conformant: 15 rules over 12 excerpts and 617 withheld entries | 0 |
|
||||
| `SKILL-k2-s7c` | `s7c/payload-default.json` (GAMMEL) | **1** | NOT conformant: 15 rules over 8 excerpts and 621 withheld entries | 8 × `excerpt_unnamed` |
|
||||
| `SKILL-k2-s7c` | `s7c/payload-open.json` (GAMMEL) | **1** | NOT conformant: 15 rules over 12 excerpts and 617 withheld entries | 12 × `excerpt_unnamed` |
|
||||
| `SKILL-k2-s7c` | kjent-negativ `{}` | **1** | NOT conformant: 15 rules over 0 excerpts and 0 withheld entries | **9** |
|
||||
| P10s SKILL (0.7.0, samme base) | `p10/payload-default-v2.json` | 0 | conformant: 15 rules … | 0 |
|
||||
| **K3-15:** P9s SKILL (pinnen, `18ae18ab…`) | `nbundler-p2/payload-n100.json` (`da6b8204…`) | **0** | conformant: 15 rules over 8 excerpts and 438 withheld entries | 0 |
|
||||
| `SKILL-n100` (0.8.1, generert her) | `nbundler-p2/payload-n100.json` | 0 | conformant: 15 rules … | 0 |
|
||||
| `SKILL-n100` | `p11/payload-n100-081.json` | 0 | conformant: 15 rules … | 0 |
|
||||
| P2s `skill-n100/SKILL.md` | `nbundler-p2/payload-n100.json` | 0 | conformant: 15 rules … | 0 |
|
||||
|
||||
**Regelantallet på PATH-0.8.1 er 15, ikke 16**, i hver av de 24 radene. Grunnen er målt i
|
||||
okf-repoet, som bare er lest. `rule_bundle_identity` (`bundle_mismatch`) kom i `7cca9e0`. **Ingen
|
||||
tagg inneholder den commiten** (`git tag --contains 7cca9e0` er tom), og den er ikke forfar til
|
||||
v0.8.1 (`git merge-base --is-ancestor 7cca9e0 v0.8.1` → rc 1). Installert `contract_check.RULES` =
|
||||
15. Antall `rule_`-definisjoner: 15 i v0.8.1 og 16 i `7cca9e0`.
|
||||
|
||||
**Med 16 regler.** `7cca9e0` er kjørt fra `git archive` under `scratchpad/p11/okf-7cca9e0/`, med
|
||||
dens `src` først på `PYTHONPATH` til okf-verktøyets python (versjonsstreng 0.8.1, `RULES` 16).
|
||||
PATH-okf er urørt.
|
||||
|
||||
| skill | payload | rc | rapportlinje | funn |
|
||||
|---|---|---|---|---|
|
||||
| **K3-15:** P9s SKILL (pinnen `18ae18ab…`) | `nbundler-p2/payload-n100.json` (`da6b8204…`) | **1** | NOT conformant: 16 rules over 8 excerpts and 438 withheld entries | **1 × `bundle_mismatch`**, på både `bundle_id` og `ref` |
|
||||
| **riktig par:** `SKILL-n100` (generert for `n100-2023`) | `nbundler-p2/payload-n100.json` | **0** | conformant: **16 rules** over 8 excerpts and 438 withheld entries | 0 |
|
||||
| riktig par | `p11/payload-n100-081.json` | 0 | conformant: 16 rules … | 0 |
|
||||
| `SKILL-k2-s7c` | P11 r1 default / åpen · P10 v2 default / åpen | 0 × 4 | conformant: 16 rules … | 0 |
|
||||
| **samme id, annen build:** P9s SKILL (pinnen `18ae18ab…`) | `p10/payload-default-v2.json` (`f14872a0…`) | **1** | NOT conformant: 16 rules … | 1 × `bundle_mismatch`, på `ref` ALENE |
|
||||
| P2s `skill-n100/SKILL.md` | `nbundler-p2/payload-n100.json` | **1** | NOT conformant: 16 rules … | 1 × `bundle_mismatch`: skill-en deklarerer `vegnormal-n500-2024` |
|
||||
| `SKILL-k2-s7c` | kjent-negativ `{}` | **1** | NOT conformant: 16 rules over 0 excerpts … | **9** |
|
||||
|
||||
**Avgjørelsen om K3-15-paret: et EKTE avvik, ikke en okf-defekt.** SKILL-en og payloaden er fra to
|
||||
ulike korpus: `k2-trinn1-20260903` ved `18ae18ab…` mot `vegnormal-n100-2023` ved `da6b8204…`. En
|
||||
SKILL generert for N100-bundelen går rc 0 med 16 regler mot samme payload. Derfor er det ikke sendt
|
||||
noen FYI om en defekt. Svaret på okf sin melding gir disse tallene.
|
||||
|
||||
**FUNN i po sin egen scratchpad.** `scratchpad/nbundler-p2/skill-n100/SKILL.md` deklarerer
|
||||
`vegnormal-n500-2024` ved `673a0c2c…` (270 konsepter), altså N500. `skill-n500` deklarerer det samme,
|
||||
mens `skill-n200` er riktig. Under 16 regler går N100-paret fra rc 0 til rc 1. N-dokumentet
|
||||
2026-09-08 (§ 1, rad 6) rapporterer «exit 0 × 3» med `--skill skill-n100/SKILL.md`. Filene har
|
||||
mtime 2026-09-09 16:55, så hva fila inneholdt da den målingen ble gjort er **ikke målt** og kan ikke
|
||||
gjenskapes herfra. Det daterte dokumentet er urørt.
|
||||
|
||||
**Nevneren for påstanden om at ingen po-kjøring tolker en `okf check`-exit som byggefeil:**
|
||||
`grep -rn 'okf check' src tests scripts` gir **1 treff** (grep rc 0): docstringen i
|
||||
`tests/test_unnamed_excerpt_observation_loadbearing.py`. Ingen skript og ingen test kaller
|
||||
`okf check`.
|
||||
|
||||
## § 7 Hva som ble endret i sporede filer
|
||||
|
||||
* **`src/`: 0 filer.** Dette er en måle- og dokumentasjonsordre, og ingen måling tvang fram en
|
||||
kodeendring. `_ground_against_input` er urørt.
|
||||
* `tests/test_unnamed_excerpt_observation_loadbearing.py`: **docstring, +2 linjer**, ingen endret
|
||||
atferd. Setningen om P9 (0.7.0, 15 regler) står. Tilføyelsen sier at P11 målte 15 igjen på 0.8.1,
|
||||
og hvor den 16. regelen er.
|
||||
* `docs/2026-09-10-p10-konform-k2-payload.md`: datert **tilføyelse** i § 4 og § 6. Den gamle
|
||||
setningen står.
|
||||
* `docs/okf-konsum-kontrakter.md`: **urørt.** Den bærer ingen okf-versjon, ingen regeltelling og
|
||||
ingen konsumkommando: `grep -n -E 'okf (consume|check)|regler|rules|--stem|--source-quota'
|
||||
docs/okf-konsum-kontrakter.md` gir 0 treff. 0.8.1 har altså ikke gjort noe tall der galt, og et
|
||||
flagg uten en kommando å stå i ville vært støy.
|
||||
* `STATE.md` (local-only).
|
||||
|
||||
## § 8 Honesty limits
|
||||
|
||||
* **Ingen betalt kjøring er gjort. NOK 0.** Ingenting her er bekreftet levende. At en modell bruker
|
||||
et navngitt, kvote-spredt kutt bedre er ikke vist.
|
||||
* **En re-spilt payload er en NY måling, ikke en reparert gammel.**
|
||||
`scratchpad/s7c/payload-{default,open}.json` og `scratchpad/p10/payload-{default,open}-v2.json` er
|
||||
urørt: `shasum -a 1` gir `1ea1c389…`, `c3779de9…`, `af113bf9…` og `ff7f264e…`, både før og etter.
|
||||
Alle nye filer ligger i `scratchpad/p11/`.
|
||||
* **Nevneren for konformans er ÉN bundle i ÉN build.** `bundle_id` identifiserer ikke bytene: tre
|
||||
K2-builds bærer `k2-trinn1-20260903` ved tre ulike refs, og 16-regel-checkeren flagger nettopp det
|
||||
paret som bare skiller seg på `ref`. Sammenlign alltid `ref`.
|
||||
* **`okf check` er GULVET, aldri beviset.** Alle 14 nye K2-payloads er konforme, og den åpne armen
|
||||
leverer likevel ikke prisskjemaet. Formen holder; innholdet er et annet.
|
||||
* **K2-tilbudsraden sammenligner ULIKE builds**: v0.7.0-pinnen (`18ae18ab…`, 453 konsepter) rendret
|
||||
med payloads kuttet fra s7c-basen (`f14872a0…`, 629). Raden er gjentatt fordi P9 hadde den. De to
|
||||
«egen base»-radene i § 5 er den ærlige sammenligningen.
|
||||
* **16-regel-tallene er målt fra en `git archive`-eksport av okf `main`, ikke fra en installert
|
||||
release.** Det er en utagget commit, og en fremtidig tagg kan avvike.
|
||||
* **Bisect og én-variabel-test er kjørt med okf-verktøyets python mot eksporterte trær.**
|
||||
Kjent-positiv på begge ender, og kontrollen der v0.8.1-eksporten er lik PATH-payloaden, gjør det
|
||||
til en måling av produsenten. Det er likevel ikke produsentens egen test.
|
||||
* Diagnosen i § 4 gjelder ÉTT spørsmål på ÉN base. Om eksponent 0.5 er riktigere enn 1.0 for K2 er
|
||||
verken bekreftet eller avkreftet. okf målte sine 18 rader, og dette er én rad til.
|
||||
* **(A) prosa-skanningen, (B) blindsone-VALGET og (C) sporing av leverte kutt som fixturer forblir
|
||||
OPERATØRENS** og ble ikke flyttet av denne økta.
|
||||
|
||||
## § 9 Reproduksjon
|
||||
|
||||
Skriptene ligger under `scratchpad/p11/`. De er utracket og følger ikke med i `git archive HEAD`, så
|
||||
kjernekommandoene er gjengitt her.
|
||||
|
||||
```bash
|
||||
# (ix), én rad (åpen arm, shipped)
|
||||
okf consume ~/repos/portfolio-optimiser/scratchpad/s7c/k2-bundle-s7c \
|
||||
--question "Finn kostnadsbesparelser i Stange skole-anbudet" \
|
||||
--ref sha256-tree:f14872a01104e47474093611b1960c6c541e4701dc40147a00c8e1b337c8a92a \
|
||||
--cost-vocabulary --k 12 --limit 160000 --out scratchpad/p11/payload-open-r1-shipped.json
|
||||
# ablasjonen: legg til --no-source-quota | --no-stem-prefix | --no-title-covered | --no-tie-shared-rank
|
||||
bash scratchpad/p11/gen_k2.sh # 14 payloads
|
||||
uv run python scratchpad/p11/analyze.py # § 3
|
||||
python3 scratchpad/p11/gen_n.py # tre N-payloads på 0.8.1
|
||||
uv run python scratchpad/p11/measure_p11.py # § 5
|
||||
bash scratchpad/p11/check_matrix.sh # § 6, 15 regler
|
||||
# 16 regler, uten å røre PATH-okf:
|
||||
git -C ~/repos/llm-ingestion-okf archive 7cca9e0 src | tar -x -C scratchpad/p11/okf-7cca9e0
|
||||
PYTHONPATH=scratchpad/p11/okf-7cca9e0/src ~/.local/share/uv/tools/llm-ingestion-okf/bin/python \
|
||||
-c 'import sys, llm_ingestion_okf.cli as c; sys.argv=["okf"]+sys.argv[1:]; sys.exit(c.main())' \
|
||||
check --skill <SKILL.md> --payload <payload.json>
|
||||
# bisect: for hver commit i 6776c37, git log --reverse 6776c37..v0.7.0 -- consume-stiene, og v0.7.0:
|
||||
git -C ~/repos/llm-ingestion-okf archive <c> src tools docs | tar -x -C scratchpad/p11/bisect/tree-<c>
|
||||
PYTHONPATH=scratchpad/p11/bisect/tree-<c>/src <okf-python> scratchpad/p11/bisect/tree-<c>/tools/okf_consume.py \
|
||||
<base> --question "<spørsmålet>" --cost-vocabulary --k 12 --limit 160000 --out <fil>
|
||||
# én-variabel: det samme, med DOCUMENT_PRIOR_EXPONENT = 0.5 -> 1.0 i kopiens consume.py (sed, 1 treff)
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue