fix: findings from the Cowork test, released as v0.1.1

The operator tested v0.1.0 in Cowork on 2026-11-11. README now says what
was measured there and what was not.

- miljo: no longer claims that kontroll compares "with tolerance, not bit
  for bit" when numpy or scipy differ from the note's versions. kontroll
  always compares byte for byte first, and numpy 2.5.3 gave bit for bit.
- kontroll --alt: show every differing line. The cut-off line now names
  the option instead of only counting the lines left out.
- skill simuler: the question before a run must be answerable with yes or
  no. In the test it became a choice between variants and the run stalled.
- skill forbedre: offer the working copy as a zip when the user cannot
  open the folder it was made in, as in Cowork.

263 tests pass; full kontroll: bit for bit with the note.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-11-11 20:24:58 +01:00
commit 13f6c28dc0
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
11 changed files with 126 additions and 29 deletions

View file

@ -43,7 +43,10 @@ justice chain (mostly non-programmers) and researchers. The note and its code li
- Skill frontmatter has only `name` and `description` (other keys make claude.ai reject an uploaded skill).
- `${CLAUDE_PLUGIN_ROOT}` and `${CLAUDE_PLUGIN_DATA}` are substituted in skill text, but they are not environment
variables in Bash. Skills write them literally into the command; `kjor.py` treats an empty `--data` or one containing
`${` as not given and falls back to `~/.dynamisk-rettsstat`.
`${` as not given and falls back to `~/.dynamisk-rettsstat`. Both were substituted in Cowork too (operator's test
2026-11-11: the plugin under `/root/.claude/plugins/synced/<id>/dynamisk-rettsstat`, data under
`/root/.claude/plugins/data/dynamisk-rettsstat-synced`). Cowork ran the commands in a Linux machine where numpy and
scipy were already installed in the system Python, so the venv path is untested there.
- Skills never invent numbers, show the numbers as understood before computing, divide yearly figures by 12 and say
so, relay script numbers verbatim, carry the caveats, and never install anything without asking. A
`rettsstat-modell/` in the user's folder is used only after asking, and only after `kontroll --rask` on it has been
@ -64,7 +67,8 @@ justice chain (mostly non-programmers) and researchers. The note and its code li
- Reproduction check against the note: `.venv/bin/python modell/kjor.py kontroll` (full run; about 1.5 minutes on the
development machine, measured 2026-11-11) or `.venv/bin/python modell/kjor.py kontroll --rask` (skips the full run of
`sim.py`). Six parts: core and `fasit/` against the note's checksums, `diagnose`, `forlop`, full run, extensions'
limit cases, scenario runner against `fasit/data`.
limit cases, scenario runner against `fasit/data`. `--alt` shows every differing line instead of the first 40 per
comparison.
- Try the skills' commands: `python3 modell/kjor.py diagnose eksempler/eksempel_domstol.json`,
`python3 modell/kjor.py forlop eksempler/eksempel_domstol.json`,
`python3 modell/kjor.py scenario eksempler/scenarioer/sjokkstorrelse_kjede.json --ut <scratch folder>` (`forlop` and