From 26a20e83b2a1c9c94bf07fa1ee15c67e96d18f8c Mon Sep 17 00:00:00 2001 From: Florian Egger Date: Thu, 17 Sep 2026 00:38:59 +0200 Subject: [PATCH] docs: record m4.1 odoo module scaffold --- pv-agent/.agents/MEMORY.md | 19 +++++++++++-------- pv-agent/planung.md | 30 +++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/pv-agent/.agents/MEMORY.md b/pv-agent/.agents/MEMORY.md index 0a4f307..677a846 100644 --- a/pv-agent/.agents/MEMORY.md +++ b/pv-agent/.agents/MEMORY.md @@ -5,14 +5,17 @@ Rollender Übergabe-Log für agent-Threads. Workflow: `.agents/SKILL.md` ## Current focus -D24 validiert (500-Euro-Fragen verifiziert, think-Fix, Offline-Eval Recall@8 -0,95). D25-Planung steht (planung.md Abschnitt 14) und **M4.2 ist umgesetzt**: Agent -`mode=review` mit schema-gebundenem Odoo-Kontext, Beweisklassen, Injection- -Abgrenzung und `plausibility`-Verdict; Feature-Flag `PV_REVIEW_MODE` (default -aus). KV-Varianten-Mapping gebaut (`tools/catalogs/kv_variant_map.json`, -439/614 abgedeckt, Seeds SI-2203/SI-2748 getestet). 106 Tests grün. Als -Nächstes: M4.1 — Odoo-Modul `l10n_at_payroll_agent` (Client, Kontext-Builder, -Pilot-Workflow am Draft-Payslip). +D24/D25: M4.2 (Agent-Review-Modus) umgesetzt und committet (ba4bf57); +107 Tests grün; KV-Varianten-Mapping gebaut (439/614, Seeds getestet). +**M4.1-Gerüst steht** (2026-09-16): neues Odoo-19-Addon +`l10n_at_payroll_agent` (19.0.1.0.0) im odoo-at-payroll/addons-Repo — über +den Symlink gebaut, 11 Dateien: `pv.agent.client` (stdlib urllib, +res.company.pv_agent_url/api_key statt unverifiziertem ir.config_parameter), +`pv.agent.context.builder` (Draft→Review-Kontext; ATP_PRAMIE, version.wage/ +kv_id, SVDG_*/LST_*/LNK-Linien), `pv.agent.review.wizard` (+Views/ACL/Menu) +und TransactionCase-Tests (patched `_post_json`). Alle APIs gegen den +Bestand verifiziert; Syntax/XML/CSV-Checks grün — Odoo-Test-Session und +Pilot-Verifikation am echten Draft-Lohnzettel folgen (User-Host). ## Completed (2026-09-16, Modul-Review/D25-Planung) diff --git a/pv-agent/planung.md b/pv-agent/planung.md index 1b4052b..8f9a895 100644 --- a/pv-agent/planung.md +++ b/pv-agent/planung.md @@ -462,13 +462,29 @@ im Agenten per Feature-Flag (`PV_REVIEW_MODE`, default aus) freigeschaltet. Kontext — **Whitelist hart kodiert** (facts: key/value/note; keine Namen, SVNR, Geburtsdaten; KV-Name/Code, Bundesland/Gemeinde, Beträge, Jahres- salden, Berechnungsergebnis mit Basis). `X-Request-ID` aus Odoo. -4. **Workflow „Plausibilitätsprüfung einer geplanten Auszahlung“** (Pilot): - Wizard/Dialog am Payslip/Kontext → Odoo rechnet mit den bestehenden - `_l10n_at_*`-Methoden auf einem Draft → `computation`-Objekt (Komponenten, - Bemessung, Ergebnis) → Agent prüft gegen KB → strukturiertes `plausibility`- - Verdict (verdict plausible/implausible/not-checkable + checks mit - erwartet/erhalten/⚠/source_id) → Anzeige im Dialog; keine automatische - Korrektur, Odoo bleibt autoritativ. +4. **Workflow „Plausibilitätsprüfung einer geplanten Auszahlung“** (Pilot, + **M4.1-Gerüst umgesetzt 2026-09-16** im neuen Modul + `l10n_at_payroll_agent` 19.0.1.0.0 in odoo-at-payroll/addons): + - `pv.agent.context.builder` projiziert den gerechneten Draft-Lohnzettel + (ATP_PRAMIE-Eingabe) auf facts (bruttolohn_monat via `version.wage`, + anwendender KV via `version.kv_id`, Zahlung) und computation (Draft- + Linien SVDG_*/LST_*/FLAFDB/KOMMST/DZ/BVG/WIEN_DAG als components, + SVDG-Summe als result) — alle APIs gegen den Bestand verifiziert + (lohnsteuer.py:148/266-268, versichertenmeldung.py:274, + reisekosten.py:215, hr_version_private). + - `pv.agent.client` (stdlib urllib, kein Zusatz-Dependency): POST /v1/ask + mode=review mit X-Request-ID; Konfiguration mandantenspezifisch über + `res.company.pv_agent_url` / `pv_agent_api_key` (group_hr_payroll_user, + Company-Formular-Seite) statt unverifiziertem ir.config_parameter; + neutrale UserError-Meldungen (401/422/5xx), Details nur im Log. + - `pv.agent.review.wizard` (Transient, ACL group_hr_payroll_user): + Prüfung starten → Kontext bauen → Agent aufrufen → Antwort/Verdict/ + Prüfpunkte im Dialog; Re-Render über act_window/res_id. Menü unter + „AT-Payroll (Privat)“. + - Tests `tests/test_pv_agent_review.py` (TransactionCase, patched `_post_json`: + Params/Payload/Fehlerabbildung/Rendering); laufen in der Odoo-Test-Session, + lokal nur Syntax/XML/CSV-Checks. Builder-Test am echten Lohnzettel folgt + mit der Pilot-Verifikation. 5. **Agent-seitig (M4.2, umgesetzt 2026-09-16):** v1.x-Contract `mode=review` + `context`-Feld (extra=forbid, Whitelist-Schema: facts ≤40 mit key-Muster `[a-z0-9_.-]`/value ≤200, computation mit components ≤40). Prompt-Addendum