refactor(parser): extract item rules and selection engine #105
No reviewers
Labels
No labels
area:backend
area:frontend
area:infra
area:ocr
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
phase:M1
phase:M2
phase:M3
phase:M4
phase:M5
phase:M6
phase:M7
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
TJC/bill-splitter!105
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/92-extract-item-rules"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
ReceiptParseEngineinto competing rules behind a selection engine (ADR-0006 Phase A, step A4).IReceiptRule+ItemCandidate: each rule returns an item reading (or a reject) with a confidence; the engine keeps the highest.ItemText, shared by the rules.NamelessPriceRejectRule>UnitPriceColumnRule>QuantityNamePriceRule, calibrated so selection reproduces the old first-match order.UnitPriceDetail/bare-charge pre-filters stay where A3 left them (a distinct reject: "unreadable amount" vs this layer's "price with no name").Test plan
dotnet build backend/BillSplitter.sln -warnaserror: 0 warnings, 0 errors.dotnet test backend/tests/BillSplitter.Tests: 86 passed, corpus byte-identical (noexpected.jsonchanged).Closes #92