Files
odoo-at-payroll/personalverrechnung/wissensbasis/README.md
T
fegger e6598d01cf [ADD] personalverrechnung: WIKU knowledge base (Batch 1)
First WIKU Personal intake (30 licensed publications, source Stands
2023-07 to 2026-09), integrated into the shared curated corpus per
the integration model of 2026-09-10: one corpus, the work field
distinguishes the sources, WIKU entries use the wk-<prefix>-<nn> id
space on the existing cluster map, Layer-2 filenames carry the wiku_
prefix. The corpus grows to 601 curated entries in 69 clusters.

- 30 publications: 13 Fachbroschueren, 3 Arbeitsunterlagen, 2
  Casebooks (geloesste LV-Praxisfaelle) and the twelve 2026 issues of
  the periodical 'WIKU Personal aktuell' (new cluster akt with
  wk-akt-01..12); second new cluster gwe for the trade-specific
  brochures (Gueterbefoerderungsgewerbe, Gastgewerbe); the remaining
  16 publications sit on existing clusters (wk-pfa-01 next to
  lb-pfa-*: vor, kar, bnd, lvr x2, dvh, bes, rei, gsf, grz, ins,
  lsd, pfa, azg, sac, son)
- tooling: multi-source extension of build_lexis_kb.py (--source
  lexis|wiku|all for --extract and --check, --registry over both
  sources); WIKU metadata comes from an explicit WIKU_PINS table
  (slug, cluster, stand, work, chapter, title) instead of Lexis
  breadcrumbs - a PDF without a pin is a hard warning and is never
  extracted; WIKU page-counter footer lines dropped (WIKU_PAGE_RE);
  fix in curated_slugs_for(): the .md suffix is now stripped when the
  wiku_ prefix is removed, so the wiku --check completeness gate
  passes
- curation: the twelve periodical issues were curated in six parallel
  agent groups, each grounded only in its Layer-1 text with a
  self-check on frontmatter/structure/cross-refs; the 19 brochure
  entries from the prior session were re-validated centrally; 30/30
  green
- registry and check green: lexis 571/571 and wiku 30/30 curated,
  0 problems; kb.json and INDEX.md regenerated (601 entries, 69
  clusters, sources and per-source batch counters recorded)
- wissensbasis README: two-source corpus documentation (layers,
  frontmatter schema incl. WIKU works and id spaces, cluster table
  with akt/gwe, per-source update cycle)
- flagged for RIS (documented in the entries): wk-akt-01 par. 124b
  'z 440/492' (pre-BGBl stand of 2026-01) and the wk-akt-07
  Mitarbeiterpraemie citation contradiction 'z 478 vs z 477'
  (z 478 lit f binding); the Feiertagsarbeitsentgelt/UEStd repair is
  resolved via BGBl I 43/2026 in wk-akt-04 and matches the binding
  legal position; new conflict family wk-akt-11 (SV employee shares
  on par. 68 benefits caught by the par. 20 Abs 2 Z 1 EStG deduction
  ban, 'Formel 7' at risk); wk-akt-10 free-contractor DN rate 17.57%
  vs arithmetic 17.07% without WF; wk-akt-07 Wien WF 1.5% (lb-lnk-05
  family); ALV-Entfall draft vs final act (wk-akt-03 vs 04); 2027 SV
  values provisional (wk-akt-05/06)
2026-09-11 11:15:53 +02:00

