Skip to content

release: 2.23.0 - findings.json for real audits, suite 6 wired into the live eval - #136

Merged
svedbg merged 2 commits into
mainfrom
findings-json-and-lifecycle-eval-2.23.0
Sep 9, 2026
Merged

svedbg merged 2 commits into
mainfrom
findings-json-and-lifecycle-eval-2.23.0

Conversation

@svedbg

@svedbg svedbg commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • otchet.md: every completed audit also writes findings.json — same seven-plus-confidence fields as the prose report, one object per finding, null for findings with no numeric/named location. Material guidance change → minor bump.
  • eval_skill.py: new --lifecycle mode sends suite 6's five-month timeline fixture (I11 — raise without annex, pay after termination, severance without termination, sick-days restart, class raised early/not raised) to a live model for the first time, graded by person-and-month (location_lifecycle/grade_lifecycle) rather than by row, since the same row number is a different person in each monthly sheet. Ground truth is lifecycle_test.py's own reconcile().
  • lifecycle_test.py: free self-check proves a hand-written correct sentence for each of the 6 I11_* ids grades as identified before any paid seed runs.
  • CLAUDE.md: documents both additions.
  • Version bumped 2.22.0 → 2.23.0 in both plugin manifests and both marketplace mirrors.

Caveat carried into this PR

LIFECYCLE_KEYWORDS has never been calibrated against a paid transcript (same limitation KOMPLEKT_KEYWORDS already states). A first real --lifecycle run (paid, ~$2-5/seed on Sonnet) should happen before trusting it for grading; that run is not part of this PR per CLAUDE.md's rule to never run eval_skill.py unprompted.

Test plan

  • test/rates_test.py
  • test/skill_test.py (manifests/version consistency)
  • test/checks_test.py
  • test/preflight_test.py
  • test/k_checker_test.py
  • test/audit_test.py
  • test/komplekt_test.py
  • test/lifecycle_test.py (including the new eval-grading self-check)
  • test/eval_skill.py --selftest (free, no paid session)
  • test/eval_skill.py --lifecycle --dry --seeds-list 1 (prompt/CLI plumbing sanity)
  • pre-commit hook: all five suites + K5/K6 + B/F/I checker green

🤖 Generated with Claude Code

svedbg and others added 2 commits September 9, 2026 09:11
…to the live eval

otchet.md now asks every completed audit to also write findings.json - same
seven-plus-confidence fields as the prose, one object per finding, so a result
can be read by a dashboard or compared month to month without re-parsing
Bulgarian text. This is a material guidance change (minor bump).

eval_skill.py gains --lifecycle: suite 6's five-month timeline fixture (I11)
sent to a live model for the first time, graded by person-and-month rather
than by row via a new (location_lifecycle, grade_lifecycle) pair, with
lifecycle_test.py's own reconcile() as ground truth. LIFECYCLE_KEYWORDS is
uncalibrated against a paid transcript, same caveat KOMPLEKT_KEYWORDS already
carries - triage misses before believing them.

lifecycle_test.py adds a free self-check that a hand-written correct sentence
for each of the 6 I11 break ids grades as identified, before any paid seed is
spent proving it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…pen twice

location_lifecycle()'s bare-digit fallback matched any 1-2 digit number found
anywhere in a finding's kade text - a row reference ("ред 8"), a statute
article - and silently mislocated the finding instead of failing closed, the
way location()'s own row parsing already refuses to do. Now the bare-digit
fallback only applies when the number sits immediately adjacent to the
identifier (as reconcile()'s own ground-truth "ИДЕНТ ММ" string, and
lifecycle_test.py's self-check, actually have it); anywhere else in the
sentence it is dropped rather than trusted.

print_graded()'s amount-mismatches sub-loop also still used the pre-lifecycle
`where == "file"` check three lines below the isinstance(where, int) fix
applied to the main loop in the same function, so a lifecycle amount
mismatch printed "[row СЛ-003 04]" instead of "[СЛ-003 04]".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@svedbg
svedbg merged commit 4c9b409 into main Sep 9, 2026
12 checks passed
@svedbg
svedbg deleted the findings-json-and-lifecycle-eval-2.23.0 branch September 9, 2026 07:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant