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>
11 KiB
11 KiB
Status des Projekts
Kurz und aktuell. Wird bei jedem Merge und jeder Übergabe gepflegt (Skill sn-uebergabe). Älteres wandert nach unten
in „Erledigt" oder wird gelöscht. Stand: 18.09.2026.
Aktuelle Phase
Vorbereitung der gemeinsamen KI-gestützten Entwicklung. Wissensbasis, Regeln, Skills, Leitfäden und Werkzeuge
liegen als Vorschlag vor (dieses Repository, künftig AG_QGIS/Projektwissen). Das grundlegende Refactoring ist eine
spätere Phase und beginnt erst, wenn die Test-Baseline grün ist und das Projektwissen vom Team abgenommen wurde.
Wer arbeitet woran
| Person / Behörde | Schwerpunkt | Stand |
|---|---|---|
| Daniel Helbig (LK Meißen) | Fachfunktionen Verfahrensgebiet, Plan41, VLN-API; aktuell Test-Audit (Basis #63 gemergt, weitere Lücken laut Testkatalog offen) | aktiv |
| Michael Otto (LK Mittelsachsen) | Release-Infrastruktur, Linkliste, zuletzt Verfahrensgebiet (Shape-Laden, Beteiligung) | aktiv |
| 22munzke | Druck/Layout-Anforderungen (Issues Basis #37–#44) | Issues |
| weitere Behörden | Einstieg über dieses Repository | ab 09/2026 |
Offene Baustellen (priorisiert)
- Repository
AG_QGIS/Projektwissenauf Gitea anlegen und diesen Ordner pushen. Prüfliste:docs/konzept/08_repo_einrichten.md. Danach Teamabnahme der Entscheidungen 0006–0009. stablein den Plugin-Repositories anlegen und Branch-Schutz fürstable,testing,unstablesetzen. Der stabile Kanal existiert heute nicht; ein Tag ohne Suffix würde fehlschlagen (ADR 0007,docs/konzept/08_repo_einrichten.mdAbschnitt 5).- QGIS-Mindestversion klären.
qgis_min = "3.40"inworkspace.tomlundqgisMinimumVersion=3.40in allenmetadata.templatezeigen auf eine Version, die seit Januar 2026 End of Life ist. Aktueller LTR ist 3.44, Stable 4.2 wird am 25.09.2026 LTR. Produktentscheidung, blockiert die CI-Matrix (docs/konzept/07_qgis_tests_plan.mdAbschnitt 2). - Test-Baseline grün machen. Ist-Stand Mock-Modus laut
docs/status/testbaseline.json: sn_basis 166/166 grün, sn_plan41 43/44 (1 Fehler intest_tab_a_ui), sn_verfahrensgebiet 157/201 (36 rot, 8 übersprungen; meist veraltete Tests nach dem Mehrfachauswahl-Umbau). Probelauf am 03.09.2026 mit frischen Klonen:sn_verfahrensgebiet154/201, drei neue rote Tests intest_verfahrensgebiet_alkis_komplettdurch PR #43 („Nur-laden-Option durch Stop-Abfrage ersetzt"). Entscheidung des Maintainers: Tests anpassen oder Baseline mit--update-baselinenachziehen. - Testbeschreibungen nachziehen.
sn_basisundsn_verfahrensgebiet(Docstring-Pflicht) sind in Arbeit,sn_plan41weiterhin fast vollständig ohne Docstring (1 von 44). Ohne Beschreibung ist von außen nicht erkennbar, was ein Test prüft. Arbeitsliste: Abschnitt „Lücken" indocs/tests/testkatalog.md. Pflicht für neue und geänderte Tests gilt ab sofort (ADR 0009). Seit 15.09.2026 zusätzlich als Dashboarddocs/tests/testkatalog.html(lokal im Browser öffnen) – zeigt Testabdeckung und -status auf einen Blick, seit 18.09.2026 auch strukturelle Lücken (Quellcode-Funktionen ohne Testbezug, Abschnitt „Ungetestete Funktionen"), ohne in den Code zu schauen. - Testlücken beim Shape-Import schließen. Beim Erstellen von
docs/tests/verfahrensgebiet-shape-import.mdgefunden und gegenorigin/unstablegeprüft:_ermittle_gebietstyp_aus_fbschlhat keinen Test — obwohl PR #44/#45 genau diese Funktion tolerant gemacht hat. Ebenso ungetestet: mehrere Shapefile-Sätze in einer ZIP-Datei, Fehlersammlung über mehrere Dateien. Issues anzulegen. - CI für Tests in den drei Plugin-Repos einrichten (Vorlage
docs/vorlagen/gitea_workflow_tests.yaml), Push/PR aufunstable. .vscode/aus den Plugin-Repos entfernen. Liegt noch inPlugin_SN_Basis,Plugin_SN_Plan41,Plugin_SN_VerfahrensgebietundPlugin_SN_Widmung, mit fest verdrahteten Pfaden eines einzelnen Arbeitsplatzes (OSGeo-Installationspfad und ein persönliches Benutzerprofil unterC:/Users/...). Im Projektwissen ist er am 04.09.2026 entfernt worden; die brauchbaren Einstellungen stehen jetzt indocs/leitfaden/04_werkzeuge_einrichten.mdAbschnitt 4.2.- Release-Excludes ergänzen (
Repository:hidden/workflows):AGENTS.md,CLAUDE.md,.agents/,.claude/,docs/,tests/,.vscode/. - Metadata-Templates korrigieren (Plan41 → eigenes Repo, FLT →
Plugin_SN_FLT, Widmung-Version). - Abhängigkeiten deklarieren (
openpyxl,requests; Basis-Abhängigkeit inmetadata.templatealsplugin_dependencies). - Linkliste zusammenführen (Entscheidung: zentrale CSV als einzige Quelle, XLSX generieren).
- Fachlich offen: Planstand-Versionierung (Plan41 #3), Fachschale aus dem Alternativansatz
(
docs/analyse/00_vergleich_alternativansatz_2026-09-02.md). Shape-Import mit abweichendemFBSchl-Feldnamen ist seit PR Verfahrensgebiet #45 umgesetzt; QGIS-Test mit echtem DAVID-Export steht aus. - ALKIS-7-Umstellung vorbereiten.
sn_verfahrensgebiettrifft an mehreren Stellen ALKIS-6-Annahmen (fest verdrahteter NAS-Namespacegid/6.0ingrenzpunkt_alkis.py, abgeflachte WFS-Feldnamen insql=-Filtern). Vergleich 6↔7 und Anpassungsliste:docs/konzept/09_alkis7_umstellung.md. Nächster Schritt: Gitea-Issue inPlugin_SN_Verfahrensgebiet. - Test-Audit durchführen (Ticket #16). Infrastruktur ist fertig, PR steht aus:
scripts/test_audit.py(status/markieren) unddocs/status/testpruefungen.jsonmachen im Prüfstand (docs/tests/testkatalog.html) je Testfall sichtbar, ob und wann er zuletzt fachlich geprüft wurde (unabhängig vom Baseline-Status). Aktuell gelten alle 346 Testfälle als „nie geprüft" — nächster Schritt ist der eigentliche Audit-Durchgang (Team geht die Pakete durch und markiert pertest_audit.py markieren), danach getrennt: Testlücken/Fachtests aus den Testkonzept-Seiten ergänzen (Ticket-Text nennt das ausdrücklich als separaten Folgeschritt). - Standarddatei-Existenzprüfung fehlt (Basis #59).
Dateipruefer._handle_leere_eingabe()undPruefmanager._handle_basic_decision()prüfen beistandarddatei_vorschlagenniefile_exists()— bestätigt der Nutzer eine nicht vorhandene Standarddatei, kommt trotzdemok=True/"ok"zurück stattdatei_nicht_gefunden. Bearbeitung bewusst zurückgestellt: hängt von der Design-Entscheidung ab, ob die Funktion „Standarddatei" überhaupt gebraucht wird — aktuell übergibt kein Aufrufer (DataGrabber.py,excel_importer.py) den Parameterstandarddatei.TestDateipruefer.test_ standarddatei_vorschlagenbleibt bis zur Entscheidung bewusst ohne Gegenstück für den Fehlerfall (kein Testfall-„nie geprüft", sondern Verhalten ungeklärt) — siehe Kommentar im Testfall. - WMS-Zeilen im Datenabruf ungeklärt (Basis #77).
Datenabruf._fetch_features()liefert fürprovider == "WMS"immer([], None), der Kommentar dort verspricht „caller behandelt WMS separat" — das tutdatenabruf()aber nicht: jede WMS-Zeile durchläuft dieselbe relevant/ausserhalb-Klassifizierung wie WFS/REST/OGR und landet deshalb zwangsläufig inausserhalb, ohne dass je ein Layer geschrieben wird. Offen: ist das gewollt (WMS-Kartendienste werden in diesem Pfad bewusst nicht geladen) oder fehlt die im Kommentar versprochene Sonderbehandlung?DatenabrufOrchestrierungTests. test_wms_zeile_ohne_features_landet_in_ausserhalbdokumentiert bewusst den Ist-Zustand, nicht den bestätigt gewünschten — siehe Kommentar im Testfall. - Falscher Aktionscode in
Datenschreiber.schreibe_log()(Basis #78). Der Erfolg wird mitaktion="standarddatei_vorschlagen"gemeldet — demselben Code, denDateipruefer/Pruefmanagerfür die Standarddatei-Rückfrage nutzen (Punkt 16). Aktuell folgenlos, weilPruefmanager.verarbeite()beiok=Truesofort zurückkehrt, bevor die Aktion ausgewertet wird — aber missverständlich und zerbrechlich bei künftigem Code, der auf diese Aktion filtert.SchreibeLogTests. test_schreibt_json_datei_mit_ergebnissen_und_gibt_pfad_zurueckdokumentiert bewusst den Ist-Zustand — siehe Kommentar im Testfall.
Hinweis zum lokalen Stand (04.09.2026): Die Klone Plugin_SN_Verfahrensgebiet (4 Commits: PR #43, PR #45)
und Repository (Release 26.8.4-unstable) liegen hinter origin. Aktualisieren mit python scripts/hallo.py.
Zuletzt gemergt (unstable)
- 18.09.2026 Basis #63 (PR #64): Tests für die vier bis dahin testlosen Kernmodule der Datenpipeline
(
Datenabruf.py,Datenschreiber.py,LayerLoader.py,excel_importer.py), 70 neue Testfälle, sn_basis jetzt 166/166 grün. Nebenbei_MockQgsProjectumtransformContext()/addMapLayer()ergänzt. - 18.09.2026 Verfahrensgebiet #53: Grenzpunkt-Stilanbringung, neuer Test.
- 02.09.2026 Verfahrensgebiet #45: FBSchl-Feldsuche tolerant gegenüber abweichenden Feldnamen; #43: Nur-laden-Option bei ALKIS-Laden durch Stop-Abfrage ersetzt (Release 26.8.4-unstable).
- 02.09.2026 Verfahrensgebiet #42: Shape-Ladevorgang mit Mehrfachauswahl, ZIP-Entpacken,
FBSchl-Prüfung. - 31.08.2026 Basis #57: DataGrabber lädt ohne
sn_plan41(Lazy-Import). - 31.08.2026 Basis #55 / Verfahrensgebiet #40: Mehrfachauswahl ALKIS, Landkreis-Fallback, Beteiligungsprüfung portiert.
Erledigt (Vorbereitungsphase)
- 04.09.2026 Git-Vorgaben verbindlich festgeschrieben:
docs/leitfaden/05_git_arbeitsweise.mdmit Kanal-Kette, Fix-Einstieg nach Kanal, Rückführungspflicht, Branch-Namen, Gitea-Branch-Schutz. Technisch abgesichert über.claude/settings.json(ADR 0007). - 04.09.2026 Ticketzugriff:
scripts/gitea.py(lesend, ohne Token) und Skillsn-ticket. Schreibende Aktionen nur als Entwurf inentwuerfe/; abgesendet wird vom Menschen. - 04.09.2026 Sitzungsbeginn:
scripts/hallo.pyund Slash-Befehl/hallo— Stand aller Klone holen, Fast-Forward wo gefahrlos, nie mergen oder stashen. - 04.09.2026 Tests ausgebaut:
docs/leitfaden/06_tests.md, generierterdocs/tests/testkatalog.md(scripts/testkatalog.py), Vorlage und erste Testkonzept-Seite mit Mermaid (ADR 0009). - 04.09.2026 QGIS-Testplan recherchiert und als Stufenplan festgehalten (
docs/konzept/07_qgis_tests_plan.md). - 04.09.2026 Werkzeuge entschlackt auf Claude Code (CLI und VS Code),
.vscode/entfernt (ADR 0008). Repository heißt künftigProjektwissen(ADR 0006); README als Einstieg neu aufgebaut. - 02.09.2026 Gesamtüberblick und Vergleich Alternativansatz erstellt (
docs/analyse/00_*). - 02.09.2026 Workspace-Struktur, AGENTS.md, Skills, Modulkarte, Schnittstellen, Fallstricke, Leitfaden angelegt.