233 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Wissensbasis Personalverrechnung (Lexis360-Exporte + WIKU Personal)
Kuratierte Wissensbasis aus zwei lizenzierten Quellcorpora — den
LexisNexis-Briefings des Werks *Lexis Briefings Personalrecht*
(Export aus Lexis 360) und den WIKU-Personal-Publikationen
(Fachbroschüren, Arbeitsunterlagen, Casebooks, Fachzeitschrift
„WIKU Personal aktuell“). Ein **gemeinsamer Korpus**: `work`-Feld
unterscheidet die Quellen, ID-Räume `lb-*` (Lexis) und `wk-*` (WIKU)
liegen auf derselben Cluster-Map. Zweck:
1. **Entwicklungsreferenz** neben `personalverrechnung/RECHTSQUELLEN-*.md`
für die Personalverrechnungsmodule (`l10n_at_hr_payroll*`), und
2. **Copilot-Korpus**: Aufbau und Frontmatter sind retrieval-gerecht
(stabile IDs, maschinenlesbares `kb.json`), damit künftig ein
Frage-Antwort-Copilot darauf aufbauen kann.
## Schichten (Lizenz-Entscheidung D1, 2026-09-10)
| Schicht | Pfad | Versioniert? | Inhalt |
|---|---|---|---|
| PDF-Exporte | `.lexis360/Lexis360_*.pdf` · `.wiku/*.pdf` | **nein** (gitignored) | lizensierte Original-PDFs |
| Layer 1 — Volltexte | `.lexis360/md/<slug>.md` · `.wiku/md/<slug>.md` | **nein** (gitignored) | vollständiger Extraktionstext + Metadaten-Frontmatter |
| Katalog | `.lexis360/md/_catalog.json` · `.wiku/md/_catalog.json` | **nein** (gitignored) | geparste Metadaten aller Quellen (Slug ↔ ID ↔ Stand ↔ Cluster) |
| Layer 2 — kuratierte Einträge | `dokumente/<slug>.md` (Lexis) · `dokumente/wiku_<slug>.md` (WIKU) | **ja** | Kuratierung in eigenen Worten (Schema unten) |
| Registry | `personalverrechnung/wissensbasis/kb.json` | **ja** | **generiert** aus dem Layer-2-Frontmatter beider Quellen (`--registry`) |
Volltexte sind lizenzierter Inhalt (LexisNexis- bzw. WIKU-Abonnement)
und bleiben wie `.firecrawl/` lokal + unversioniert. Nur die
Kuratierung (eigene Worte, kurze Zitate mit Quellenachweis) wird
committet. WIKU-Publikationen haben keine Lexis-Breadcrumbs:
Metadaten (Slug, Cluster, Stand, `work`, Kapitel, Titel) werden beim
Intake als **`WIKU_PINS`**-Eintrag im Tool festgenagelt (1 Publikation
= 1 Eintrag; Granularitätsentscheidung 2026-09-10).
## Frontmatter-Schema (Layer 2 — verbindlich)
```yaml
id: lb-atz-07 # stabil; lb-<cluster>-<nn> (Lexis) bzw. wk-<cluster>-<nn> (WIKU), eingefroren
batch: 1 # Beschaffungs-Batch je Quelle (manuell je Import)
title: "Altersteilzeit - Überblick"
work: "Lexis Briefings Personalrecht" # WIKU: exakter Publikationstyp („WIKU Fachbroschüre“, „WIKU Arbeitsunterlage“, „WIKU Casebook“, „WIKU Personal aktuell“)
chapter: "Beschäftigungsverhältnisse" # Quell-Kapitel (WIKU: aus WIKU_PINS, idR der Publikationstitel)
topic: altersteilzeit # ASCII-Cluster-Slug (s. Tabelle)
author: "Marek" # WIKU: „Wilhelm Kurzböck“
stand: 2026-01 # ISO-Monat des Quell-Stands (WIKU: Impressum/Dateiname, „Personal aktuell“: Heft-Monat)
source:
pdf: ".lexis360/Lexis360_altersteilzeit_uberblick.pdf" # WIKU: ".wiku/<dateiname>.pdf"
text: ".lexis360/md/altersteilzeit_uberblick.md" # WIKU: ".wiku/md/<slug>.md"
legal_bases: ["AlVG", "AZG § 19e"] # nur im Quelltext genannte Normen
tags: [altersteilzeit, ams-foerderung] # ASCII-Slugs, retrieval-freundlich
cross_refs: ["lb-atz-09"] # verwandte KB-Einträge (lb↔wk erlaubt; dangling = Fehler)
```
Schlüsselkonvention (Entscheidung D2): **strukturelle Schlüssel
englisch** (konsistent mit `kv-catalog.json`/`chambers.json`),
**Werte deutsch** (UTF-8, Umlaute erlaubt). Zwei Ausnahmen: `stand`
(österreichischer Fachbegriff, ISO-Wert `YYYY-MM`) und `topic`/`tags`
als ASCII-Slugs. Die Frontmatter ist **Single Source of Truth**;
`kb.json` wird daraus generiert und schema-validiert
(`build_lexis_kb.py --registry`).
## Cluster (Lexis Batch 19 + WIKU Batch 1)
| topic-Slug | Name | ID-Präfix | IDs | n |
|---|---|---|---|---|
| `altersteilzeit` | Altersteilzeit | `atz` | lb-atz-01 … 15 | 15 |
| `lehrlinge` | Lehrverhältnis / Lehrlinge | `leh` | lb-leh-01 … 16 | 16 |
| `jugendliche` | Jugendarbeit / Jugendschutz | `jug` | lb-jug-01 … 08 | 8 |
| `ferialpraktikanten` | Ferialpraktikanten, Volontäre, Au-pair | `pra` | lb-pra-01 … 04 | 4 |
| `beschaftigungsformen` | Beschäftigungsformen & Abgrenzung | `bes` | lb-bes-01 … 08 | 8 |
| `teilzeit` | Teilzeit & Bildungsteilzeit | `tzb` | lb-tzb-01 … 06 | 6 |
| `behinderte` | Behinderte Arbeitnehmer | `beh` | lb-beh-01 … 04 | 4 |
| `entgelt` | Entgelt: Anspruch & Abrechnung | `ent` | lb-ent-01 … 11 | 11 |
| `geschaftsfuhrer` | Geschäftsführer | `gsf` | lb-gsf-01 … 05 | 5 |
| `leitende-angestellte` | Leitende Angestellte | `lei` | lb-lei-01 | 1 |
| `pramien` | Prämien & Provisionen | `prm` | lb-prm-01 … 07 | 7 |
| `sachbezuge` | Sachbezüge & freiwillige Sozialleistungen | `sac` | lb-sac-01 … 21 | 21 |
| `vorstand` | Vorstandsmitglieder (Vorstand) | `vst` | lb-vst-01 … 04 | 4 |
| `sonderzahlungen` | Sonderzahlungen | `son` | lb-son-01 … 05 | 5 |
| `zuschlage` | Zulagen und Zuschläge | `zus` | lb-zus-01 … 08 | 8 |
| `pendlerforderung` | Pendlerförderung | `pen` | lb-pen-01 … 09 | 9 |
| `reisekosten` | Dienstreise & Reisekosten | `rei` | lb-rei-01 … 09 | 9 |
| `vorsorgeleistungen` | Vorsorgeleistungen (BMSVG, Betriebspension, Beteiligung) | `vor` | lb-vor-01 … 11 | 11 |
| `geschenke` | Sachzuwendungen & Geschenke | `ges` | lb-ges-01 … 02 | 2 |
| `lohndumping` | Bekämpfung von Lohn- und Sozialdumping (LSD-BG) | `lsd` | lb-lsd-01 … 13 | 13 |
| `gplb` | GPLB | `gpl` | lb-gpl-01 … 07 | 7 |
| `lohnnebenkosten` | Lohnnebenkosten (Dienstgeberbeiträge) | `lnk` | lb-lnk-01 … 07 | 7 |
| `lohnpfandung` | Lohnpfändung | `pfa` | lb-pfa-01 … 14 | 14 |
| `lohnverrechnung` | Lohnverrechnung (Meldewesen, Abrechnungsfragen) | `lvr` | lb-lvr-01 … 09 | 9 |
| `nachzahlungen` | Nachzahlungen | `naz` | lb-naz-01 … 04 | 4 |
| `arbeitszeitgrenzen` | Arbeitszeitgrenzen | `azg` | lb-azg-01 … 04 | 4 |
| `arbeitszeitmodelle` | Arbeitszeitmodelle (Gleitzeit, Schicht, Kurzarbeit) | `azm` | lb-azm-01 … 07 | 7 |
| `meldepflichten` | Melde- und Informationspflichten | `mip` | lb-mip-01 … 04 | 4 |
| `nachtschwerarbeit` | Nachtschwerarbeit | `nsc` | lb-nsc-01 … 03 | 3 |
| `ruhezeiten` | Ruhezeiten | `rhz` | lb-rhz-01 … 04 | 4 |
| `schwangerschaft` | Schwangerschaft (Mutterschutz) | `sch` | lb-sch-01 … 08 | 7 |
| `uberstunden` | Überstunden | `ues` | lb-ues-01 … 04 | 4 |
| `zeiterfassung` | Zeiterfassung | `zer` | lb-zer-01 … 03 | 3 |
| `schwerarbeit` | Schwerarbeit | `swa` | lb-swa-01 … 05 | 5 |
| `arbeitnehmerschutz` | Arbeitnehmerschutz (ASchG) | `asc` | lb-asc-01 … 16 | 16 |
| `dienstnehmerhaftung` | Dienstnehmerhaftung (Schadenersatz) | `dnh` | lb-dnh-01 … 07 | 7 |
| `gleichbehandlung` | Gleichbehandlung & Diskriminierung | `glb` | lb-glb-01 … 07 | 7 |
| `mobbing` | Mobbing | `mob` | lb-mob-01 | 1 |
| `firmeneigentum` | Firmeneigentum & Sachnutzung | `fir` | lb-fir-01 … 06 | 6 |
| `weisungen` | Weisungen an die Arbeitnehmer | `wei` | lb-wei-01 … 03 | 3 |
| `urlaub` | Urlaub (Anspruch, Entgelt, Verbrauch) | `url` | lb-url-01 … 16 | 16 |
| `krankenstand` | Krankenstand & Entgeltfortzahlung | `krs` | lb-krs-01 … 09 | 9 |
| `entsendung` | Grenzüberschreitender Einsatz & Entsendung | `grz` | lb-grz-01 … 08 | 8 |
| `karenzsonderformen` | Karenz-Sonderformen (Bildungs-, Hospiz-, Pflegekarenz) | `kzs` | lb-kzs-01 … 07 | 7 |
| `elternteilzeit` | Elternteilzeit | `elt` | lb-elt-01 … 06 | 6 |
| `karenz` | Karenz (Elternkarenz) | `kar` | lb-kar-01 … 06 | 6 |
| `kinderbetreuungsgeld` | Kinderbetreuungsgeld & Beihilfen | `kbg` | lb-kbg-01 … 06 | 6 |
| `prasenzdienst` | Präsenzdienst & Zivildienst | `prd` | lb-prd-01 … 06 | 6 |
| `telearbeit` | Teleworking & Heimarbeit | `tel` | lb-tel-01 … 06 | 6 |
| `schutzfrist` | Geburt, Schutzfrist & Wochengeld | `msf` | lb-msf-01 … 05 | 5 |
| `dienstverhinderung` | Dienstverhinderungsgründe & Streik | `dvh` | lb-dvh-01 … 04 | 4 |
| `arbeitskrafteuberlassung` | Arbeitskräfteüberlassung (AÜG) | `aug` | lb-aug-01 … 02 | 2 |
| `entgeltfortzahlung` | Entgeltfortzahlung an Feiertagen | `efz` | lb-efz-01 … 02 | 2 |
| `familienzeit` | Papamonat & Familienzeitbonus | `pap` | lb-pap-01 … 02 | 2 |
| `pflegefreistellung` | Pflegefreistellung | `pfl` | lb-pfl-01 … 02 | 2 |
| `wiedereingliederung` | Wiedereingliederung (Geld, Teilzeit) | `wie` | lb-wie-01 … 02 | 2 |
| `beendigungsarten` | Beendigungsarten (Austritt, Entlassung, Kündigung) | `bnd` | lb-bnd-01 … 44 | 44 |
| `betriebsrat` | Betriebsrat & Betriebsvereinbarungen | `brt` | lb-brt-01 … 36 | 35 |
| `endabrechnung` | Beendigungsansprüche & Endabrechnung (Abfertigung, Vergleich, Stundenguthaben) | `end` | lb-end-01 … 26 | 25 |
| `insolvenz-betriebsubergang` | Unternehmensauflösung & Betriebsübergang (Insolvenz) | `ins` | lb-ins-01 … 08 | 8 |
| `meldungen-verpflichtungen` | Meldungen & Verpflichtungen (Beendigung, Datenschutz) | `mel` | lb-mel-01 … 08 | 8 |
| `beendigungsphase-sonstiges` | Beendigungsphase Sonstiges (Zeugnis, Konkurrenzklausel, Sozialplan, Postensuche) | `bso` | lb-bso-01 … 11 | 10 |
| `beitragsrecht-asvg` | Sozialversicherungsrecht: Beitragsrecht ASVG (Beitragsgrundlagen, Beitragssätze) | `sva` | lb-sva-01 … 16 | 16 |
| `bauerliche-sozialversicherung` | Bäuerliche Sozialversicherung (BSVG) | `bsv` | lb-bsv-01 … 18 | 18 |
| `gsvg-fsvg` | GSVG/FSVG: Selbständige, neue Selbstständige, Abfertigung | `gsv` | lb-gsv-01 … 12 | 12 |
| `krankenversicherung` | Krankenversicherung ASVG (Leistungen) | `kvs` | lb-kvs-01 … 04 | 4 |
| `pension` | Pensionsversicherung (Pensionsarten, Pensionskonto) | `pvs` | lb-pvs-01 … 13 | 13 |
| `aktuell` | WIKU Personal aktuell (Neuerungen, Urteile, Praxis) | `akt` | wk-akt-01 … 12 | 12 |
| `gewerbe` | Gewerbebezogene Personalverrechnung (Güterbeförderung, Gastgewerbe) | `gwe` | wk-gwe-01 … 02 | 2 |
**601 Einträge in 69 Clustern** — Lexis: 571 Einträge in 67 Clustern
(Batch 1: 55, Batch 2: 52, Batch 3: 44, Batch 4: 54, Batch 5: 31,
Batch 6: 41, Batch 7: 97, Batch 8: 134, Batch 9: 63); WIKU: 30
Einträge in 18 Clustern (Batch 1: 13 Fachbroschüren, 3
Arbeitsunterlagen, 2 Casebooks, 12 Hefte „WIKU Personal aktuell“
2026). Die WIKU-Publikationen liegen auf der bestehenden Cluster-Map
(`wk-pfa-01` neben `lb-pfa-*`) plus den beiden eigenen Clustern
`akt`/`gwe`. Siebzehn Briefings-Kapitel: „Beschäftigungsverhältnisse“,
„Entgelt: Anspruch & Abrechnung“, „Arbeitszeit“, „Arbeitnehmerschutz“,
„Verhaltenspflichten“ (Batches 16), dazu „Urlaub & Karenzierung“,
„Schwangerschaft & Elternkarenz“, „Krankenstand & Arbeitsunfall“,
„Dienstverhinderung“ und „Außerhalb des Betriebsstandortes“ (Batch 7),
„Beendigungsarten“, „Betriebsrat & Betriebsvereinbarungen“,
„Beendigungsansprüche & Endabrechnung“, „Beendigungsphase - Sonstiges“,
„Meldungen & Verpflichtungen“ und „Unternehmensauflösung &
Betriebsübergang“ (Batch 8) sowie „Sozialversicherung“ (Batch 9)
(chapter-Feld je aus dem Katalog übernehmen).
Frontmatter-`topic` = beschreibender ASCII-Slug (linke Spalte), das
ID-Präfix (`atz`, `leh`, …) nur im `id` selbst; das Tool prüft die
Konsistenz beider (`--registry`). Neue Cluster erweitern alle vier
Strukturen im Tool (`TOPIC_MAP`, `KEYWORDS`, `CLUSTERS`,
`TOPIC_TO_PREFIX`); tritt derselbe Thema-Slug unter zwei Kapiteln
auf, zusätzlich `CHAPTER_TOPIC_MAP`.
IDs werden beim ersten `--extract` vergeben und danach **eingefroren**
(`load_previous_ids()`); neue Dokumente hängen hinten an, Nummern
ausscheidender Dokumente werden nie wiederverwendet. Dateiname eines
Layer-2-Eintrags = Layer-1-Slug (Lexis-Export-Stil: Umlaute **fallen**,
werden nicht transliteriert — `uberblick`, `beschaftigung`).
## Kurationskonventionen (verbindlich)
1. **Sprache:** deutsch, Fachsprache wie im Original; Metadaten-Werte
UTF-8. `topic`/`tags` ASCII.
2. **Eigene Worte:** Kuratierung ist keine Volltextkopie (Lizenz!).
Wörtliche Zitate nur kurz und mit Stand gekennzeichnet.
3. **Werte immer mit Stand.** Stammt der Wert aus einem Briefing mit
älterem Stand (z. B. Lehrlinge 2024-03, 2025-08), so ist
„(Stand YYYY-MM)" am Wert zu führen. Niemals Werte aus
Trainingswissen ergänzen — nur aus dem Quelltext oder aus
neueren KB-Einträgen (dann mit ID belegt).
4. **Statusmarken wie in RECHTSQUELLEN:** ✅ verifiziert · ⚠ plausibel,
Detailverifikation offen · ❓ bewusst offen. §-Zitate nur, wenn die
Quelle sie nennt; sonst ⚠ mit Verifikationshinweis (RIS).
5. **Dokumentstruktur:** `# <Titel>` → *Quellzeile (Werk, Autor, Stand,
ID)* → `## Zusammenfassung``## Kernwerte & Fristen (Stand YYYY-MM)`
(Tabelle) → `## Rechtsgrundlagen``## Payroll-Relevanz (Odoo)`
`## Verweise`.
6. **Payroll-Relevanz** benennt Odoo-19-Anknüpfungspunkte
(hr_payroll-Engine, Work Entries, `hr.rule.parameter`, SV-BG-Handling,
Meldewesen) als *Hinweise für die Umsetzung*, nicht als Spec.
7. **Verweise:** KB-IDs verwandter Briefings (Breadcrumb-Verweise der
Quelle beachten) + Projektdateien (`RECHTSQUELLEN-*.md`).
8. **Export-Artefakte ignorieren:** Footer „Page n", „Erstellt von …",
abgeschnittene Querverweise nicht rekonstruieren; vermerken, wenn eine
Verweisstelle im Export unvollständig ist.
9. Vorbild/Qualitätsmaßstab: `dokumente/altersteilzeit_uberblick.md`.
## Update-Zyklus (neue Batches — je Quelle)
**Lexis360:**
1. Neue PDFs nach `.lexis360/` kopieren (Export-Namenskonvention
`Lexis360_<slug>.pdf` beibehalten).
2. In `tools/build_lexis_kb.py` die Konstante `BATCH_LEXIS` hochsetzen,
dann `--extract --source lexis` ausführen: Layer 1 + Katalog neu;
bestehende IDs bleiben fix, neue Dokumente erhalten neue IDs + neue
Batch-Nummer.
**WIKU:**
1. Neue PDFs nach `.wiku/` kopieren (Dateinamen der Lieferung
beibehalten; Stand aus „Stand YYYY-MM“/Heft-Monat, sonst Impressum).
2. Je PDF einen `WIKU_PINS`-Eintrag im Tool ergänzen (slug, cluster,
stand, work, chapter, title) — ein PDF ohne Pin wird **nicht**
extrahiert (harter Warning, nie Metadaten raten). Dann
`BATCH_WIKU` hochsetzen und `--extract --source wiku` ausführen.
**Beide Quellen gemeinsam:**
3. Neue Layer-2-Einträge kuratieren (Konventionen oben; WIKU-Dateiname
= `wiku_<slug>.md`).
4. `--registry` (generiert/validiert `kb.json` + `INDEX.md` über beide
Quellen), danach `--check --source all` (Layer-1↔Layer-2-
Vollständigkeit je Quelle, Quelldateien vorhanden).
5. `personalverrechnung/RUNBOOK.md` und `.agents/MEMORY.md` pflegen
(`INDEX.md` wird generiert, nicht manuell editiert).
## Copilot-Konsum
`kb.json` listet jeden Eintrag mit ID, Titel, Stand, Cluster,
Rechtsgrundlagen, Tags und Pfaden auf Layer 1/Layer 2. Für
Retrieval/Skills: Eintrag = Chunk-Einheit; `id` als Zitatchlüssel;
`stand` für Aktualitätsfilter; `cross_refs` für Graph-Nachbarschaft.
Die Volltexte (Layer 1) sind lokal vorhanden, aber nicht Teil des
Versionskontroll-Korpus — ein Copilot-Deployment braucht daher einen
separaten, lizenzkonformen Bereitstellungspfad für Layer 1 (❓ offen).