From fc453938fa2935845230670ee2d2efdfb3d8215e Mon Sep 17 00:00:00 2001 From: fegger Date: Fri, 11 Sep 2026 11:15:59 +0200 Subject: [PATCH] [IMP] odoo-at-payroll: sync runbook and agent memory (GP0 sources, GP1 runtime, WIKU batch 1) RUNBOOK and agent-memory edits each span several work units at once, so they are recorded together, after the fact: - RUNBOOK: new section for primary-source downloads (RIS title-search conventions and short-title traps, LStR findok XML, ELDA DM-ORG, SV values, verification-finding discipline); Wissensbasis section renamed to the two-source corpus (Lexis360 briefings + WIKU Personal) with the WIKU layers in the architecture table, the WIKU batch workflow (--source, WIKU_PINS), batch inventory and the full WIKU-batch-1 conflict list - MEMORY: completed entries for the KB legal-basis cross-check, the dev-host setup and GP1 runtime acceptance (including the Core/GemBG regular_pay install blocker) and the WIKU batch-1 intake; 8.12 RIS-clarification list extended by the WIKU conflict families; current focus and files-that-matter updated to the 601-entry corpus --- .agents/MEMORY.md | 257 +++++++++++++++++++++++++++------ personalverrechnung/RUNBOOK.md | 131 +++++++++++++++-- 2 files changed, 332 insertions(+), 56 deletions(-) diff --git a/.agents/MEMORY.md b/.agents/MEMORY.md index e90fad9..c2784e0 100644 --- a/.agents/MEMORY.md +++ b/.agents/MEMORY.md @@ -2,22 +2,142 @@ ## Current focus -**Lexis360-Wissensbasis Batch 9 komplett — GP1-Abnahme Dev-Host als -nächstes Gate** -(2026-09-10): 571 Briefings kuratiert in 67 Clustern über siebzehn -Kapitel. Batch 9 (63 PDFs, neues Kapitel „Sozialversicherung“: -sva 16 · bsv 18 · gsv 12 · pvs 13 · kvs 4) erschloss erstmals das -SV-Beitragsrecht (ASVG/GSVG/BSVG), neue Selbstständige, Kranken- -versicherung ASVG und Pensionsversicherung. Querverweis-Nachtrag -lb-swa-03 → lb-pvs-02/12/13 (Teilpension § 4a APG belegt; -Regelpensionsalter-Wertekonflikt dokumentiert). Registry/Check -571/571 grün. Batch-9-Konflikte im RUNBOOK (u. a. AK-Umlage-DN- -Anteil, BSVG-HBGL 35-Faches vs Monatswert, GSVG-HBGL vs DN-HBGL, -Regelpensionsalter-Stichtage swa-03 vs pvs-02). GP1-Abnahme auf dem -Dev-Host bleibt das nächste Gate vor GP2 (Entgelt-Engine). +**WIKU-Intake komplett (Wissensbasis 601 Einträge); GP2-Baubeginn +bleibt der nächste Schritt** +(2026-09-11): Odoo-Umgebung lokal aufgesetzt (PostgreSQL 18.6, +Python-3.14-venv `.venv/`, gemergter Baum `odoo_19.0+e.20260910/…` +editable installiert; Dev-DB `odoo_dev`). GP1-Gate genommen: +`l10n_at_hr_payroll_private` installiert, `test_kv_katalog` 8 Tests, +0 Fehler. Alte Checkouts `odoo/` + `odoo_enterprise/` entfernt +(~21 GB), Doku auf den neuen Quellen-Pfad umgestellt. Befund aus +der Core/GemBG-Runtime-Validierung: `l10n_at_gemeinde_payroll` +failt beim Install (`regular_pay` existiert nicht auf +`hr.payroll.structure` — latenter Bug, Bgld-Track, offen). +Nutzer-seitig offen wie zuvor: Pilotmandant, D3, UGB- +Referenzbuchhaltung, ELDA-/FinOnl-Anmeldungen, Bgld-AP0-Abstimmung. +Nächste Gates: **GP2-Baubeginn** (General-AT); vor GP3/GP4: +DZ-Entscheidung 8.11 + RIS-Klärung 8.12. ## Completed +- **WIKU-Intake Batch 1 komplett — Wissensbasis jetzt Zwei-Quellen- + Korpus mit 601 Einträgen** (2026-09-11): Multi-Source-Erweiterung + von `personalverrechnung/tools/build_lexis_kb.py` fertig (`--source + lexis|wiku|all` für `--extract`/`--check`, `--registry` über beide + Quellen; `WIKU_PINS`-Tabelle für alle 30 Publikationen statt + Lexis-Breadcrumbs; `WIKU_PAGE_RE` entfernt Seitenzähler-Footer; + wk-ID-Raum `wk--` mit eigenem Katalog + ID-Freeze). + Layer 1: 30/30 extrahiert (`.wiku/md/`, Katalog ohne Warnungen; + „Personal aktuell“-Stand = Heft-Monat). Layer 2: 30 kuratierte + Einträge `wiku_.md` (18 Broschüren/Unterlagen/Casebooks + + 12 Hefte „WIKU Personal aktuell“ 2026, wk-akt-01…12; Heft- + Kuration via 6 parallele Agenten mit je Selbstprüfung, zentrale + Prüfung 30/30 grün). Registry/Check: **601 Einträge, 69 Cluster, + lexis 571/571 + wiku 30/30, 0 Probleme** — inkl. Fix eines + Slug-Bugs in `curated_slugs_for()` (`.md`-Suffix wurde nicht + gestrippt, wiku-`--check` wäre immer rot gelaufen). README/ + RUNBOOK auf Zwei-Quellen-Korpus umgestellt (Cluster-Tabelle akt/gwe, + Update-Zyklus je Quelle, WIKU-Batch-1-Konfliktliste im RUNBOOK). + Wichtige WIKU-Konfliktfamilien (alle ⚠ in den Einträgen + RUNBOOK): + §-124b-Zitier-Varianten wachsen (wk-akt-01 „Z 440/492“, + wk-akt-07 Mitarbeiterprämie „Z 478 vs Z 477“ — Auflösung ÜStd/ + Feiertagsentgelt via BGBl I 43/2026 = wk-akt-04 ✅ deckungsgleich + mit verbindlicher Rechtslage); SV-DN-Anteile auf §-68-Bezügen vom + Abzugsverbot § 20 Abs 2 Z 1 EStG erfasst (wk-akt-11, „Formel 7“ + gefährdet — neue RIS-Klärungsfamilie); DN-Satz freie DN 17,57 vs + 17,07 % (wk-akt-10); WF-Wien 1,5 % (wk-akt-07 → lb-lnk-05-Familie); + ALV-Entfall RV vs Endfassung (wk-akt-03/04); SV-Werte 2027 + voraussichtlich (wk-akt-05/06); AMS-All-In/ATZ-Oberwert-Auslegung + (wk-akt-09). Temporäres Selbstprüfungsskript entfernt (dauerhafte + Gates = --registry/--check). + +- **Dev-Host aufgesetzt; GP1-Runtime-Abnahme grün** (2026-09-11): + PostgreSQL 18.6 (Arch-Paket; Cluster `/var/lib/postgres/data`, + systemd-Service, Superuser-Rolle `fegger`), Python-3.14.7-venv + `.venv/` (editable install des gemergten Baums; requirements + inkl. py3.14-Pins bauen: psycopg2/gevent/python-ldap aus Source), + Dev-DB `odoo_dev`. GP1: `l10n_at_hr_payroll_private` installiert + + `test_kv_katalog` **0 failed, 0 errors (8 Tests)**. + Core/GemBG-Suiten auf Wegwerf-DB `odoo_test` (danach gedroppt): + **Install-Abbruch** — `payroll_structure_bgld.xml` L19 setzt + `regular_pay` auf `hr.payroll.structure`; Feld existiert weder + im neuen (e.20260910) noch im alten (19.0.0) Baum — latenter + Bug, nur runtime sichtbar (Fix = Bgld-Track-Aufgabe). Alte + Checkouts `odoo/` (19 GB) + `odoo_enterprise/` (2,1 GB) + gelöscht; `.gitignore` jetzt `odoo_19.0+e.20260910/` + `.venv/`. + Doku-Updates: README (Entwicklung/Tests), privater Modul-README, + IMPLEMENTIERUNGSPLAN-Privat (Quellen-Referenz-Update 2026-09-11 + in Abschnitt 2). + +- **General-AT: Beschaffungsliste abgearbeitet (Primärquellen lokal)** + (2026-09-10): 19 RIS-Gesetzestexte (Fassung 10. 09. 2026) via + firecrawl nach `.firecrawl/ris/` — Gesetzesnummern ausnahmslos per + RIS-Titelsuche ermittelt (Kurztitel-Fallen entdeckt: AVRAG + „Arbeitsvertragsrechts-Anpassungsgesetz" 10008872, BMSVG + „Betriebliches Mitarbeiter- und Selbständigenvorsorgegesetz" + 20002088, IESG „Insolvenz-Entgeltsicherungsgesetz" 10008418, APSG + „Arbeitsplatz-Sicherungsgesetz 1991" 10008788; weitere: AZG + 10008238, AngG 10008069, ArbVG 10008329, ASVG 10008147, EStG + 10004570, BAO 10003940, AÜG 10008655, UrlG 10008376, LKV 20004237, + MSchG 10008464, MSchV 20010035, VKG 10008674, KBGG 20001474, + FamZeitbG 20009586, KommStG 10004841); LStR 2002 findok-XML + (RZ_N-Markup beachten); DM-ORG 42.7.0 + Änderungsprotokoll (07/2026) + + Prüfkataloge L16 12/2025/L17/§ 109a/§ 109b + Mitteilungsfiles-XSDs + (elda_mitteilung 1.2/2.1/3.0); SV-Werte 2026 (HBGL 6.930/GFG + 551,10 ✅ deckungsgleich; GFG-Aufwertungsaussetzung § 810 Abs 3 + ASVG); BMF-L16-Formularseite. RQ-11 auf [x]-Beschaffungsstände + umgestellt; RUNBOOK-Sektion „Primärquellen-Downloads" neu; + `.firecrawl/ris/_README.md` als lokales Verzeichnis. + **Befund:** „Krankengeldumlage § 62 ASVG" = Falsch-Prämisse (RIS- + Gesamtabfrage 0 Treffer; § 62 = Beitragsabrechnung) — als + Auflösung in RQ-Privat (4/11/13) + Plan (2.1/4.6/4.7/8.10) + dokumentiert; Bgld-Dokumente (RECHTSQUELLEN-Bgld 9, PLAN- + payroll-bgld) führen denselben Prüfpunkt und sind analog zu + verifizieren — bewusst nicht fremd-editiert. + +- **General-AT: KB-Rechtsquellen-Abgleich dokumentiert** (2026-09-10): + alle 571 KB-`legal_bases` (2.767 Strings, ~130 Normwerke) gegen + `RECHTSQUELLEN-Privat.md` geprüft (Skript über kb.json; §-Ebenen + kontextverifiziert gegen False Positives wie EOSB→EO, + UrlG § 10→KommStG § 10). Befund: 15 Gesetze im RQ (EStG, ASVG, + AZG, UrlG, AngG, ArbVG, BMSVG, FLAG, KommStG, AMPFG, IESG, LStR, + BAG, BUAG/BFAK, ARG) + UGB als Matrix-Beschaffungspunkt; ~85 + Normwerke bewusst außerhalb R1; 12 echte Lücken. Umgesetzt nach + Nutzer-Freigabe: RQ **Abschnitt 13** (Abgleichsmatrix + Zuordnung + + Outside-Scope-Abgrenzung) + **Beschaffungslisten-Erweiterung** + Abschnitt 11 (AVRAG § 2g/§ 11a Abs 4, ASVG-Block §§ 11/33/34/41/ + 471a/49/44/51/53b/60/143, EStG §§ 3/63/67a/69/109a/124b Z 478, + KommStG § 10 + BAO §§ 4/29/30, AÜG, UrlG §§ 7/10a, BMSVG §§ 7/ + 9–12/27a/47, IESG § 12, Lohnkontenverordnung, Mutterschutz-/ + Karenz-Block) + Plan 4.2 AVRAG-Feinmechanik + 8.13 Karenz-Block- + Kandidat + Abschnitt-10-Nachtrag; CHANGELOG-Eintrag. BMSVG § 12 + korrekt als Zukunftssicherungsmaßnahme (§§ 9–12) identifiziert + (nicht Meldung). + +- **General-AT: Implementierungsplan an Wissensbasis angebunden** + (2026-09-10): `personalverrechnung/IMPLEMENTIERUNGSPLAN-Privat.md` + aktualisiert (Stand 2026-09-10) — neuer **Abschnitt 2.1** + (Verbindlichkeits-Regime: RECHTSQUELLEN-Privat verbindlich, KB + Sekundärquelle mit ID+Stand; Cluster→GP-Anker-Tabelle; + Nicht-enthalten-Liste: Krankengeldumlage § 62, JASV, LStR 2002); + 4.2 Regelinventar um KB-Anker-Spalte + GP2-Feinmechanik erweitert + (Mehrarbeit § 19d vs. ÜStd inkl. Differenzstunden LStR Rz 1146, + zwei Nachtfenster 22–5/19–7, Feiertagsarbeitsentgelt 2026 wieder + §-68-begünstigt); 4.3 GP3-Feinmechanik (Sechstelformel × 60 ÷ + Lohnsteuertage, Nachzahlungsmodi Rollung/15.2./Fünftel/Tarif, + SV-Anspruchsprinzip) + GP4-Neuheiten (DZ §§ 122/126 WKG — bisher + fehlende DG-Abgabe, Satzvektor BL × Jahr, ⚠ RIS; DAG 19,4 %; + beitragsfreie §-49-Abs-3-Kumulative; AK-Umlage/WF als DN-Lohnabzüge; + altersabhängige Satzausschaltungen); 4.4 BMSVG-Feinmechanik (freier + Monat taggenau, § 7-Fiktionen, Abfuhr KV-Träger); 4.6 L16-KZ/ + mBGM/Schwerarbeitsmeldung; 4.7 Aufrollungslauf + Fristenkalender; + Abschnitt 8 um 8.11 (DZ-Grundsatzentscheidung), 8.12 (KB- + Konfliktfamilien RIS-klar), 8.13 (Scope-Kandidaten ohne stille + Erweiterung) erweitert; Abschnitt 10 dokumentiert das Update; + `docs/CHANGELOG.md` Eintrag. Werte ausschließlich aus KB-Einträgen + (Recherche über 4 parallele Subagents über sva/lnk/bes, azg/ues/ + zus/url/efz, son/naz/lvr/prm, lvr/mel/vor/end/pfa/krs/nsc-Cluster). + - **Lexis360-Wissensbasis Batch 9** (2026-09-10): 67 gelieferte PDFs (im Unterordner .lexis360/batch9/) → Intake-Bereinigung: 4 text- identische Duplikate entfernt, 5-fach trunkierter Exportname der @@ -316,34 +436,74 @@ Dev-Host bleibt das nächste Gate vor GP2 (Entgelt-Engine). lb-kvs-03 „§ 120 Z 3 ASVG“ vermutlich Z 4 ⚠ — vollständige Liste im RUNBOOK (Wissensbasis, Batch-9-Abschnitt). DN-Beitragssätze 2026 und GFG/HBGL-Werte sind ✅ deckungsgleich mit RECHTSQUELLEN. -- **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). +- **General-AT GP0-Rest offen** (2026-09-10 nach Beschaffung): Pilotmandant/Golden-Master + fehlt; D3-Anrechnungsmechanik vertraglich regeln (Bgld.- + Auftragserteilung); Referenz-KV-Kuratierung (SI-2203/SI-2748, GP1, + aus in-repo KV-Library); UGB-Buchungsmatrix (erste Referenz- + buchhaltung); ELDA-/FinOnl-**Anmeldungen/Zertifikate** = Nutzer- + seite; Abstimmung ELDA-Specs mit Bgld-AP0 (Doppelverwendung). + Erledigt 2026-09-10: Volltexte AZG/AngG/ArbVG/LStR/alle KB-Abgleich- + Normen beschafft; ELDA/eSV-Spec = DM-ORG 42.7.0 (JASV belegt); + Krankengeldumlage als Falsch-Prämisse aufgelöst. Neu aus Plan- + Neu aus Plan- + Update: DZ/WKG-Grundsatzentscheidung (8.11) + WKG-Tarife + RIS-verifizieren; KB-Konfliktfamilien vor GP3/GP4 am RIS klären + (8.12: AK-Umlage Tragung, § 53a-Einheit, WBF-Wien 1,5 %, + §-124b-Zitierung, DN-SV 18,07 % vs 17,57 %, NSchAB-Beleg, + DAG-Normzitat, pfa-Grundbeträge; aus WIKU Batch 1 neu hinzu: + SV-DN-Anteile auf §-68-Bezügen § 20 Abs 2 Z 1 EStG („Formel 7“, + wk-akt-11), ALV-Entfall RV vs BgLG-Endfassung (wk-akt-03/04), + AMS-All-In/ATZ-Oberwert (wk-akt-09) — vollständige Liste im + RUNBOOK, Wissensbasis, WIKU-Batch-1-Abschnitt); KB-Scope-Kandidaten mit + Pilotmandant entscheiden (8.13 inkl. Mutterschutz-/Karenz-Block). + **Bgld-Schiene (fremdes Track, Nutzer-Review):** dortiger + Prüfpunkt „Krankengeldumlage § 62" ist nach dem + Privat-Track-Befund gegen denselben RIS-Stand zu verifizieren. - **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 als `5b629a5` (lokaler main, noch nicht gepusht). +- **RQ-Privat ↔ Wissensbasis-Rechtsquellen-Abgleich (2026-09-10):** alle + 571 KB-`legal_bases` (2.767 Zitat-Strings, ~130 Normwerke) gegen + `RECHTSQUELLEN-Privat.md` geprüft. Gesetzesebene im RQ: 15 (EStG, + ASVG, AZG, UrlG, AngG, ArbVG, BMSVG, FLAG, KommStG, AMPFG, IESG, + LStR, BAG, BUAG/BFAK, ARG) + UGB nur als Matrix-Beschaffungspunkt; + Rest bewusst außerhalb des sektoralen RQ-Scopes (SV-Parallelrechte, + Arbeitnehmerschutz, Gesellschafts-/Verfahrensrecht …). + **Echte, nirgends erfasste Lücken** (weder RQ noch RQ-Beschaffungs- + liste noch Plan): **AVRAG** (§ 2g All-in-Grundlohn, § 11a Abs 4 + Bildungsteilzeit-Aliquotierung — 124 KB-Zitate), **Mutterschutz-/ + Karenz-Block** MSchG/MSchV/VKG/KBGG/APSG/FamZeitbG (Wochengeld = + DG-Payroll-Berechnung — fehlende Scope-Entscheidung, auch Plan 8.13 + nicht), **KommStG § 10** (Zerlegung mehrere Betriebsstätten), + **EStG §§ 3/63/67a/69 + 124b Z 478 lit f** (§ 109a nur im Plan), + **ASVG-Detailnormen-Block** §§ 11/33/34/41/471a/49 Abs 2–3/44 Abs 7/ + 60/143/51/53b (im Plan punktuell via KB, RQ fehlt), **BAO §§ 4/29/30** + (Betriebsstätte), **AÜG** (KommSt-Betriebsstätte Überlasser nach + **UrlG § 7/§ 10a**, **BMSVG §§ 7/12/47**, **IESG § 12**, + Lohnkontenverordnung 2006. **Erledigt 2026-09-10 (Nutzer-Freigabe):** + RQ-Abschnitt 13 (Abgleichsmatrix) + Beschaffungslisten-Erweiterung + + Plan-8.13-Ergänzung (Karenz-Block) umgesetzt — offen bleiben die + RIS-Verifikationen der neuen Beschaffungspunkte (mit GP2/GP3/ + GP4/GP7-Baubeginn) und die Scope-Entscheidungen (Mutterschutz-/ + Karenz, Krankenstand-EFZ, Pfändung, DZ) mit dem Pilotmandanten. - gem360-seitig gilt: Branch `dev-payroll` dort vorerst erhalten, aber **keine Payroll-Implementierung mehr in gem360** und kein Merge nach dev/va_module (Guardrails im gem360-Handoff). Die Brücke `l10n_at_gemeinde_payroll_vrv` (AP7) wird in gem360 gegen getaggte Releases dieses Repos gebaut. -- **Runtime-Validierung offen** (2026-09-09): Modul-Install und die - Testsuiten (Katalog, Entgelt, TASY-Import, neu: `test_kv_katalog` - privat) 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-Path `odoo_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. +- **Runtime-Validierung: GP1 grün; Core/GemBG blockiert** (2026-09-11): + GP1-Abnahme erledigt — `test_kv_katalog` 8/8 grün auf `odoo_dev`. + Kern/GemBG-Suiten nicht lauffähig: `l10n_at_gemeinde_payroll` + bricht beim Modul-Install ab — `payroll_structure_bgld.xml` L19 + referenziert Feld `regular_pay` auf `hr.payroll.structure` + (existiert in keinem Snapshot; Modul war nie runtime-getestet). + Einzeiler-Fix im Bgld-Track nötig, danach + `createdb ` + `-i l10n_at_hr_payroll,l10n_at_gemeinde_payroll + --test-tags /l10n_at_hr_payroll,/l10n_at_gemeinde_payroll` + nachholen (Aufrufmuster README „Tests"). - Bgld.-Auftrag: AP0 offen (Bestandsaufnahme Pilotmandant, ELDA/FinOnl- Specs, VRV-Buchungsmatrix, offene RIS-Verifikationen) — `IMPLEMENTIERUNGSPLAN-Bgld.md` Abschnitt 8. @@ -389,9 +549,12 @@ Dev-Host bleibt das nächste Gate vor GP2 (Entgelt-Engine). vor (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. + seit 2026-09-11 `odoo_19.0+e.20260910/odoo-19.0+e.20260910/` + (gemergter Community+Enterprise-Baum 19.0+e.20260910, 1.481 + Addons, `.gitignore`; ersatzlos für `odoo/` + `odoo_enterprise/`); + D4-Verifikation komplett erledigt (gegen 19.0.0 — gleiche relative + Pfade; Neuzugänge gegen den neueren Snapshot zu Baubeginn + verifizieren). - **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 = @@ -416,19 +579,29 @@ Dev-Host bleibt das nächste Gate vor GP2 (Entgelt-Engine). ## Files that matter right now -- `personalverrechnung/wissensbasis/` — Lexis360-Wissensbasis (README, - dokumente/ 571 Einträge, kb.json, INDEX.md; Batch-Workflow im RUNBOOK) +- `.firecrawl/ris/` — Primärquellen-Downloads (19 RIS-Gesetzestexte, + LStR-2002-XML, DM-ORG 42.7.0 + Prüfkataloge + XSDs, SV-Werte 2026; + Verzeichnis `_README.md` mit GesNr und Kurztitel-Fallen; lokal, + unversioniert) — Beschaffungsstand RQ-Privat Abschn. 11 +- `personalverrechnung/wissensbasis/` — Zwei-Quellen-Korpus (README, + dokumente/ 601 Einträge = 571 Lexis + 30 WIKU, kb.json, INDEX.md; + Batch-Workflow im RUNBOOK) - `.lexis360/` — lizenzierte PDF-Exporte + Layer-1-Volltexte `md/` + `_catalog.json` (lokal, unversioniert) - `personalverrechnung/tools/build_lexis_kb.py` — KB-Pipeline + (Multi-Source: `--source lexis|wiku|all` für --extract/--check; + --registry über beide Quellen; WIKU_PINS für neue WIKU-PDFs + ergänzen) - `.agents/skills/wissensbasis/SKILL.md` — verbindliche Regeln für Wissensbasis-Arbeit (inkl. `.wiku/`-Integrationsmodell) - `.wiku/` — lizenzierte WIKU-Publikationen (lokal, unversioniert, - gitignored; Pipeline-Folgeaufgabe nach Batch 7) + gitignored; Batch 1 eingespielt — 30 Layer-2-Einträge wk-*) - `personalverrechnung/IMPLEMENTIERUNGSPLAN-Privat.md` — General-AT (freigegeben; GP0-Rechtsverifikationen erledigt, GP0-Rest offen; - D4-Protokoll in Abschnitt 2) + 2026-09-10 Wissensbasis-Anbindung in Abschnitt 2.1, neue Offenpunkte + 8.11 DZ / 8.12 KB-Konflikte / 8.13 Scope-Kandidaten; D4-Protokoll in + Abschnitt 2) - `personalverrechnung/RECHTSQUELLEN-Privat.md` — verbindliche Rechtslage General-AT (GP0-Inventar; Statusmarks ✅/⚠/❓) - `personalverrechnung/RUNBOOK.md` — KV-Library pflegen (Update-Zyklus) @@ -440,10 +613,12 @@ Dev-Host bleibt das nächste Gate vor GP2 (Entgelt-Engine). - `personalverrechnung/RECHTSQUELLEN-Bgld.md` — verbindliche Rechtslage - `personalverrechnung/ANGEBOTS-KALKULATION-Bgld-Personalverrechnung.md` — AP-Rahmen, Prämissen P1–P10 -- `odoo/` + `odoo_enterprise/` — Odoo-19-Checkouts (unversioniert, - in `.gitignore`; Enterprise-Baum gemergt: Community+Enterprise in - einem Addons-Verzeichnis; Test-Addons-Path - `odoo_enterprise/odoo/addons`) +- `odoo_19.0+e.20260910/odoo-19.0+e.20260910/` — Odoo-19-Quellen- + Referenz (gemergter Community+Enterprise-Baum, 1.481 Addons; lokal, + unversioniert; Aufruf `.venv/bin/python -m odoo`, Addons-Path + `/odoo/addons,addons`) +- `.venv/` — Python-3.14-venv mit editable install (lokal, + unversioniert); Dev-DB `odoo_dev` (PostgreSQL lokal) - `addons/l10n_at_hr_payroll_private/` — General-AT (GP1 KV-Framework + Seed D2 umgesetzt; Runtime-Abnahme ausständig; GP2 danach) - `addons/l10n_at_hr_payroll/` — Kern (SV/TASY; AP3 landet hier) diff --git a/personalverrechnung/RUNBOOK.md b/personalverrechnung/RUNBOOK.md index fa81496..3e6748a 100644 --- a/personalverrechnung/RUNBOOK.md +++ b/personalverrechnung/RUNBOOK.md @@ -79,19 +79,25 @@ Danach manuell sichten (Reihenfolge): - Angestelltenärzte-KV (Krankenanstalten): nirgends öffentlich — einzige systematische Lücke des Korpus. -## Lexis360-Wissensbasis (Lexis Briefings Personalrecht) +## Wissensbasis (Lexis360-Briefings + WIKU Personal) -Stand: 2026-09-10 · Konventionen und Schema: `wissensbasis/README.md` -(dort auch die Lizenz-Entscheidung: Volltexte/PDFs lokal unversioniert, -nur Kuratierung versioniert). +Stand: 2026-09-11 · Konventionen und Schema: `wissensbasis/README.md` +(dort auch die Lizenz-Entscheidung: Volltexte/PDFs beider Quellen lokal +unversioniert, nur Kuratierung versioniert; WIKU-Integrationsmodell: +gemeinsamer Korpus, `work`-Feld unterscheidet die Quellen, ID-Raum +`wk--` auf der gemeinsamen Cluster-Map, Layer-2-Dateiname +`wiku_.md`, 1 Publikation = 1 Eintrag, Metadaten aus `WIKU_PINS` +statt Lexis-Breadcrumbs). ### Architektur | Schicht | Pfad | Werkzeug | Versioniert? | |---|---|---|---| | PDF-Exporte (Lexis 360, lizenziert) | `.lexis360/*.pdf` | manueller Export | nein (gitignored) | -| Layer 1 — Volltexte + Katalog | `.lexis360/md/` | `tools/build_lexis_kb.py --extract` | nein | -| Layer 2 — kuratierte Einträge | `wissensbasis/dokumente/.md` | manuell (Vorlage lb-atz-07) | **ja** | +| PDFs (WIKU Personal, lizenziert) | `.wiku/*.pdf` | manuelle Beschaffung | nein (gitignored) | +| Layer 1 — Volltexte + Katalog (Lexis) | `.lexis360/md/` | `tools/build_lexis_kb.py --extract --source lexis` | nein | +| Layer 1 — Volltexte + Katalog (WIKU) | `.wiku/md/` | `tools/build_lexis_kb.py --extract --source wiku` (pin-getrieben) | nein | +| Layer 2 — kuratierte Einträge | `wissensbasis/dokumente/.md` (Lexis) · `wiku_.md` (WIKU) | manuell (Vorlage lb-atz-07 / wk-akt-01) | **ja** | | Registry + Index | `wissensbasis/kb.json`, `wissensbasis/INDEX.md` | `tools/build_lexis_kb.py --registry` | **ja** (generiert) | Batches 1–6: 277 Einträge, 40 Cluster (atz 15 · leh 16 · jug 8 · @@ -107,8 +113,15 @@ Cluster erweitert: asc 12→16, sch 1→7); **Batch 8: 134 Einträge, 6 neue Cluster** (bnd 44 · brt 35 · end 25 · bso 10 · mel 8 · ins 8; bestehende Cluster erweitert: url 14→16, son 4→5, prm 6→7); **Batch 9: 63 Einträge, 5 neue Cluster** (bsv 18 · sva 16 · gsv 12 · pvs 13 · kvs 4; bestehende Cluster -unverändert) — **insgesamt 571 Einträge, 67 Cluster**, Quell-Stände -2024-03 bis 2026-09. Siebzehn Briefings-Kapitel, aus Batch 9 neu: +Cluster unverändert) — **insgesamt 571 Einträge, 67 Cluster**, Quell-Stände +2024-03 bis 2026-09. **WIKU Batch 1 (2026-09-11): 30 Publikationen → +30 Einträge** (13 Fachbroschüren · 3 Arbeitsunterlagen · 2 Casebooks +· 12 Hefte „WIKU Personal aktuell“ 2026, Stände 2023-07 bis +2026-09) — eigene Cluster `akt` (12, „WIKU Personal aktuell“) und +`gwe` (2, Güterbeförderung/Gastgewerbe), sonst Belegung bestehender +Cluster (`wk-pfa-01` neben `lb-pfa-*`: vor 1 · kar 1 · bnd 1 · lvr 2 · +dvh 1 · bes 1 · rei 1 · gsf 1 · grz 1 · ins 1 · lsd 1 · pfa 1 · azg 1 · +sac 1 · son 1) → **gesamt 601 Einträge, 69 Cluster**. Siebzehn Briefings-Kapitel, aus Batch 9 neu: „Sozialversicherung“ (Beitragsrecht ASVG/GSVG/BSVG, Neue Selbstständige, Krankenversicherung ASVG, Pensionsversicherung). „Beschäftigungsverhältnisse“, „Entgelt: Anspruch & @@ -128,12 +141,17 @@ Betriebsvereinbarungen“, „Beendigungsansprüche & Endabrechnung“, ### Neue Batches einspielen ```bash -# 1. PDFs nach .lexis360/ kopieren (Export-Namenskonvention beibehalten) -# 2. BATCH-Konstante in tools/build_lexis_kb.py hochsetzen -python3 personalverrechnung/tools/build_lexis_kb.py --extract # Layer 1 + Katalog -# 3. neue Layer-2-Einträge kuratieren (Schema/Regeln: wissensbasis/README.md) -python3 personalverrechnung/tools/build_lexis_kb.py --registry # kb.json + INDEX.md, validiert Frontmatter -python3 personalverrechnung/tools/build_lexis_kb.py --check # Vollständigkeit Layer-1↔Layer-2 +# Lexis: 1. PDFs nach .lexis360/ kopieren (Export-Namenskonvention beibehalten) +# 2. BATCH_LEXIS in tools/build_lexis_kb.py hochsetzen +# WIKU: 1. PDFs nach .wiku/ kopieren +# 2. je PDF einen WIKU_PINS-Eintrag ergänzen (ohne Pin: harte Warning, +# wird NICHT extrahiert) + BATCH_WIKU hochsetzen +python3 personalverrechnung/tools/build_lexis_kb.py --extract --source lexis # Layer 1 + Katalog +python3 personalverrechnung/tools/build_lexis_kb.py --extract --source wiku # Layer 1 + Katalog (pin-getrieben) +# 3. neue Layer-2-Einträge kuratieren (Schema/Regeln: wissensbasis/README.md; +# WIKU-Dateiname wiku_.md) +python3 personalverrechnung/tools/build_lexis_kb.py --registry # kb.json + INDEX.md (beide Quellen), validiert Frontmatter +python3 personalverrechnung/tools/build_lexis_kb.py --check --source all # Vollständigkeit Layer-1↔Layer-2 je Quelle ``` ### Validierung @@ -144,7 +162,7 @@ python3 personalverrechnung/tools/build_lexis_kb.py --check # Vollständigke - Stichproben: Kernwerte gegen Layer-1-Volltext (`sed -n '16,$p' .lexis360/md/.md`); Werte nie aus Trainingswerten. -### Bekannte Limitierungen / offene Punkte (Stand 2026-09-10) +### Bekannte Limitierungen / offene Punkte (Stand 2026-09-11) - **Korpus-Widersprüche (⚠, in den Einträgen dokumentiert):** AMS- Ersatzquote geblockte ATZ 2026 — lb-atz-07 nennt 28,5 %, lb-atz-09/12 @@ -343,6 +361,58 @@ python3 personalverrechnung/tools/build_lexis_kb.py --check # Vollständigke Höherversicherung PV / Mitarbeiter- und Selbständigenvorsorge); Mehrfachversicherung KV/PV disambiguiert; ß-URL-Kodierung normalisiert (grosse_option). +- **WIKU-Batch-1-Konflikte/offene Punkte (⚠/❓, in den Einträgen + dokumentiert):** §-124b-Zitier-Familie wächst: **wk-akt-01** (Stand + 2026-01, vor Kundmachung) „Z 440/492, Aufrollung 31.05.2026“ und + **wk-akt-07** Mitarbeiterprämie — Haupttext/Rz 909/1403 „Z 478“ vs + ÖGK-FAQ „Z 477“ (innerer Widerspruch, Z 478 lt. RQ verbindlich) ⚠; + Auflösung der ÜStd-/Feiertagsarbeitsentgelt-Maßnahme über BGBl I + 43/2026 via **wk-akt-04** (§ 68 Abs 1/2 EStG neu, rückwirkend + 1.1.2026, Aufrollfrist 30.09.2026, § 124b Z 494) ✅ deckungsgleich + mit verbindlicher Rechtslage (Z 476 lit c idgF); **wk-akt-07** + Feiertagsarbeitsentgelt BMF-Antwort „bei entsprechendem Gesetzes- + beschluss ab 2026 steuerfrei“ vs wk-akt-01 „ab 1.1.2026 dauerhaft + steuerfrei“ — Stand-Evolution, verbindlich bgBl-gelöst ⚠; + **wk-akt-07** WF-Beitrag Wien 1,50 % (DN-Gesamtbeitrag 18,32 % + statt 18,07 %) — gehört zur lb-lnk-05-Familie (1,5 vs 1,0 %, ⚓ + RIS-Klärung); **wk-akt-10** DN-Satz freie Dienstnehmer „17,57 % + ohne WF“ — arithmetisch 17,07 % (3,87+10,25+2,95); DN-SV-Satz- + Familie (18,07 vs 17,57 %) ⚠ RIS; **wk-akt-11** Praxisänderung SV- + DN-Anteile auf §-68-Bezügen vom Abzugsverbot § 20 Abs 2 Z 1 EStG + erfasst (Veranlagungsbescheide-Grenzgänger, Rz 243 LStR + möglicherweise obsolet, „Formel 7“ gefährdet) — neue + Konfliktfamilie, RIS-Klärung vor GP3/GP4 ⚠; **wk-akt-09** AMS- + Auslegung All-In/ATZ-Oberwert „vom Grundlohn“ vs OGH 9 ObA 83/22d + (unechtes All-In) — WIKU selbst „fachlich nicht haltbar“ ⚠; + **wk-akt-03 vs wk-akt-04** ALV-Entfall ab Pensionsanspruch: + Regierungsvorlage „DN entfällt, DG bleibt“ vs Endfassung BgBG + „weder DG noch DN + kein IESG“ (§ 1 Abs 2 lit e AMPFG) — + Stand-Evolution mit beiden Werten dokumentiert; §-Zitat „§ 25 + Abs 2 AlVG“ vs „§ 25 Abs 2 AMPFG“ ⚠; Schmutzzulage-VwGH-GZ + Ra 2025/15/0035 (wk-akt-03) vs Ra 2024/15/0035 (wk-akt-04) ⚠; + **wk-akt-05/wk-akt-06** SV-Werte 2027 „voraussichtlich“ (Nr. 13) + vs „von der ÖGK veröffentlicht“ (Nr. 14) — Verordnungsverlaut- + barung noch ausständig, alle 2027er-Werte ⚠; **wk-akt-04** DAG 23 % + ab 1.1.2027 (BgLG 2027/2028) + Absenkung 21 % ab 2030 geplant — + Zukunftslegistik mit Stand, vor Implementierung an BGBl verifizieren; + **wk-akt-12** Mitarbeiterprämie 2026/Aktivpension/Telearbeits- + pauschale 2027 = Entwurfs-/Regierungsvorlagen-Stand („bleibt + abzuwarten“) ⚠; „Sonntags-Siebtel“-ÖGK-Clearing ohne erkennbare + Rechtsgrundlage (WIKU-Kritik) ⚠; **wk-akt-05** § 82 Abs 7 AlVG- + Verweisung könnte Überstunden/Mehrleistung auch beim geblockten + ATZ-Oberwert ausschließen (AMS-Abklärung ausständig) ⚠. + Quellen-Anomalien (bewusst nicht enshriniert): Artikelnummer- + Doppelvergaben innerhalb/vor zw. Heften (Nr. 12/13/14), „1.1.206“- + Tippo (Nr. 2), Vorwort/Artikel-Abweichungen (Nr. 10), GZ-Schwankungen + — Kuratierung folgt jeweils dem Artikelinhalt; WIKU-Exporte ohne + expandierte Links („den Sie hier finden“) — unvollständige + Verweisstellen je Eintrag vermerkt. Intake-Notizen: 30 PDFs, alle + Metadaten über WIKU_PINS gesetzt (keine Breadcrumbs); Seitenzähler- + Footer-Zeilen im Tool entfernt (WIKU_PAGE_RE), Anzeigen-/Abo-Blöcke + bleiben in Layer 1 (Kuratierung ignoriert sie); „Personal aktuell“- + Stand = PDF-CreationDate-Monat (mit Heft-Inhalt konsistent, + Doppelhefte 4-5/8-9); Curation via 6 parallele Agenten + zentrale + Selbstprüfung 30/30 grün. - Nicht im Korpus enthalten und deshalb ❓/Beschaffungskandidaten für Folgebatches: Bildungskarenz/Beihilfen-Beitrag (Verweis in lb-tzb-01), Personalrabatte bis 2015 (lb-sac-02), Telearbeitspauschale (lb-sac-15), @@ -394,6 +464,37 @@ python3 personalverrechnung/tools/build_lexis_kb.py --check # Vollständigke einer Zeile stehen, Footer („Page n“, „Erstellt von …“) im Text — Parser behandelt das, Kuratierung muss es ignorieren. +## Primärquellen-Downloads (RIS, findok, ELDA, SV-Werte) + +Stand: 2026-09-10 · Ablage: `.firecrawl/ris/` (lokal, unversioniert) — +Verzeichnis mit Gesetzesnummern: `.firecrawl/ris/_README.md`. +Beschafft für die Beschaffungsliste `RECHTSQUELLEN-Privat.md` Abschn. 11. + +- **RIS-Gesetzestexte**: konsolidierte Volltexte via + `https://www.ris.bka.gv.at/GeltendeFassung.wxe?Abfrage=Bundesnormen&Gesetzesnummer=` + (firecrawl scrape → Markdown). **Gesetzesnummern nie aus Trainings- + wissen** — via RIS-Titelsuche ermitteln: + `https://www.ris.bka.gv.at/Ergebnis.wxe?Abfrage=Bundesnormen&Titel=`; + aus den „Gesamte geltende Rechtsvorschrift für …“-Links grepen. + Titelsuche ist **wortbasiert** (Bindestriche tokenisieren) und + Kennt Kurztitel-Fallen: AVRAG = „Arbeitsvertragsrechts-**Anpassungs** + gesetz“, BMSVG = „Betriebliches **Mitarbeiter- und Selbständigen**- + vorsorgegesetz“, IESG = „Insolvenz-**Entgeltsicherung**gesetz“, APSG + = „Arbeits**platz-**Sicherungsgesetz 1991“. +- **LStR 2002**: findok-Gesamtdokument als XML-Zip (findok-Dokument + 19974; Rz markiert als `RZ_N` — grep mit `RZ_1050`, nicht + „Rz 1050“). +- **ELDA/Meldewesen**: DM-ORG (Organisationsbeschreibung „Datenaustausch + mit Dienstgebern“) + Prüfkataloge L16/L17/§ 109a/109b + Mitteilungs- + files-XSDs über das ELDA-Dienstgeber-Portal (Downloads-Seite). +- **SV-Werte**: beitrags-/leistungsrechtliche Werte-PDFs von + sozialversicherung.at (Seite „Werte und Sätze“). +- **Verifikationsbefund-Disziplin**: Widerspricht der Volltext einer + Projektkonvention (Beispiel: „Krankengeldumlage § 62 ASVG“ — RIS- + Gesamtabfrage 0 Treffer, § 62 = Beitragsabrechnung), Befund in der + jeweiligen RECHTSQUELLEN-Datei dokumentieren und alle Zitate + konsistent korrigieren, nicht stillschweigend. + ## Weitere Workflows (SV-Werte/TASY-Import und GemBG-Katalog siehe `tools/`-Docstrings und