From ed7680b58f0453d838f8e29935e21517fc46c9be Mon Sep 17 00:00:00 2001 From: Francwa Date: Wed, 20 May 2026 01:21:47 +0200 Subject: [PATCH] docs(changelog): log parse-confidence scoring + ParseReport tuple --- CHANGELOG.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index db84720..27c8a2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,29 @@ callers). ## [Unreleased] +### Added + +- **Release parser — parse-confidence scoring** (`alfred/domain/release/parser/scoring.py`, + `alfred/knowledge/release/scoring.yaml`). `parse_release` now returns + `(ParsedRelease, ParseReport)`. The new `ParseReport` frozen VO + carries a 0–100 `confidence`, a `road` (`"easy"` / `"shitty"` / + `"path_of_pain"`), the residual UNKNOWN tokens, and the missing + critical fields. EASY is decided structurally (a group schema + matched); SHITTY vs PATH_OF_PAIN is decided by score against a + YAML-configurable cutoff (default 60). Weights and penalties also + live in `scoring.yaml` — title 30, media_type 20, year 15, season + 10, episode 5, tech 5 each; penalty 5 per UNKNOWN token capped at + -30. `Road` is a new enum, distinct from `ParsePath` (which records + the tokenization route, not the confidence tier). `ReleaseKnowledge` + port gains a `scoring: dict` field. + +### Changed + +- **`parse_release` signature** is now `(name, kb) → tuple[ParsedRelease, + ParseReport]` instead of returning a bare `ParsedRelease`. Call + sites updated in `application/filesystem/resolve_destination.py` and + `agent/tools/filesystem.py`. Tests updated accordingly. + --- ## [2026-05-20] — Release parser v2 (EASY + SHITTY)