Approved implementation plan for l10n_at_hr_payroll_private (M0, decisions D1-D4) and the GP0 legal-source inventory RECHTSQUELLEN-Privat.md, verified against primary sources (RIS, jusline): - FLAF-DB § 41 FLAG: 3.7% for 2026, 2.7% from 2028 (GesNr 10008220); KommStG 1993: 3% (GesNr 10004841) - 13th/14th salary taxation runs via § 67 EStG (Jahressechstel fixed rates, control sixth § 77 Abs 4a); § 68 covers allowances/surcharges only - plan citation corrected, also fixes the legal basis of the Bgld open point P9 - Urlaubsentgelt is § 6 UrlG (§ 9 repealed since 2001) - corrected - EOSB: no Monatsentgelt staffel; § 15 BMSVG pays out the Anwartschaft with § 14 Abs 2 Verfügungsausschluss matrix - GP5 design confirmed - 2026 overtime measure: first 15 hours, max 170 €/month (§ 124b Z 476 lit c BGBl I 43/2026) Plan section 8 items 3-6 and UrlG (8) marked verified; private module skeleton README, MEMORY, CHANGELOG and payroll skill updated (§ 67 citation fix, RECHTSQUELLEN-Privat.md as required source).
11 KiB
Agent Memory — odoo-at-payroll
Current focus
General-AT GP0: Rechtsverifikationen erledigt (2026-09-09):
personalverrechnung/RECHTSQUELLEN-Privat.md angelegt — verbindliches
Rechtsinventar für l10n_at_hr_payroll_private; Plan-Abschnitt 8
Punkte 3–6 + UrlG ✅ verifiziert. GP0-Korrekturen: 13./14.-
Begünstigung = § 67 EStG (nicht § 68 Abs 5/6 — § 68 nur Zulagen/
Zuschläge; klärt zugleich die Rechtsbasis des Bgld-Offenpunkts P9);
Urlaubsentgelt = § 6 UrlG (§ 9 seit 2001 aufgehoben); EOSB ohne
Monatsentgelt-Staffel (§ 15 BMSVG Anwartschaft — GP5-Planform
bestätigt). Werte 2026: FLAF § 41 FLAG 3,7 %, KommSt 3 %,
ÜStd-Freibetrag 15 Überstunden/170 € (§ 124b Z 476 lit c idgF
BGBl I 43/2026). GP0-Rest (Nutzer-Input/Beschaffung): Pilotmandant/
Golden-Master, Referenz-KV-Kuratierung (SI-2203/SI-2748), ELDA-/FinOnl-
Specs, UGB-Buchungsmatrix; Volltexte AZG/AngG/ArbVG § 12/LStR 2002.
D3 (Kern-Vorfinanzierung) und D4 unverändert; Bgld.-Auftrag weiter bei
offenem AP0. Runtime-Tests: source-seitig möglich; lokal fehlt noch
PostgreSQL. Nächster Schritt: GP1 (KV-Framework) nach GP0-Abschluss.
Completed
- GP0-Rechtsverifikationen General-AT (2026-09-09):
RECHTSQUELLEN-Privat.mderstellt: FLAF § 41 FLAG (RIS GesNr 10008220 — 3,7 % ab 2025, 2,7 % ab 2028; Basis Arbeitslöhne; 1.095-€-Freibetrag bei ≤ 1.460 €), KommStG 1993 (GesNr 10004841 — 3 %; § 3 Abs 3 Gemeindefreiheit; § 11 Verfahren), BMSVG (1,53 % auf Entgelt + SZ, kein HBG-Cap; § 14 Abs 2 Verfügungsausschluss; § 15 Anwartschaft statt Staffel; § 17 Verfügungsoptionen), UrlG (§ 2 30/36 Werktage; § 6 Urlaubsentgelt; § 10 Ersatzleistung), EStG 1988 (§ 33/66 Tarif 2026; § 67 sonstige Bezüge 0/6/27/35,75 % im Jahressechstel, Freigrenze 2.615 €, Kontrollsechstel § 77 Abs 4a, § 67 Abs 3/6/8 Abfertigungen; § 68 SZFN 400 €, ÜStd 10/120 €, 2026: 15/170 €, Nachtarbeit 600 €). Plan (Abschnitte 1, 4.2–4.4, 6, 8) auf Verifizierungsstand gebracht; payroll-Skill §-Zitat korrigiert. - D4-Neuverifikation komplett (2026-09-09): verifiziert gegen beide
in-repo Checkouts —
odoo/(Community) undodoo_enterprise/odoo(Odoo 19.0.0; gemergter Baum: odoo-Paket + 1.452 Addons, Community + Enterprise in einem Addons-Verzeichnis, u. a. Referenz-Lokalisierungenl10n_be_hr_payroll/l10n_ch_hr_payroll;l10n_at_payrollexistiert erwartungsgemäß nicht); beide in.gitignore. Community-Teil:hr.version(hr/models/hr_version.pyL35;wage/structure_type_id/resource_calendar_idversioniert), kalenderbasierte Work-Entry-Erzeugung (hr_work_entry/models/hr_version.pyL420_generate_work_entries- Postprocess-Hooks L500/L506),
hr.work.entry.type+ Entry-States (hr_work_entry.pyL39). Enterprise-Teil:work_time_rate/hours_per_weekauf Version (hr_payroll/models/hr_version.pyL48/L39),work_entry_source(L30; Attendance-Integrationhr_payroll_attendance/models/ hr_payslip.pyL29),hr.payslip.run(hr_payslip_run.pyL23; state L31,date_startL41,date_endL45), EOSB-Musterl10n_ae_hr_payroll(_inherit = "hr.payslip"L10,_l10n_ae_get_eos_daily_salaryL95, je-Version-Feldl10n_ae_eos_daily_salaryL102, Structure-Type-Inherit), Engine-Mechanismen an den Bgld-Plan-Zeilenreferenzen bestätigt (payslip._rule_parameterhr_payslip.pyL951, localdict,hr.salary.rule.account_debit/account_creditL11/L15, Posting-Hooks_action_create_account_moveL54 /_prepare_line_valuesL125 /_prepare_slip_linesL166,journal_idauf Structure viahr_payroll_account/models/hr_payroll_structure.pyL15,hr.payslip.input.typehr_payslip_input_type.pyL9,hr.payroll.structure.type.country_idL46);hr_payroll_account_iso20022vorhanden.l10n_at-Konten (l10n_at/data/template/account.account-at.csv, XML-ID-Musterl10n_at.chart_at_template_<code>): Sonderzahlungen 6240, Verrechnung Lohnsteuer 3540 / Finanzamt 3530 / SV 3600, Abfertigungsrückstellungen 3000, KommSt 6660, FLAF-DB 6661, DZ 6662, Wien-Abgabe 6663 — Matrix-Lücken (GP0): Löhne-/Arbeiter-Konto und SV-DG-Aufwandskonto fehlen im Standard-Template. Hinweis: Build mit eigenem Versionsschema (Manifests teils ohneversion-Key, z. B.l10n_at„3.2.1"); maßgeblich istrelease.pyversion_info(19, 0, 0).
- Postprocess-Hooks L500/L506),
- General-AT-Plan M0 (2026-09-09):
IMPLEMENTIERUNGSPLAN-Privat.mderstellt und freigegeben — Entscheidungen D1 (Pfad), D2 (Referenz-KVs SI-2203 Handwerk/Gewerbe + SI-2748 Metallgewerbe), D3 (Kern- Vorfinanzierung durch General-AT), D4 (Odoo-19-Source kurzfristig; API-Neuverifikation in M1). Umfang: General-AT-Anteil ≈ 120–172 PT, inkl. D3-Vorfinanzung ≈ 180–258 PT (M1–M9, ~7–9 Monate). README-Modultabelle, Gerüst-READMEl10n_at_hr_payroll_privateund CHANGELOG auf Planstand gebracht. - KV-Library (2026-09-09):
tools/fetch_kv_portal.py(ÖGB-Portal: Sitemap/Dashboard/Structure/Slices/Topics-JSON-APIs, 593 Varianten, Catalog+Texte JSON/MD),tools/fetch_wko_kv.py(WKO-DB: 1.820 Übersichtsseiten, 614 aktuelle Dokumente, Match gegen Baseline),tools/build_kv_catalog.py(Merge, Kammer-Klassifikation, Crosscheck, manual-review-Listen),quellen/kv/chambers/chambers.json(Kammer-Quellen kuratiert, inkl. Lücken: GÖD member-only, RA/Notariat nicht öffentlich),personalverrechnung/RUNBOOK.md(Update-Zyklus). 407 WKO↔ÖGB-Paare, 30 Datumsdifferenzen geflaggt, 195 unklassifizierte (Einzenträger-KVs) zur manuellen Sichtung. - Migration gem360 → odoo-at-payroll (2026-09-09): dev-payroll nach
origin gepusht (Backup), History-Import per
git filter-repo(Branch hier:main), Modul-Split (TASY/SV-Layer in den Kern), Model-Renamel10n.at.payroll.tasy.*, Skills/AGENTS/MEMORY neu aufgesetzt, Manifest-Beschreibung auf AP1+AP2-Stand korrigiert. - Vorher (aus gem360-Historie): AP1 Katalogmodell (35 Gruppen/433 Werte 2026), AP2 Entgelt-Engine (13 Regeln, Structure GEMBG.BGLD), SV-Werte aus ÖGK TASY-LSWH; 3 Testsuiten (Katalog, Entgelt, TASY-Import).
Open issues / blockers
- General-AT GP0-Rest offen (2026-09-09): Pilotmandant/Golden-Master fehlt; ELDA-/FinOnl-Specs mit der Bgld-AP0-Beschaffungsliste abstimmen; D3-Anrechnungsmechanik vertraglich regeln (Bgld.- Auftragserteilung); Referenz-KV-Kuratierung (SI-2203/SI-2748); UGB-Buchungsmatrix; Volltexte AZG/AngG/ArbVG § 12/LStR 2002 beschaffen. Odoo-Quellen liegen in-repo (D4 erledigt); Runtime-Tests brauchen noch PostgreSQL (Dev-Host).
- KV-Library, manuell offen (2026-09-09): manual_review-Listen im
kv-catalog.json(Match-Heuristik-Flüchtigungen, 30 Datumsdifferenzen, 195 unklassifizierte Einzelträger-KVs); Kammer-Scan-PDFs (RA Vbg, LÄK NÖ/OÖ/Bgld) ohne OCR nicht maschinenlesbar; Angestelltenärzte-KV nirgends öffentlich. Bibliothek inkl. Texte committed als5b629a5(lokaler main, noch nicht gepusht). - gem360-seitig gilt: Branch
dev-payrolldort vorerst erhalten, aber keine Payroll-Implementierung mehr in gem360 und kein Merge nach dev/va_module (Guardrails im gem360-Handoff). Die Brückel10n_at_gemeinde_payroll_vrv(AP7) wird in gem360 gegen getaggte Releases dieses Repos gebaut. - Runtime-Validierung offen (2026-09-09): Modul-Install und die 3
Testsuiten (Katalog, Entgelt, TASY-Import) sind lokal nicht lauffähig
(kein PostgreSQL). Odoo-Quellen jetzt in-repo verfügbar —
odoo/(Community,odoo-bin) +odoo_enterprise/odoo(gemergter Enterprise-Baum; Addons-Pathodoo_enterprise/odoo/addons,addons). Auf dem Dev-Host nachholen:-i l10n_at_hr_payroll,l10n_at_gemeinde_payroll --test-tags /l10n_at_hr_payroll,/l10n_at_gemeinde_payroll. Statisch grün: py_compile + XML-Well-formedness über alle Addon-Dateien. - Bgld.-Auftrag: AP0 offen (Bestandsaufnahme Pilotmandant, ELDA/FinOnl-
Specs, VRV-Buchungsmatrix, offene RIS-Verifikationen) —
IMPLEMENTIERUNGSPLAN-Bgld.mdAbschnitt 8. - Odoo-Upgrades künftig in beiden Repos (gem360 + dieses) gegen denselben Odoo-Pin validieren.
Decisions & conventions
- General-AT D1–D4 (2026-09-09): Plan geführt als
personalverrechnung/IMPLEMENTIERUNGSPLAN-Privat.md; Referenz-KVs R1 = SI-2203 + SI-2748 (Feinjustierung je Pilotmandant in GP0); D3-Vorfinanzierung — General-AT baut die sektor-neutralen Kern-Blöcke AP3/AP4 (und nötigenfalls AP5/AP6) inl10n_at_hr_payrollvor (Symmetrie zur Bgld-Planungsentscheidung „AP3 im Kern, damit das General-Produkt ihn erbt"); Anrechnung/Umlegung bei Bgld.- Auftragserteilung per Change-Request; D4 — Odoo-19-Source in-repo:odoo/(Community) +odoo_enterprise/odoo(gemergter Enterprise-Baum), beide in.gitignore; D4-Verifikation komplett erledigt. - GP0-Rechtskorrekturen General-AT (verbindlich) (2026-09-09): 13./14. Bezüge = sonstige Bezüge iSd § 67 EStG (§ 68 nur Zulagen/Zuschläge — „§ 68 Abs 5/6" war falsch); Urlaubsentgelt = § 6 UrlG (§ 9 seit 2001 aufgehoben); EOSB = BMSVG-Anwartschaft ohne Monatsentgelt-Staffel (§ 14 Abs 2 Ausschlussmatrix, § 15 Auszahlung Beiträge + Erträge); Bgld-P9-Rechtsbasis damit § 67 (Detailauslegung LStR 2002 bleibt offen).
- KV-Quellen-Architektur (2026-09-09): Main source je KV = die verantwortliche Arbeitgeberkammer; kollektivvertrag.at (ÖGB) immer als Crosscheck-Baseline (einziger vollständiger Korpus). WKO-DB deckt nur WKO-KVs ab (keine Arzt/Apotheke/RA/Notar/Land-Zweige). Lohntafel-PDFs nur verlinken, nicht downladen; im Text enthaltene Tabellen konvertieren. Historische Slices nur bei Bedarf (Default: aktuelle Version).
- SKILL.md braucht YAML-Frontmatter (name = Verzeichnisname, description, disable-model-invocation).
- Abhängigkeitsrichtung: gem360 → dieses Repo (nur die Brücke hängt an beiden), nie umgekehrt.
- Tests nur auf Wegwerf-DB (nie
gem360_dev); je Änderung py_compile + XML-Well-formedness-Check. .firecrawl/bleibt lokal unversioniert (Rechts-Rohquellen); bei Fehlen neu beschaffen — niemals aus Trainingswerten arbeiten.
Files that matter right now
personalverrechnung/IMPLEMENTIERUNGSPLAN-Privat.md— General-AT (freigegeben; GP0-Rechtsverifikationen erledigt, GP0-Rest offen; D4-Protokoll in Abschnitt 2)personalverrechnung/RECHTSQUELLEN-Privat.md— verbindliche Rechtslage General-AT (GP0-Inventar; Statusmarks ✅/⚠/❓)personalverrechnung/RUNBOOK.md— KV-Library pflegen (Update-Zyklus)personalverrechnung/quellen/kv/kv-catalog.json|.csv— der Crosscheck-Katalogpersonalverrechnung/quellen/kv/chambers/chambers.json— Kammer-Quellen-Registrypersonalverrechnung/tools/fetch_kv_portal.py/fetch_wko_kv.py/build_kv_catalog.py— Fetcher + Mergepersonalverrechnung/IMPLEMENTIERUNGSPLAN-Bgld.md— AP3+ (Freigabe-Gate)personalverrechnung/RECHTSQUELLEN-Bgld.md— verbindliche Rechtslagepersonalverrechnung/ANGEBOTS-KALKULATION-Bgld-Personalverrechnung.md— AP-Rahmen, Prämissen P1–P10odoo/+odoo_enterprise/— Odoo-19-Checkouts (unversioniert, in.gitignore; Enterprise-Baum gemergt: Community+Enterprise in einem Addons-Verzeichnis; Test-Addons-Pathodoo_enterprise/odoo/addons)addons/l10n_at_hr_payroll/— Kern (SV/TASY; AP3 landet hier)addons/l10n_at_gemeinde_payroll/— GemBG (AP1+AP2)