Commit Graph
58 Commits
Author SHA1 Message Date
DanielandClaude Opus 5.5 3a872737a7 Test-Audit sn_basis fortgesetzt: ly_existence_wrapper.py fachlich geprüft (#76)
11 Testfälle fachlich geprüft und markiert: test_ly_existence_wrapper.py komplett
(inkl. 3 neuer Tests für layer_exists). Dabei gefunden und in Plugin_SN_Basis als
Issues vorbereitet (Absenden durch den Menschen): layer_is_valid/layer_is_usable
haben keinen Aufrufer, isValid() wird rund 20-mal direkt aufgerufen (nutzen oder
entfernen); Layerpruefer lässt ungültige Layer im Existenz-Schritt durch.

Testkatalog neu erzeugt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 09:08:48 +02:00
DanielandClaude Sonnet 5 94ab55923d Test-Audit sn_basis fortgesetzt: landkreise.py und LayerLoader.py fachlich geprüft (#76)
38 Testfälle fachlich geprüft und markiert: test_landkreise.py komplett (6, inkl.
4 neuer Tests) und test_layerloader.py komplett (32, inkl. 7 neuer Tests). Dabei
gefunden und in Plugin_SN_Basis als Issues vorbereitet (Absenden durch den
Menschen): #80 (REST-Link ohne Layer-Index lädt still Layer 0), #81 (unbekannter
Provider fällt still auf ogr zurück), #82 (Datenabruf und LayerLoader bauen aus
demselben REST-Link widersprüchliche URLs), #83 (filter_by_extent/filter_by_layer
reichen ungültige Layer still durch).

