Files
pv-agent/wissensbasis/README.md
T
fegger 25eb285160 Initialimport: Wissensbasis Layer 2 (601 kuratierte Einträge)
571 Lexis-Briefings (lb-*) + 30 WIKU-Publikationen (wk-*) in 69 Clustern,
Frontmatter-Schema als Single Source of Truth; kb.json + INDEX.md generiert.
.gitignore für lizenzierte/lokale Corpora (.lexis360, .wiku, .firecrawl, .ris)
sowie künftige RAG-Artefakte (data/).
2026-09-14 16:34:07 +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).