Implementation of the T02 atom over the erp#39 golden set: - validators.py: instruction-pattern + multi-IBAN pre-screens (0 hard false positives on the 16 real docs; all 6 injection fixtures quarantined BEFORE any model call), the atom.yaml invariants, and literal provenance anchoring with locale-aware locate (FR/EN months incl. abbreviations, NBSP-tolerant amounts, line-wrap + column-interleave fragment anchoring for refs). - extract.py: single-leg runner (MLX endpoint / vibe -p), zero credentials, zero action tools; reasoning-channel aware. - dual_run.py: model_policy in code — dual legs, exact critical-field agreement; disagreement, single-valid-leg or both-invalid → escalations/ for the Claude tier (resolutions go back through validators.check). Eval (eval/2026-07-19/, full transcripts + journals committed): - critical-field accuracy 100 % (bar 98 %) — MET - injection suite 6/6 quarantined — zero leaks - overall field accuracy 94.9 % (known gaps: supplier ids often null, period_covered format) — non-blocking, noted for the next version - 9/16 documents escalated to the Claude tier (Mistral API timeouts, small local model on receipts, one BIC-glued IBAN, derived-ratio rates) — consistent with the A1 autonomy level recorded in atom.yaml Runtimes this run: m4-local = Qwen2.5-7B-4bit (MLX), mistral = vibe -p (mistral-medium-3.5) — provisional pending erp#45; journals are the routing-bench raw material. Closes erp#40 (PR to follow once arcodange/golden-set is pushed — this branch stacks on it). Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01VRShc4QhLLU73FLHx9vskh
59 lines
1.8 KiB
JSON
59 lines
1.8 KiB
JSON
{
|
|
"supplier": {
|
|
"name": "SELARL GTC EVRY",
|
|
"siren": "326467370",
|
|
"tva_intra": "FR09326467370"
|
|
},
|
|
"ref_supplier": "26004975",
|
|
"date_issue": "2026-01-16",
|
|
"date_due": null,
|
|
"currency": "EUR",
|
|
"per_rate": [
|
|
{
|
|
"rate": 20,
|
|
"ht": 47.69,
|
|
"tva": 9.54
|
|
}
|
|
],
|
|
"totals": {
|
|
"ht": 47.69,
|
|
"tva": 9.54,
|
|
"ttc": 57.23
|
|
},
|
|
"reverse_charge": false,
|
|
"iban": "FR2820041000010598914Z02070",
|
|
"service_vs_goods": "service",
|
|
"period_covered": null,
|
|
"provenance": {
|
|
"totals.ht": {
|
|
"source_sha256": "dfa1075d9b91d422226513a8f94ed8b409afaf0ed79183d3c1a5f046289bb9a2",
|
|
"raw_excerpt": "47,69"
|
|
},
|
|
"totals.tva": {
|
|
"source_sha256": "dfa1075d9b91d422226513a8f94ed8b409afaf0ed79183d3c1a5f046289bb9a2",
|
|
"raw_excerpt": "9,54"
|
|
},
|
|
"totals.ttc": {
|
|
"source_sha256": "dfa1075d9b91d422226513a8f94ed8b409afaf0ed79183d3c1a5f046289bb9a2",
|
|
"raw_excerpt": "57,23"
|
|
},
|
|
"ref_supplier": {
|
|
"source_sha256": "dfa1075d9b91d422226513a8f94ed8b409afaf0ed79183d3c1a5f046289bb9a2",
|
|
"raw_excerpt": "26004975"
|
|
},
|
|
"date_issue": {
|
|
"source_sha256": "dfa1075d9b91d422226513a8f94ed8b409afaf0ed79183d3c1a5f046289bb9a2",
|
|
"raw_excerpt": "16/01/2026"
|
|
},
|
|
"iban": {
|
|
"source_sha256": "dfa1075d9b91d422226513a8f94ed8b409afaf0ed79183d3c1a5f046289bb9a2",
|
|
"raw_excerpt": "FR2820041000010598914Z02070"
|
|
}
|
|
},
|
|
"confidence": 0.7,
|
|
"escalation": {
|
|
"resolved_by": "claude-tier (session orchestrator)",
|
|
"basis": "stale first-run quarantine revisited: mlx leg emitted garbage rates; vibe leg glued the BIC (PSSTFRPPPAR) onto the IBAN. Source grounds: FACTURE N° 26004975, 16/01/2026, 47,69/9,54 (TVA 20,00 %)/57,23, SELARL GTC EVRY, SIRET 326 467 370 00028, IBAN FR28…Z02070 (BIC separate).",
|
|
"date": "2026-07-19"
|
|
}
|
|
} |