llm-ingestion-okf/docs/2026-09-07-k3-enhetsark-metode.md
Kjell Tore Guttormsen 35b8c9e805 docs(measure): K3 unit worksheet delivered for operator, no code changed
Order 20260907T141419Z-2723316647-from-.claude: a 12-document, three-question
worksheet so the operator can answer the unit-of-knowledge question
docs/2026-09-07-k3-arm-e.md left open before any new arm is attempted. The
worksheet itself (concept splits per arm, extracted document structure,
blank checkboxes) is local-only and gitignored because it quotes corpus
content; this commit adds only the method record, which names no corpus
path or document title.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 16:36:16 +02:00

5 KiB

K3 unit worksheet, 2026-09-07

Order 20260907T141419Z-2723316647-from-.claude. Pure reading and generation: no production code, no threshold, no rating performed by this session. The worksheet itself is local-only and gitignored, because it quotes corpus document titles, extracted text, and concept splits, and this repo's public convention (CLAUDE.md) never tracks K2 corpus content or paths. This file states what the worksheet is and how it was built, without any of that content.

Why it exists

docs/2026-09-07-k3-arm-e.md § Verdict left the K3 result conditional on a question no method text resolves: what counts as one unit of knowledge in this corpus -- a top-level chapter, a numbered subsection, or something else -- and whether a table is a unit on its own or only together with the prose that introduces it. The question surfaced twice on identical material: once under Arm D (two blind raters split on the same document), once under Arm E (the same document, same split, changed reasoning). It is prior to any threshold: a threshold on an undecided unit measures the rater, not the arm.

The operator asked for a concrete artifact rather than an abstract question. This worksheet is that artifact: one worked example per sample document, with the operator's answer left blank, that becomes the reference the next K3 round is measured against.

What the worksheet contains

One section per document in the K3 sample (n = 12, the same draw every K3 round has used), in canonical position order 0-11:

  1. The concept split under three arms -- Arm B (shipping default), Arm D (--outline-run 3), Arm E (--outline-run 3 --table-grid) -- as an indented list of concept title and character length per arm, capped at 25 lines with a ... (+N) suffix when a document has more.
  2. The document's own heading structure, independent of any arm: every ATX (#) and dotted-numbered heading the shipped grammar recognises, plus contiguous table spans (a maximal run of pipe-delimited rows and grid rule lines merged into ONE span, rather than fragmented the way the shipping per-row candidate rule reads them) -- capped at 30 lines.
  3. Three checkbox questions per document -- what a unit is here, what a table is here, which arm is closest today -- plus one free-text line, all left blank for the operator.
  4. A closing summary table, 12 rows by 3 answer columns, that the operator fills in. That filled table is the deliverable: the next K3 round measures against it, stated as such at the top of the worksheet.

How it was built

Reading and generation only, run in the foreground this session, nothing written under src/ or tools/:

  • The sample draw was reproduced via the shipped draw_sample function in tools/okf_outline_measure.py (hex SHA-256 of the NFC-normalised filename, stratified 8 pdf / 3 docx / 1 xlsx) against the corpus directory, 12/12 matching the order published in docs/2026-09-07-k3-arm-e.md § Appendix.
  • Concept splits per arm were read from the archived plan JSON files for this K3 round -- Arm B from the archived baseline plans, Arm D from the archived Arm D plans, Arm E from the Arm E round's own plans -- matched to each sample document via each archive's own _index.txt (position, exit code, filename), not by re-deriving a path prefix.
  • The document's own heading structure and table spans were read with the shipped _ATX, _NUMBERED, _TABLE_ROW and _GRID_RULE patterns from llm_ingestion_okf.propose, imported rather than re-implemented, for the same reason the reach instruments import them: a worksheet carrying its own copy of the grammar would describe a second definition that can drift from the shipped one without anything going red.

Verification

  • Sample draw: 12/12 documents match the published Arm E appendix order.
  • Entry counts per arm, all 12 positions: cross-checked against the entries column of docs/2026-09-07-k3-arm-e.md § Appendix (Arm B / Arm D / Arm E). All 36 figures (12 documents x 3 arms) matched exactly, including the four documents where Arm B wrote no plan at all ("1 concept").
  • Tracked-file content boundary: this file was checked for the corpus root directory name and any absolute filesystem path -> zero occurrences. It names no document title, no corpus path, and no extracted text.
  • Worksheet content boundary: the local-only worksheet was checked for absolute paths and the corpus root directory name -> zero occurrences; it names document titles, which is expected and permitted in a local-only file, but carries no filesystem path into the corpus.

What this is not

No arm is built, changed, or shipped by this worksheet. No threshold is set. No rating is entered by this session -- every checkbox and free-text line in the worksheet is blank. The worksheet's own notes quote three findings already published in docs/2026-09-07-k3-arm-e.md (positions 5, 10, 11) as context for the operator's judgement; they are not new findings.