Testkatalog neu erzeugt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-22 15:26:25 +02:00
DanielandClaude Sonnet 5 a6dfbefbd4 Test-Audit sn_basis fortgesetzt: test_datenabruf, test_datenschreiber, test_dockmanager (#76)
48 weitere Testfälle in sn_basis fachlich geprüft und markiert (test_datenabruf.py: 24,
test_datenschreiber.py: 18, test_dockmanager.py: 6). Dabei zwei fragliche Codestellen
gefunden und als offene Punkte in STATUS.md festgehalten:
- Basis #77: Datenabruf._fetch_features() klassifiziert WMS-Zeilen immer als "ausserhalb",
  ohne dass je ein Layer geschrieben wird; der Kommentar "caller behandelt WMS separat"
  trifft nicht zu.
- Basis #78: Datenschreiber.schreibe_log() meldet Erfolg mit dem sachfremden Aktionscode
  "standarddatei_vorschlagen" (vermutlich Copy-Paste-Rest), aktuell folgenlos.

Testkatalog neu erzeugt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 14:49:28 +02:00
DanielandClaude Sonnet 5 159efc27a7 Testkatalog neu erzeugt für Basis #76
Docstring-Präzisierung von test_fehlender_layer_liefert_none übernommen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 11:49:25 +02:00
DanielandClaude Sonnet 5 8f54251eaf Test-Audit: 19 sn_basis-Tests fachlich geprüft (test_base_dockwidget, test_datagrabber, test_dateipruefer)
CloseEventTests (test_base_dockwidget.py, 5 Tests), TestDataGrabber._aggregate_results-Tests
(test_datagrabber.py, 2 Tests) und alle bisher ungeprüften TestDateipruefer-Tests
(test_dateipruefer.py, 12 Testfälle inkl. der mit #70 ergänzten) als am 2026-09-21 fachlich
geprüft markiert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 11:00:05 +02:00
DanielandClaude Sonnet 5 b20503d7b6 Testkatalog neu erzeugt für Basis #72
sn_basis: 329 Testfälle (zuvor 328), Navigation.remove_all()-Test aus #72 mit erfasst.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 10:45:06 +02:00
DanielandClaude Sonnet 5 049a5ffe1d Testkatalog neu erzeugt, Wissensbasis für Basis #70 nachgezogen
sn_basis steht laut Prüfstand jetzt bei 0 ungeklärten Funktionen. Fallstricke.md um den
Windows-Fallstrick "sqlite3-Verbindung aus with-Block schließt nicht, TemporaryDirectory-
Cleanup schlägt fehl" ergänzt (Fund aus Basis #70).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-21 08:50:32 +02:00
DanielandClaude Sonnet 5 cd11e409a3 Prüfstand: Statistik-Kacheln je Paket, beabsichtigt/ungeklärt-Indikator
Jedes Paket zeigt jetzt dieselben Kennzahl-Kacheln wie die Gesamtübersicht
(Testdateien, Testfälle, grün/rot/übersprungen, mit Docstring, geprüft,
ohne Testbezug) statt eines Fließtexts.

Ungetestete Funktionen werden per Docstring-Auswertung als "beabsichtigt"
(Vermerk "von Test abgesehen, weil …" oder "Test ausgesetzt, zunächst
Refactor") oder "ungeklärt" markiert - in Markdown als Anmerkung je
Funktion, im Prüfstand als Pille mit Tooltip (Begründung).

Der Abschnitt "Ungetestete Funktionen" ist im Prüfstand jetzt eine
ausklappbare Karte wie eine Testdatei, mit eigener Kennzahl-Übersicht
(Anzahl, ungeklärt, beabsichtigt) im Kopf - bewusst von den Filter-Chips
ausgenommen (.gapcard), da diese sich auf Testfall-Status beziehen, nicht
auf Quellcode-Funktionen.

Neue Funktion absichtlicher_verzicht() plus 6 neue Tests in
scripts/tests/test_testkatalog_quellfunktionen.py.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 13:26:01 +02:00
DanielandClaude Sonnet 5 cb29620f6e Testkatalog neu erzeugt für Basis #67
sn_basis: 317 Testfälle (32 Testdateien), Kategorie "vielleicht testen"
abgeschlossen. modulkarte.md an aktuelle Testdateizahl angepasst.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 13:07:20 +02:00
DanielandClaude Sonnet 5 3f985ce209 Testkatalog neu erzeugt, Wissensbasis für Basis #65 nachgezogen
sn_basis: 244 -> 249 Testfälle. fallstricke.md: _MockQDockWidget ohne
closeEvent(), zwei bestätigte Testkatalog-Fehlalarme (toter Code in
Pruefmanager._ask_use_or_replace_pufferlayer, Issue #60) sowie das Muster
Klasse.__new__(Klasse) für UI-Klassen, die im Mock nicht konstruierbar
sind. modulkarte.md an aktuelle Testdateizahl angepasst.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 11:20:37 +02:00
DanielandClaude Sonnet 5 b47f740c10 STATUS.md: Merge von Basis #63 und Verfahrensgebiet #53 nachgetragen
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 10:10:54 +02:00
DanielandClaude Sonnet 5 1359ba2761 Testkatalog neu erzeugt, Wissensbasis für Basis #63 nachgezogen
sn_basis: 96 -> 166 Testfälle (Datenabruf, Datenschreiber, LayerLoader,
excel_importer bekamen Tests). fallstricke.md: unvollständiger
_MockQgsProject (transformContext/addMapLayer fehlten). modulkarte.md und
STATUS.md an aktuellen Stand angepasst.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 09:50:45 +02:00
DanielandClaude Sonnet 5 906740eff6 Testkatalog: strukturelle Lückenanalyse (ungetestete Funktionen)
Ergänzt den Testkatalog um einen Abschnitt "Ungetestete Funktionen": Quellcode-Funktionen
und -Methoden, deren Name in keiner Testdatei des Pakets vorkommt (Namensabgleich per ast,
ohne Import). Keine Wiederaufnahme der in ADR 0009 verworfenen Zeilen-Coverage-in-Prozent,
sondern eine Lückenliste nach demselben Muster wie der bestehende Abschnitt für fehlende
Docstrings - entsprechend in ADR 0009 und docs/leitfaden/06_tests.md ergänzt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 07:37:40 +02:00
DanielandClaude Sonnet 5 e5e1b6e768 Testkatalog: neuer Test für Grenzpunkt-Stilanbringung (#53)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 16:29:26 +02:00
DanielandClaude Sonnet 5 4d036516a1 Testkatalog: neuer Test für get_plugin_root()-Fix (Verfahrensgebiet #50)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 16:12:17 +02:00
DanielandClaude Sonnet 5 4f87684224 Test-Audit: TestStilpruefer (sn_basis) fachlich geprüft
Alle 4 Tests gegen modules/stilpruefer.py geprüft - Docstrings passen
zur Implementierung, keine Diskrepanzen. Dabei entdeckt: der relative
Pfad-Zweig (sn_plan41/assets-Redirect) ist untestet und hängt von
get_plugin_root() ab, das laut #50 in Plugin_SN_Verfahrensgebiet einen
Junction-Auflösungsfehler hat. Test für diesen Zweig zurückgestellt,
bis der #50-Fix vorliegt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 15:51:40 +02:00
DanielandClaude Sonnet 5 a2467d3431 Test-Audit: TestSettingsLogic (sn_basis) fachlich geprüft
Alle 4 Tests gegen functions/settings_logic.py geprüft. Eine Docstring
war ungenau (Fallback-Verantwortung fälschlich load() zugeschrieben,
siehe vorheriger Commit) - jetzt korrigiert, alle vier bestätigt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 15:04:42 +02:00
DanielandClaude Sonnet 5 6b687c34d2 Testkatalog neu erzeugt: korrigierte Docstring test_settings_logic
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 15:01:29 +02:00
DanielandClaude Sonnet 5 fe55d5b914 Test-Audit: TestPruefmanager (sn_basis) fachlich geprüft
Alle 14 Tests gegen modules/Pruefmanager.py geprüft - Docstrings passen
zur Implementierung. Dabei entdeckt: _ask_use_or_replace_pufferlayer()
und _handle_verfahrensgebiet_layer_existiert() haben weder Tests noch
Aufrufer im gesamten Workspace; erstere referenziert ein nicht
existierendes self.pruefmanager (Absturz bei Aufruf) - dafür eigenes
Issue angelegt (Entwurf in entwuerfe/), analog zu #59.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 14:56:52 +02:00
DanielandClaude Sonnet 5 0f8f80a71d Test-Audit: TestLinkpruefer (sn_basis) fachlich geprüft
Alle 6 Tests (5 bestehende + neuer Testfall für leere Eingabe) gegen
modules/linkpruefer.py geprüft - Docstrings passen zur Implementierung,
keine Diskrepanzen gefunden.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 14:46:22 +02:00
DanielandClaude Sonnet 5 18bb17ac57 Test-Audit: TestLayerpruefer (sn_basis) fachlich geprüft
Alle 10 Tests gegen modules/layerpruefer.py geprüft - Docstrings passen
zur Implementierung, keine Diskrepanzen gefunden. Monkeypatch-Isolation
in setUp() (kein tearDown) bewusst unangetastet gelassen, da aktuell
keine andere Testdatei Layerpruefer verwendet.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 14:42:34 +02:00
DanielandClaude Sonnet 5 aa63f234e7 Test-Audit: TestGetLaenderkennung (sn_basis) fachlich geprüft
Alle 5 Tests gegen functions/laenderkennung.py geprüft - Docstrings
passen zur Implementierung, keine Diskrepanzen gefunden.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 14:38:42 +02:00
DanielandClaude Sonnet 5 3a07785a66 Test-Audit: TestDateipruefer (5 von 6) fachlich geprüft
leereingabe_erlaubt, leereingabe_nicht_erlaubt, temporaer_erlaubt,
datei_nicht_gefunden, datei_ok geprüft und bestätigt - Docstrings passen
zur Implementierung. test_standarddatei_vorschlagen bewusst ausgenommen,
solange die Design-Entscheidung zu Basis #59 (Standarddatei-Modus) offen
ist.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 14:35:44 +02:00
DanielandClaude Sonnet 5 78105fcd64 STATUS.md: offenen Punkt zur Standarddatei-Existenzprüfung ergänzt (Basis #59)
Fund aus dem Test-Audit (#16): Dateipruefer/Pruefmanager prüfen bei
standarddatei_vorschlagen nie file_exists(). Bearbeitung bewusst
zurückgestellt, bis geklärt ist, ob der Standarddatei-Modus überhaupt
gebraucht wird - separates Issue Basis #59, eigener Branch bei Bedarf.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 14:27:23 +02:00
DanielandClaude Sonnet 5 f2eb883162 Testkatalog neu erzeugt: TestFlurstueckAlkis-Korrekturen (#16)
Nach der Testabgleichung in Plugin_SN_Verfahrensgebiet (bugfix/16-
flurstueck-alkis-testabgleich): Docstrings jetzt in "Prueft, dass ..."-
Form, ein Test entfernt, Gruen/Rot-Zaehlung aktualisiert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-17 12:12:03 +02:00
DanielandClaude Sonnet 5 4fb90fba31 Testkatalog neu erzeugt: restliche sn_basis-Docstrings
sn_basis steht jetzt bei 94 von 94 Testfällen mit Docstring (100 %),
Gegenstück zu Plugin_SN_Basis-Commit 23aab76 (Branch
feature/testdatagrabber-docstrings).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 15:06:33 +02:00
DanielandClaude Sonnet 5 accf1bf7e8 Test-Audit: TestDataGrabber (sn_basis) fachlich geprüft
Erster echter Audit-Durchgang mit scripts/test_audit.py: alle sechs
TestDataGrabber-Testfälle durchgesehen, mit Docstring versehen
(Plugin_SN_Basis, separater Branch/PR) und als geprüft markiert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 13:18:13 +02:00
DanielandClaude Sonnet 5 ec400ae59e Test-Audit: Datei:Zeile und Quelltext-Ausgabe für bequemes Ansehen/Editieren
status zeigt je Treffer "<Datei>:<Zeile>" (in Editor-Terminals anklickbar)
und optional per --code den Testquelltext im Terminal. Der Prüfstand selbst
bleibt ohne Quelltext, um Diff-Lärm bei jeder Codeänderung zu vermeiden.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 12:45:12 +02:00
DanielandClaude Sonnet 5 5dfec4f934 STATUS.md: Test-Audit-Infrastruktur als offene Baustelle ergänzt
Ticket #16 ist mit dieser PR technisch umgesetzt (Skript + Datenformat +
Prüfstand); der eigentliche Audit-Durchgang durch die 346 Testfälle ist
ein separater nächster Schritt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 10:25:09 +02:00
DanielandClaude Sonnet 5 d9d2542a20 Test-Audit einführen: Prüfstatus je Testfall im Prüfstand sichtbar machen
Ticket #16. docs/status/testpruefungen.json hält je Testfall Datum und
Kurzprüfsumme der letzten fachlichen Prüfung fest; scripts/testkatalog.py
liest das und zeigt es als eigene Spalte/Pille (nie geprüft / geprüft am …
/ veraltet seit Änderung …), unabhängig vom Baseline-Status. Neues Skript
scripts/test_audit.py (status/markieren) pflegt die Datei; erste Tests für
scripts/ unter scripts/tests/.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-16 10:23:45 +02:00
Daniel a0bb40aeee Merge pull request 'HTML-Dashboard 'Pruefstand' fuer den Testkatalog ergaenzt' (#15) from feature/testkatalog-html-dashboard into main
Reviewed-on: #15
2026-09-15 09:44:13 +00:00
DanielandClaude Sonnet 5 f7aa8ca899 HTML-Dashboard 'Pruefstand' fuer den Testkatalog ergaenzt
scripts/testkatalog.py schreibt jetzt zusaetzlich zu testkatalog.md ein
eigenstaendiges, lokal oeffenbares HTML-Dashboard (docs/tests/testkatalog.html):
je Testdatei ein Mermaid-Baumdiagramm Datei -> Testgruppe -> Testfall,
Statusfarbe aus der Baseline, plus Filter (rot/uebersprungen/schwach
beschrieben) und Volltextsuche. Generiert direkt aus denselben
Paketkatalog-Dataclasses wie der Markdown-Katalog, kein zweiter Parse-Schritt.

--pruefen prueft jetzt beide Dateien; --ohne-html erzeugt/prueft nur die
Markdown-Datei; --html-ausgabe setzt ein anderes Ziel. Mermaid laedt von
cdnjs.cloudflare.com (Fallstrick dokumentiert: ohne Internetverbindung bleiben
nur die Diagramme leer).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 11:36:01 +02:00
Daniel 70360acf5f Merge pull request 'Testkatalog nach Konsolidierung in Plugin_SN_Verfahrensgebiet #47 aktualisiert' (#14) from bugfix/47-flurstuecke-ladelogik-konsolidieren-testkatalog into main
Reviewed-on: #14
2026-09-15 08:40:53 +00:00
DanielandClaude Sonnet 5 38f0845730 Testkatalog nach Konsolidierung in Plugin_SN_Verfahrensgebiet #47 aktualisiert
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 10:26:39 +02:00
Daniel 86e8474c7b Merge pull request 'Bugfix/28 doppelte flurstuecke testkatalog' (#13) from bugfix/28-doppelte-flurstuecke-testkatalog into main
Reviewed-on: #13
2026-09-15 08:08:34 +00:00
DanielandClaude Sonnet 5 3ded00896c Testkatalog nach zweitem Fix in Plugin_SN_Verfahrensgebiet #28 aktualisiert
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 09:17:46 +02:00
DanielandClaude Sonnet 5 f5e0a22457 Testkatalog nach Fix in Plugin_SN_Verfahrensgebiet #28 aktualisiert
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 08:51:11 +02:00
Daniel cae9cbb646 Merge pull request 'Bugfix/42 umlaute sonderzeichen-Doku Prüfskript' (#12) from bugfix/42-umlaute-sonderzeichen into main
Reviewed-on: #12
2026-09-15 06:08:28 +00:00
Daniel 02023d0deb Merge branch 'main' into bugfix/42-umlaute-sonderzeichen 2026-09-15 06:07:30 +00:00
Daniel 21ae6ddeac Merge pull request 'Neue Kategorie projekte/ fuer plugin-spezifische Fachablauf-Diagramme' (#11) from doku/ablauf-verfahrensgebiet-alkis-laden into main
Reviewed-on: #11
2026-09-14 13:26:10 +02:00
Daniel d92ca6d2f7 Merge branch 'main' into doku/ablauf-verfahrensgebiet-alkis-laden 2026-09-14 13:25:39 +02:00
Michael Otto 59aafe1898 Branches im Projektwissen (#8) 2026-09-14 13:00:07 +02:00
Michael Otto 3ba7a32c7e Neue Kategorie projekte/ fuer plugin-spezifische Fachablauf-Diagramme
Bisher gab es keinen Platz fuer rein fachliche Ablaufbeschreibungen
unabhaengig von Tests: docs/ ist projektuebergreifendes Wissen,
docs/tests/ ist testkonzept-gebunden. projekte/<paket>/ablaeufe/
schliesst diese Luecke, gegliedert nach Plugin-Paketname wie in
workspace.toml.

Erster Eintrag: projekte/sn_verfahrensgebiet/ablaeufe/alkis-laden.md,
uebernommen aus Plugin_SN_Verfahrensgebiet/docs/aus_alkis_laden.md
(dort entstanden, bevor es dieses Wissensrepo gab).
2026-09-14 12:49:27 +02:00
DanielandClaude Sonnet 5 d8f88df0ba Umlaut-Pruefskript ergaenzt und in Fallstricke dokumentiert (#42)
scripts/pruefe_umlaute.py findet String-Inhalte und Kommentare mit
Leerzeichen, die einen bekannten ASCII-Wortstamm statt Umlaut/ss enthalten
(gueltig, verfuegbar, fuer, ueber, ...). Technische Bezeichner ohne
Leerzeichen (aktion-Codes, Variablen-Keys, WFS-Feldnamen) werden von der
Heuristik nicht erfasst. Aktuell ueber den gesamten Workspace grün.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MneDjzrjmbpQt8udFYxN9e
2026-09-14 12:21:13 +02:00
22ottomi e00669ff9e Merge pull request 'Lokal abweichenden Ablageort der Plugin-Klone unterstuetzen (#6)' (#7) from feature/6-repos-root into unstable
Reviewed-on: #7
2026-09-14 11:38:23 +02:00
Michael Otto 85a34e4d1d Lokal abweichenden Ablageort der Plugin-Klone unterstuetzen (#6)
hallo.py, setup_workspace.py und link_qgis_profile.py gingen bisher fest
davon aus, dass die Repos aus workspace.toml direkte Unterordner von
Projektwissen sind. Eine optionale, nicht versionierte workspace.local.toml
mit [workspace] repos_root = "..." kann das jetzt lokal ueberschreiben, z. B.
wenn die Klone zusaetzlich unter einem separaten src-Ordner liegen und von
dort in mehrere QGIS-Profile verlinkt werden. Ohne diese Datei bleibt das
Verhalten fuer alle unveraendert.
2026-09-14 11:36:55 +02:00
Daniel 5c593931bb Merge pull request 'ALKIS-Objektartenkatalog als Wissensbasis fuer GID6 und GID7 angelegt' (#5) from doku/alkis-wfs-referenz into unstable
Reviewed-on: #5
2026-09-14 11:36:09 +02:00
DanielandClaude Sonnet 5 f0d7efddf2 Fallstricke/Modulkarte/Testkatalog um sanitize_bezeichner ergänzt (#42)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MneDjzrjmbpQt8udFYxN9e
2026-09-14 11:10:51 +02:00
Daniel 034060a1b8 Merge branch 'unstable' into doku/alkis-wfs-referenz 2026-09-14 09:58:50 +02:00
DanielandClaude Sonnet 5 f41666b3d6 ALKIS-Objektartenkatalog als Wissensbasis fuer GID6 und GID7 angelegt
Atomare Markdown-Wissensdateien je Objektart/Datentyp (Beschreibung, Attribute,
Codelisten, Bildungsregeln, Konsistenzbedingungen, Relationen inkl. Gegenrolle),
maschinell erzeugt aus den ADV-Katalog-XML unter referenz/alkis/ (unversioniert).

Zwei getrennte Baeume, weil operativ noch GID6 laeuft und GID7 erst der Zielstand
ist: docs/wissen/alkis/gid6/ (189 Klassen, WFS-Produktivstand, fuer Plugin-Code
massgeblich) und docs/wissen/alkis/gid7/ (209 Klassen, kuenftige Umstellung).

Vererbung wird nicht in jede Datei hineinkopiert (Drift-/Tokenrisiko), sondern per
Inline-Hinweis auf die Oberklasse referenziert plus on-demand ueber
_werkzeuge/parse_alkis.py resolve aufgeloest; ein diff-Modus vergleicht eine
Klasse zwischen beiden Versionen. alkis_objektarten.md verweist jetzt auf beide
Versionsbaeume.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 09:55:27 +02:00