Move the licensed PDF exports and the Layer-1 full texts from the
project root into the dot directory .lexis360/, keeping the root
listing to versioned content plus the tool checkouts.
The location also encodes provenance, distinct from .firecrawl/:
.lexis360/ holds user-supplied licensed exports that cannot be
re-fetched by an agent - if missing, stop and ask the user
(documented in MEMORY), whereas .firecrawl/ remains the home of
reconstructible web fetches.
- plain move of the unversioned directory (batch2/ subfolder spotted
and left untouched for its own intake run)
- .gitignore, tool constants/messages, source.pdf/source.text
frontmatter paths of all 55 curated entries, README/RUNBOOK/MEMORY
mentions; kb.json/INDEX.md regenerated
- batch 2 (53 PDFs) recorded in MEMORY as staged in .lexis360/batch2/
Validated end to end: --extract 55/55 with stable ids, --registry
55 entries/6 clusters, --check 0 problems (every frontmatter path
resolves at the new location), no stale path references remain.
Curated knowledge base from the first batch of Lexis 360 PDF exports
(LexisNexis "Lexis Briefings Personalrecht", 55 documents, source
Stands 2024-03 to 2026-09). Purpose: development reference alongside
RECHTSQUELLEN-*.md and a retrieval-ready corpus for a future
question-answering copilot.
Licensing split (decision D1): the PDF exports and the extracted full
texts stay local and unversioned (Lexis360/ gitignored, like
.firecrawl/); only the curation in own words with short quotes and
source citations is versioned.
- wissensbasis/dokumente/: one curated entry per briefing (55) with
approved frontmatter (frozen lb-<cluster>-<nn> ids, English
structural keys, German values, stand YYYY-MM, ASCII topic/tags
slugs) and sections Zusammenfassung, Kernwerte & Fristen (Stand
marked), Rechtsgrundlagen (only citations actually in the source,
verified/plausible/open marks), Payroll-Relevanz (Odoo), Verweise
- clusters: altersteilzeit 15, lehrlinge 15, jugendliche 7,
ferialpraktikanten 4, beschaftigungsformen 8, teilzeit 6
- kb.json + INDEX.md: generated from the frontmatter by --registry
(single source of truth, schema-validated)
- tools/build_lexis_kb.py: stdlib-only pipeline - --extract
(pdftotext, breadcrumb/stand parsing incl. dossier-style exports
with wrapped breadcrumbs), --registry (frontmatter validation:
required keys, id pattern, id prefix vs topic, stand format,
dangling cross_refs), --check (layer 1 <-> layer 2 completeness);
ids are frozen across batches, numbers never reused
- RUNBOOK.md: batch intake workflow, validation steps, known
limitations
Corpus contradictions flagged in the entries (not silently resolved):
AMS replacement rate for blocked Altersteilzeit 2026 (lb-atz-07 28.5%
vs lb-atz-09/12 27.5%), DAG limit 2023 (751.36 vs 751.37 EUR),
Kurzarbeit for Lehrlinge (lb-leh-11 vs lb-leh-07); lehrlinge cluster
partly older Stands (2024-03/2025-08).
Validated: extract 55/55, registry 55 entries/6 clusters, check 0
problems, structural scan of all 55 curated entries, py_compile.
Ignore the local, unversioned Odoo 19 checkouts: odoo/
(Community tree with odoo-bin) and odoo_enterprise/odoo (merged
enterprise tree with community and enterprise addons). Document both
in the README Entwicklung section, including the resulting test
addons path (odoo_enterprise/odoo/addons,addons). Also point the
module table row at the approved General-AT plan.