# Agent Memory — odoo-at-payroll ## Current focus **Lexis360-Wissensbasis Batch 6 fertig, Batch 7 in Intake** (2026-09-10): 277 Briefings kuratiert in 40 Clustern über fünf Kapitel (Beschäftigungsverhältnisse, Entgelt, Arbeitszeit, Arbeitnehmerschutz — Batch 6 eröffnete es —, Verhaltenspflichten). Batch 6: asc 12/dnh 7/glb 7/mob 1/fir 6/wei 3/swa 5; zwei Agenten wurden zwischendurch abgebrochen (Restarbeit nachgeholt); Querverweis-Nachträge lb-beh-04→lb-glb-02/03/07, lb-sch-01→lb-asc-01 (teilweise). Batch 7 (97 PDFs, u. a. Urlaub, Karenz/Familie, Krankenstand, Mutterschutz, Präsenzdienst, Ausland/Entsendung, Telearbeit) in Intake — schließt mehrere dokumentierte Lücken (Bildungskarenz, Abfertigung Alt, Entgeltfortzahlung an Feiertagen, Gefahrenevaluierung/Arbeitsverbote, Telearbeit). Achtung im Batch-7-Export: drei verschiedene Briefings mit identischem truncated Dateinamen (auslandstatigkeit_sv_tatigkeit_in ×3, ausdrücklich umbenennen) plus ß-kodierter Dateiname. GP1-Abnahme auf dem Dev-Host bleibt das nächste Gate vor GP2 (Entgelt-Engine). ## Completed - **Wissensbasis-Skill + WIKU-Quelle** (2026-09-10): `.agents/skills/wissensbasis/SKILL.md` neu — verbindliche Regeln für den Wissensbasis-Bau (Schichten/Lizenz D1, ID-Freeze, D2-Frontmatter, Kurationskonventionen, Batch-Workflow, Validierungsgates, Intake- Pitfalls) konsolidiert aus README/RUNBOOK/MEMORY; neu: WIKU-Quelle `.wiku/` (31 lizenzierte PDFs: Fachbroschüren, Arbeitsunterlagen, Casebooks, „WIKU Personal aktuell“) mit Integrationsmodell siehe Entscheidung unten. `.wiku/` in `.gitignore` (D1); `AGENTS.md` Skill-Auswahl ergänzt. - **Lexis360-Wissensbasis Batch 6** (2026-09-10): 41 Briefings (Stände 2025-06 bis 2026-08) über zwei neue Kapitel (Arbeitnehmerschutz, Verhaltenspflichten) + Schwerarbeit (Arbeitszeit-Kapitel) → 41 kuratierte Einträge in 7 Clustern (asc 12, dnh 7, glb 7, fir 6, wei 3, swa 5, mob 1); ein ß-Dateiname normalisiert; ein Fossil-ID (lb-mip-05 → lb-swa-05) bereinigt; Parser-Härtung: Breadcrumb-Wrap auch nach erstem „·“ (neue Wrap-Variante). Zwei Agenten zwischen- durch abgebrochen — Restarbeit (asc-04…12, glb/mob) nachgeholt. Querverweis-Nachträge lb-beh-04→lb-glb-*, lb-sch-01→lb-asc-01. Katalog/Registry/Check 277/277 grün. - **Lexis360-Wissensbasis Batch 5** (2026-09-10): 31 Briefings (Stände 2025-12 bis 2026-07, Kapitel „Arbeitszeit“ — drittes Kapitel) → 31 kuratierte Einträge in 8 neuen Clustern (azg 4, azm 7, mip 4, nsc 3, rhz 4, sch 1, ues 4, zer 3) + lb-jug-08; ein ß-URL-kodierter Dateiname normalisiert. Keine Fossil-IDs (spezifisch-vor-generisch-KEYWORDS wirkten). RECHTSQUELLEN-Abgleiche: §-68-ÜStd-Freigrenzen 2026 (15/170 €) ✅ via lb-zus-07; Kurzarbeit-Lehrlinge trianguliert (lb-azm-05 → lb-leh-07). Drei Beschaffungslücken geschlossen (lb-jug-04/05 → lb-jug-08, lb-zer-01/02). Katalog/Registry/Check 236/236 grün. - **Lexis360-Wissensbasis Batch 4** (2026-09-10): 54 Briefings (Stände 2026-06 bis 2026-08) → 54 kuratierte Einträge in 6 neuen Clustern (lsd 13, pfa 14, gpl 7, lnk 7, lvr 9, naz 4); Dubletten-Export entfernt (identischer Text). RECHTSQUELLEN-Abgleiche: FLAF-DB 3,7 %/KommSt 3 %/ IESG 0,10 %/WBF (übrige BL 1 %) ✅; Freibetragsstaffel ✅ via lb-lnk-03 (Quellformulierung in lb-lnk-02 invertiert — dokumentiert); WBF-Wien 1,5 % vs 1,0 % ⚓ dokumentiert. Querverweis-Nachträge lb-sac-13→lb-lvr-02, lb-sac-21→lb-lvr-05. Tool-Fixes: assign_ids-Rückgabe-Warnungen (NameError beseitigt), KEYWORDS-Reihenfolge spezifisch-vor-generisch, 7 Fossil-IDs (Pass-1-Keyword-Fehlgriffe) bereinigt. Katalog/Registry/ Check 205/205 grün. - **Lexis360-Wissensbasis Batch 3** (2026-09-10): 44 Briefings (Stände 2025-06 bis 2026-08, Kapitel „Entgelt: Anspruch & Abrechnung“) → 44 kuratierte Einträge in 6 neuen Clustern (rei 9, vor 11, son 4, zus 8, pen 9, ges 2) + lb-ent-11; zwei URL-kodierte Export-Dateinamen (%c3%9f = ß) normalisiert. RECHTSQUELLEN-Abgleiche durchgeführt (§-67-Staffel, §-68-Freigrenzen, BMSVG-Kernwerte, ALV-Staffel — deckungsgleich bis auf dokumentierte ⚠-Punkte); lb-prm-04-Querverweis auf lb-son-03/04 nachgetragen. Katalog/Registry/Check 151/151 grün. - **Lexis360-Wissensbasis Batch 2** (2026-09-10): 52 neue Briefings (Stände 2025-06 bis 2026-08, Kapitel „Entgelt: Anspruch & Abrechnung“ + „Beschäftigungsverhältnisse“) → 52 kuratierte Einträge in 7 neuen Clustern (beh, ent, gsf, lei, prm, sac, vst) + lb-leh-16; Katalog 107/107, Registry/Check grün. Tool-Härtung: Multi-Batch-batch-Validierung (1..N), dynamische Batch-Anzeige (kb.json `batches`, INDEX-Header), --extract-Warnung bei eingefrorener ID mit abweichendem Cluster-Präfix (fing lb-jug-08-Fossil aus Pass 1, korrigiert zu lb-sac-21 vor Kuratierung); Duplikat-Export (`geschaftsfuhrer_arbeitsrecht (1).pdf`, identischer Text) entfernt. Batch-1-Dokumentation in README/RUNBOOK auf Batches 1–2 umgestellt. - **Lexis360-Wissensbasis Batch 1** (2026-09-10): 55 PDF-Exporte aus Lexis 360 („Lexis Briefings Personalrecht“; Stände 2024-03 bis 2026-09) → 55 kuratierte Einträge in `personalverrechnung/wissensbasis/dokumente/` (Zusammenfassung/Kernwerte/Rechtsgrundlagen/Payroll-Relevanz/Verweise, Stand-Marks, ✅/⚠/❓), `README.md` (Schema/Konventionen), generiert `kb.json` + `INDEX.md`, Tool `personalverrechnung/tools/build_lexis_kb.py` (--extract pdftotext-Pipeline; --registry Frontmatter-Validierung ohne PyYAML inkl. cross_refs/topic↔ID-Präfix; --check Layer-1↔Layer-2- Vollständigkeit; ID-Freeze über `_catalog.json`). RUNBOOK um Wissensbasis-Workflow (Batches, Validierung, Limitierungen) erweitert. - **GP1 KV-Framework General-AT** (2026-09-09): `l10n_at_hr_payroll_private` 19.0.1.0.0 implementiert — Modelle `kollektivvertrag.py` (kv/kv.wert/ kv.gruppe/kv.gruppe.stufe) + `hr_version_private.py` (Vertragsfelder, Muster `hr_version_bgld.py`), Wizard `kv_katalog_import.py` (Vorschau, Sprungwarnung, Versionierung), Views/Menus/Security, Seed D2 mit SI-2203/SI-2748-Tabellen 2026 (inkl. Sonder-Vorrückungsverläufe IV-M/V-OM im SI-2748, aufgelassene VG I im SI-2203, Nacht-€-Satz als Jahresversionen 2,71/2,76 €). Test-Suite `test_kv_katalog`: Seed-Lookups, Stichtags-Lookup, Versionierung, Eckwerte, Wizard (Sprungwarnung/Aktualisierung/Neuaufnahme), Vertragsfelder. - **GP0-Rechtsverifikationen General-AT** (2026-09-09): `RECHTSQUELLEN-Privat.md` erstellt: 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) und `odoo_enterprise/odoo` (Odoo 19.0.0; gemergter Baum: odoo-Paket + 1.452 Addons, Community + Enterprise in einem Addons-Verzeichnis, u. a. Referenz-Lokalisierungen `l10n_be_hr_payroll`/`l10n_ch_hr_payroll`; `l10n_at_payroll` existiert erwartungsgemäß nicht); beide in `.gitignore`. Community-Teil: `hr.version` (`hr/models/hr_version.py` L35; `wage`/ `structure_type_id`/`resource_calendar_id` versioniert), kalenderbasierte Work-Entry-Erzeugung (`hr_work_entry/models/hr_version.py` L420 `_generate_work_entries` + Postprocess-Hooks L500/L506), `hr.work.entry.type` + Entry-States (`hr_work_entry.py` L39). Enterprise-Teil: `work_time_rate`/`hours_per_week` auf Version (`hr_payroll/models/hr_version.py` L48/L39), `work_entry_source` (L30; Attendance-Integration `hr_payroll_attendance/models/ hr_payslip.py` L29), `hr.payslip.run` (`hr_payslip_run.py` L23; state L31, `date_start` L41, `date_end` L45), EOSB-Muster `l10n_ae_hr_payroll` (`_inherit = "hr.payslip"` L10, `_l10n_ae_get_eos_daily_salary` L95, je-Version-Feld `l10n_ae_eos_daily_salary` L102, Structure-Type-Inherit), Engine-Mechanismen an den Bgld-Plan-Zeilenreferenzen bestätigt (`payslip._rule_parameter` `hr_payslip.py` L951, localdict, `hr.salary.rule.account_debit`/`account_credit` L11/L15, Posting-Hooks `_action_create_account_move` L54 / `_prepare_line_values` L125 / `_prepare_slip_lines` L166, `journal_id` auf Structure via `hr_payroll_account/models/hr_payroll_structure.py` L15, `hr.payslip.input.type` `hr_payslip_input_type.py` L9, `hr.payroll.structure.type.country_id` L46); `hr_payroll_account_iso20022` vorhanden. `l10n_at`-Konten (`l10n_at/data/template/account.account-at.csv`, XML-ID-Muster `l10n_at.chart_at_template_`): 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 ohne `version`-Key, z. B. `l10n_at` „3.2.1"); maßgeblich ist `release.py` `version_info` (19, 0, 0). - **General-AT-Plan M0** (2026-09-09): `IMPLEMENTIERUNGSPLAN-Privat.md` erstellt 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-README `l10n_at_hr_payroll_private` und 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-Rename `l10n.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 - **Lexis360-KB offene Punkte** (2026-09-10): Korpus-Widersprüche ⚠ vor Implementierung klären — AMS-Ersatzquote geblockte ATZ 2026 (lb-atz-07 28,5 % vs. lb-atz-09/12 27,5 %), DAG-Grenze 2023 (lb-bes-02 751,36 € vs. lb-bes-06 751,37 €), Lehrlinge-Kurzarbeit (lb-leh-11 vs. lb-leh-07), Kleinwohnungsgrenzen (lb-sac-09 vs. lb-sac-10), Pensionisten-Begünstigung (lb-sac-02), **§ 124b-ÜStd-Maßnahme 2026: Briefing-Zitat lb-zus-07 weicht von verifizierter Rechtslage ab (Z 476 lit c idgF BGBl I 43/2026, Aufrollung bis 30. 9. 2026)**, lb-pen-09 Tabellenfehler (3.672 vs. rechnerisch 2.448 €), 183-Tage-Regel Finanz vs. UFS (lb-rei-01/02/08), Teleworker-Fahrten Finanz vs. BFG/VwGH (lb-rei-07); Alte Stände (leh 2024-03/2025-08, gsf/vst/lei 2025-06, son-01–03 2025-06) nur mit Kennzeichnung; Copilot-Deployment braucht lizenkonformen Layer-1-Bereitstellungspfad (Volltexte nicht im Repo); **Batch-4-Konflikte**: lb-lnk-02 DB-Freibetragsbedingung invertiert (RECHTSQUELLEN verbindlich), lb-lnk-05 WBF-Wien 1,5 % vs 1,0 % (RIS-Klärung), lb-pfa-03/05 Grundbetrag-Bezeichnungen, lb-pfa-12/14 Existenzminimum 2022 (500/515 €), lb-lsd-13 Gesetzeszitat verstümmelt (❓ RIS), §-124b-Zitier-Varianten (Z 440/Z 449 vs verbindlich Z 476 lit c idgF BGBl I 43/2026); **Batch-5**: NSchG-Beitrag 2026 (3,8 %) ohne BGBl-Beleg (lb-nsc-01), § 7-AZG-Fundstelle Abs 1 vs Abs 6 (lb-ues-01/04), MAV-START-EU-Konflikt (lb-rhz-03), KAB-Richtlinie mit alten SV-Beitragswerten (lb-azm-06); **Batch-6-Kandidaten**: Bildungskarenz, Personalrabatte bis 2015, Telearbeitspauschale, Begünstigt behinderte, Belästigung, Prämien bei Beendigung, Abfertigung Alt/Verfügungsmöglichkeiten AbfN, Corona-Kurzarbeit, Leitende Angestellte in der Rechtsprechung, pfändungsrechtliche Behandlung von Sonderzahlungen, Rückzahlung von Darlehen/Mustervereinbarung, Entgeltfortzahlung an Feiertagen, Motivkündigung, Gefahrenevaluierung und Arbeitsverbote (vollständige Liste im RUNBOOK). - **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 als `5b629a5` (lokaler main, noch nicht gepusht). - 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. - Bgld.-Auftrag: AP0 offen (Bestandsaufnahme Pilotmandant, ELDA/FinOnl- Specs, VRV-Buchungsmatrix, offene RIS-Verifikationen) — `IMPLEMENTIERUNGSPLAN-Bgld.md` Abschnitt 8. - Odoo-Upgrades künftig in beiden Repos (gem360 + dieses) gegen denselben Odoo-Pin validieren. ## Decisions & conventions - **Lexis360-Wissensbasis-Architektur** (2026-09-10): D1 — Volltexte/ PDFs lokal unversioniert (`.lexis360/` gitignored, Muster `.firecrawl/`), nur Kuratierung versioniert (Lizenz LexisNexis). D2 — strukturelle Frontmatter-Keys englisch (wie kv-catalog/chambers), Werte deutsch (UTF-8); `stand` als Fachbegriff ISO `YYYY-MM`; `topic`/`tags` ASCII- Slugs; `topic` = beschreibender Cluster-Slug (`altersteilzeit`, `lehrlinge`, …), ID-Präfix (`atz`, …) nur im `id`. IDs `lb--` eingefroren (nie renummerieren/wiederverwenden); Frontmatter = Source of Truth, `kb.json`/`INDEX.md` generiert via `--registry`; Werte niemals aus Trainingswerten, nur aus Quelltext mit Stand-Kennzeichnung. Ablageort `.lexis360/` (dot-dir, lokal, unversioniert): vom Nutzer manuell exportierte lizenzierte Belege — bei Fehlen **NICHT** neu beschaffen (anders als `.firecrawl/` = agenten-rekonstruierbare Web-Fetches), sondern beim Nutzer nachfragen. - **WIKU-Quelle `.wiku/`** (2026-09-10): D1 analog (lokal, unversioniert, bei Fehlen NICHT beschaffen — Nutzer fragen). Integrationsmodell: **gemeinsamer Korpus** `personalverrechnung/wissensbasis/` (eine `kb.json`), `work`-Feld unterscheidet die Quellen; eigener ID-Raum `wk--` auf der bestehenden Cluster-Map (`wk-pfa-01` neben `lb-pfa-*`); Layer 1 `.wiku/md/` + eigener Katalog; Layer-2-Dateinamen mit Präfix `wiku_.md`; Stand aus „Stand YYYY-MM“/Heft-Monat, sonst Impressum; keine Lexis-Breadcrumbs — Metadaten aus Dateiname + Titelei. Granularität: 1 Publikation = 1 Eintrag (Casebook-/Artikel-Ebene optional später); cross_refs lb↔wk erwünscht. Pipeline = Multi-Source-**Erweiterung** von `build_lexis_kb.py`, kein Fork — Folgeaufgabe **nach Batch 7** (Lexis hat Priorität). - **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) in `l10n_at_hr_payroll` 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. - **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/wissensbasis/` — Lexis360-Wissensbasis (README, dokumente/ 55 Einträge, 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 - `.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) - `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-Katalog - `personalverrechnung/quellen/kv/chambers/chambers.json` — Kammer-Quellen-Registry - `personalverrechnung/tools/fetch_kv_portal.py` / `fetch_wko_kv.py` / `build_kv_catalog.py` — Fetcher + Merge - `personalverrechnung/IMPLEMENTIERUNGSPLAN-Bgld.md` — AP3+ (Freigabe-Gate) - `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`) - `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) - `addons/l10n_at_gemeinde_payroll/` — GemBG (AP1+AP2)