docs(release): R3, v0.8.1 tagged locally on 3daf983
The release report, in S7 form. Three premises deviated from the order and each is stated before the work rather than after: the push list has THREE lines (main, `v0.8.0`, `v0.8.1`) because the remote carries no `v0.8.x` at all; the XML folder holds 110 files, not one, of which 109 are images coded `extractor_unknown`; and the downside the changelog had to publish was recorded in NO tracked file, so it was reproduced here before publication -- rank 1 -> 2 on one constructed known-negative, the other seven delivered places unmoved. The acceptance gate is installation from the tag in an isolated export, run entirely from that export's own venv. The operator's PATH was measured and not touched: `which okf` reports not found both before and after, so this round neither installed nor removed anything there. Honesty limits are their own section: one machine and one interpreter, one five-document corpus, one publisher's files for both large rows, a grep criterion that deliberately leaves two `v0.8.0` history lines standing, and the plain statement that "the tag installs" is not "the tag is correct" -- no row here re-measures hit@1. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
3daf983de1
commit
113b3f801c
1 changed files with 131 additions and 0 deletions
131
docs/2026-09-10-r3-release-v081.md
Normal file
131
docs/2026-09-10-r3-release-v081.md
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
# R3: release v0.8.1
|
||||
|
||||
A patch release and nothing else. It carries round 16's ranking rule
|
||||
(`--title-covered`) to a reproducible ref so `vegnormal-okf` can re-measure the
|
||||
R761 product (R2b) against a tag rather than against a branch tip. No new
|
||||
functionality, no behaviour change in `src/`, no push.
|
||||
|
||||
Tag: `v0.8.1`, local and annotated, on `3daf983` (`chore(release): 0.8.1`).
|
||||
`v0.8.0` stays on `4d1f9d3` and `v0.7.0` on `1260fac` -- verified, both still
|
||||
resolve there.
|
||||
|
||||
## 1 What this round did, and what it did not
|
||||
|
||||
Did: the version on both lines it lives on (`pyproject.toml` and
|
||||
`src/llm_ingestion_okf/__init__.py`), round 16's changelog entry closed as
|
||||
`[0.8.1]` with one bullet added for the rule's measured downside, five install
|
||||
lines to `@v0.8.1`, the tag-history list given a current row and the previous
|
||||
one demoted, two prose lines and one test-count history sentence corrected
|
||||
where the tag would otherwise make them false, one commit, four gates, one tag.
|
||||
|
||||
Did not: no extractor, no arm, no flag moved. `--pdf-outline` and `--bold-title`
|
||||
stay OFF and `--title-covered` stays ON exactly as round 16 shipped it -- a
|
||||
release does not re-verify a default. No `uv lock`, no new dependency, `docs/`
|
||||
history not rewritten, K3-15 not started, nothing pushed.
|
||||
|
||||
## 2 Premises, re-measured before building on them
|
||||
|
||||
Every premise the order carried reproduced, except one (SS 3).
|
||||
|
||||
| premise | re-measured |
|
||||
|---|---|
|
||||
| base is `4d1b522`, tree clean | `4d1b522`, `git status --short` empty |
|
||||
| `v0.8.0` on `4d1f9d3`, `v0.7.0` on `1260fac` | both confirmed |
|
||||
| `git ls-remote origin refs/heads/main` | `078b7df` -- everything since is unpushed |
|
||||
| remote carries no `v0.8.0` | confirmed: newest remote tag is `v0.7.0` |
|
||||
| install lines: README 4, `llms.txt` 1 | confirmed on HEAD before editing |
|
||||
| suite in the worktree | 1582 passed, 1 skipped; 1583 collected |
|
||||
| suite in a frozen export | 1573 passed, 1 failed, 9 skipped -- the failure is `test_the_four_existing_goldens_are_untouched`, the export artefact (it runs `git status` against a repo root an export does not have) |
|
||||
| ruff | 0.16.6 |
|
||||
| `okf check` rule count | 15, so K3-15 has not landed |
|
||||
| `okf --version` | still not a flag; version read with `importlib.metadata` |
|
||||
|
||||
## 3 The deviations, stated before the work rather than after
|
||||
|
||||
**The push list has three lines, not two.** `git ls-remote origin
|
||||
refs/heads/main` is `078b7df` and the remote carries no `v0.8.0` at all, so the
|
||||
operator has to push `main`, `v0.8.0` and `v0.8.1`. Measured with `ls-remote`
|
||||
against the remote, never against the local `origin/main` ref.
|
||||
|
||||
**The downside the changelog had to state was in no tracked file.** `grep -rn
|
||||
'RITB\|NS3935'` over `docs/ skills/ tests/ src/` returns nothing that records
|
||||
it (the control: the same grep finds `NS3935` elsewhere, so it can find). It
|
||||
arrived from the order alone, so it was reproduced here before being published:
|
||||
on the five-document folder, built to scratch, the same question delivers the
|
||||
answering section at rank 1 with `--no-title-covered` and at rank 2 at the
|
||||
shipped default, with the other seven delivered places unchanged. The changelog
|
||||
states that at form level. The order's further claim -- that three other probe
|
||||
questions on the same folder improved -- was NOT reproduced here and is NOT
|
||||
published; leaving out a favourable number that was not measured in this round
|
||||
is the conservative cut, not a contradiction of it.
|
||||
|
||||
**The XML folder is not one file.** The order said it holds exactly one file.
|
||||
It holds **110**: the one NISO-STS xml, and 109 images under `graphics/`
|
||||
(43 png, 41 jpg, 25 bmp) which door B reaches because it walks recursively. The
|
||||
run reports them as `extractor_unknown` 109/110 -- coded, never silent -- and
|
||||
the concept count is unaffected. This is the repository's own recorded shape for
|
||||
that product, not a new defect.
|
||||
|
||||
**The changelog's own row differs slightly from the order's summary.** The order
|
||||
compressed hit@50 to "5/6 -> 6/6"; round 16's entry, which measured it, records
|
||||
5/6 at default `k` and **6/6** at `--k 50` before the rule. The entry's number
|
||||
governs and was not rewritten.
|
||||
|
||||
## 4 The four gates, after `git add` and after commit
|
||||
|
||||
ruff **0.16.6**. `ruff check src tests tools` -- All checks passed.
|
||||
`ruff format --check .` -- 118 files already formatted. `mypy src` -- no issues
|
||||
in 21 source files. `pytest -q` -- **1582 passed, 1 skipped**, 1583 collected,
|
||||
which is the figure the README publishes, re-measured on the release commit
|
||||
itself. `uv sync --frozen --extra extract` is the install that makes `mypy src`
|
||||
pass; plain `--frozen` drops the extra and mypy falls on `pdfplumber`.
|
||||
|
||||
## 5 The acceptance gate: installation FROM THE TAG
|
||||
|
||||
No `uv tool install`, no `uv tool uninstall`, no `--force`. The operator's PATH
|
||||
was measured and not touched: `which okf` reports **not found** both before and
|
||||
after this round -- it was already empty when the round started. Everything ran
|
||||
from the export's own venv.
|
||||
|
||||
```
|
||||
git archive v0.8.1 | tar -x -C /tmp/r3-release-v081/r3-install/export
|
||||
cd <export> && uv sync --frozen --extra extract
|
||||
```
|
||||
|
||||
| row | measured |
|
||||
|---|---|
|
||||
| version from the tag's bytes | **0.8.1** (`importlib.metadata`) |
|
||||
| suite in the export | 1573 passed, 1 failed, 9 skipped -- the export artefact |
|
||||
| `okf project` on the five-document folder | **26 concepts of 5 documents, 52 md, 0 of 5 rejected** |
|
||||
| HTML corpus | **proposed 828 plan(s); 0 with no boundary; 0 unreadable**, 828 of 828, 6 015 md |
|
||||
| R761 XML | **2 761 concepts** of 2 761 declared sections at shipped defaults, no arm flag; 109 of 110 files are images and are coded `extractor_unknown` |
|
||||
| `okf check --skill ... --payload ...` | **conformant, 15 rules, 0 findings** |
|
||||
|
||||
Bundles were built to scratch. `~/okf-test/dokumenter` and
|
||||
`~/repos/vegnormal-okf` were read and never written.
|
||||
|
||||
## 6 Honesty limits
|
||||
|
||||
- **One machine, one interpreter.** The installation is measured on this Intel
|
||||
Mac with the interpreter `uv` resolved here. It is not a portability claim.
|
||||
- **`okf project`'s 26 is ONE corpus of five documents.** It is the same five
|
||||
every previous round used, so it is a regression control, not a sample.
|
||||
- **828 of 828 and 2 761 of 2 761 are ONE publisher's files from ONE product.**
|
||||
Both numbers say the reader did not lose anything against its own denominator;
|
||||
neither says anything about a document nobody in that pipeline wrote.
|
||||
- **The grep criterion is deliberately NOT "0 hits on `v0.8.0`".** Two bare
|
||||
occurrences remain and must: the tag-history row, which exists to tell a
|
||||
reader what an older tag was, and the test-count history, which records what
|
||||
the figure was through each release. A criterion that drove them to zero would
|
||||
be deleting history to satisfy a query. Both greps ran with a known-positive
|
||||
control (`@v0.8.1` = 5) so the zero is a measurement rather than a query that
|
||||
could never match.
|
||||
- **"The tag installs" is not "the tag is correct".** Nothing here re-measures
|
||||
hit@1. Every retrieval number in the changelog and in the tag-history row is
|
||||
round 16's, re-measured by PM and not by this round. The four rows above prove
|
||||
the exported bytes run and produce the counts the repository already
|
||||
published -- no more than that.
|
||||
- **The downside is measured on one folder.** Rank 1 -> 2 on one constructed
|
||||
known-negative question over 26 concepts. It names a mechanism (a short
|
||||
generic title is covered in full by more questions than a long one is); it
|
||||
does not size how often that mechanism fires.
|
||||
Loading…
Add table
Add a link
Reference in a new issue