Files
Projektwissen/docs/status/STATUS.md
T

115 lines
9.2 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.
# 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)
1. **Repository `AG_QGIS/Projektwissen` auf Gitea anlegen** und diesen Ordner pushen.
Prüfliste: `docs/konzept/08_repo_einrichten.md`. Danach Teamabnahme der Entscheidungen 0006–0009.
2. **`stable` in den Plugin-Repositories anlegen** und Branch-Schutz für `stable`, `testing`, `unstable` setzen.
Der stabile Kanal existiert heute nicht; ein Tag ohne Suffix würde fehlschlagen (ADR 0007,
`docs/konzept/08_repo_einrichten.md` Abschnitt 5).
3. **QGIS-Mindestversion klären.** `qgis_min = "3.40"` in `workspace.toml` und `qgisMinimumVersion=3.40` in allen
`metadata.template` zeigen 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.md` Abschnitt 2).
4. **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 in `test_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_verfahrensgebiet` 154/201, **drei neue rote Tests** in
`test_verfahrensgebiet_alkis_komplett` durch PR #43 („Nur-laden-Option durch Stop-Abfrage ersetzt").
Entscheidung des Maintainers: Tests anpassen oder Baseline mit `--update-baseline` nachziehen.
5. **Testbeschreibungen nachziehen.** `sn_basis` und `sn_verfahrensgebiet` (Docstring-Pflicht) sind in Arbeit,
`sn_plan41` weiterhin 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" in `docs/tests/testkatalog.md`. Pflicht für
neue und geänderte Tests gilt ab sofort (ADR 0009). Seit 15.09.2026 zusätzlich als Dashboard
`docs/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.
6. **Testlücken beim Shape-Import schließen.** Beim Erstellen von `docs/tests/verfahrensgebiet-shape-import.md`
gefunden und gegen `origin/unstable` geprüft: `_ermittle_gebietstyp_aus_fbschl` hat **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.
7. **CI für Tests** in den drei Plugin-Repos einrichten (Vorlage `docs/vorlagen/gitea_workflow_tests.yaml`),
Push/PR auf `unstable`.
8. **`.vscode/` aus den Plugin-Repos entfernen.** Liegt noch in `Plugin_SN_Basis`, `Plugin_SN_Plan41`,
`Plugin_SN_Verfahrensgebiet` und `Plugin_SN_Widmung`, mit fest verdrahteten Pfaden eines einzelnen
Arbeitsplatzes (OSGeo-Installationspfad und ein persönliches Benutzerprofil unter `C:/Users/...`). Im Projektwissen ist er am 04.09.2026 entfernt worden; die
brauchbaren Einstellungen stehen jetzt in `docs/leitfaden/04_werkzeuge_einrichten.md` Abschnitt 4.2.
9. **Release-Excludes ergänzen** (`Repository:hidden/workflows`): `AGENTS.md`, `CLAUDE.md`, `.agents/`,
`.claude/`, `docs/`, `tests/`, `.vscode/`.
10. **Metadata-Templates korrigieren** (Plan41 → eigenes Repo, FLT → `Plugin_SN_FLT`, Widmung-Version).
11. **Abhängigkeiten deklarieren** (`openpyxl`, `requests`; Basis-Abhängigkeit in `metadata.template` als
`plugin_dependencies`).
12. **Linkliste zusammenführen** (Entscheidung: zentrale CSV als einzige Quelle, XLSX generieren).
13. Fachlich offen: Planstand-Versionierung (Plan41 #3), Fachschale aus dem Alternativansatz
(`docs/analyse/00_vergleich_alternativansatz_2026-09-02.md`). Shape-Import mit abweichendem
`FBSchl`-Feldnamen ist seit PR Verfahrensgebiet #45 umgesetzt; QGIS-Test mit echtem DAVID-Export steht aus.
14. **ALKIS-7-Umstellung vorbereiten.** `sn_verfahrensgebiet` trifft an mehreren Stellen ALKIS-6-Annahmen
(fest verdrahteter NAS-Namespace `gid/6.0` in `grenzpunkt_alkis.py`, abgeflachte WFS-Feldnamen in
`sql=`-Filtern). Vergleich 6↔7 und Anpassungsliste: `docs/konzept/09_alkis7_umstellung.md`.
Nächster Schritt: Gitea-Issue in `Plugin_SN_Verfahrensgebiet`.
15. **Test-Audit durchführen (Ticket #16).** Infrastruktur ist fertig, PR steht aus: `scripts/test_audit.py`
(`status`/`markieren`) und `docs/status/testpruefungen.json` machen 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 per `test_audit.py markieren`),
danach getrennt: Testlücken/Fachtests aus den Testkonzept-Seiten ergänzen (Ticket-Text nennt das
ausdrücklich als separaten Folgeschritt).
16. **Standarddatei-Existenzprüfung fehlt (Basis #59).** `Dateipruefer._handle_leere_eingabe()` und
`Pruefmanager._handle_basic_decision()` prüfen bei `standarddatei_vorschlagen` nie `file_exists()` —
bestätigt der Nutzer eine nicht vorhandene Standarddatei, kommt trotzdem `ok=True`/`"ok"` zurück statt
`datei_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 Parameter `standarddatei`. `TestDateipruefer.test_
standarddatei_vorschlagen` bleibt bis zur Entscheidung bewusst ohne Gegenstück für den Fehlerfall
(kein Testfall-„nie geprüft", sondern Verhalten ungeklärt) — 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 `_MockQgsProject` um `transformContext()`/`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.md` mit 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 Skill `sn-ticket`. Schreibende Aktionen
nur als Entwurf in `entwuerfe/`; abgesendet wird vom Menschen.
- 04.09.2026 **Sitzungsbeginn:** `scripts/hallo.py` und 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`, generierter `docs/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ünftig `Projektwissen` (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.