# Projektwissen AG_Prozesse – Anweisungen für KI-Agenten und Mitwirkende Kanonische, werkzeugneutrale Anweisungsdatei. Claude Code liest sie über `CLAUDE.md`. Sie bleibt bewusst kurz: Details liegen in `docs/` und werden nur bei Bedarf gelesen. ## Worum es geht - Arbeitsgruppe der sächsischen Flurbereinigungsbehörden („LNO Sachsen") zur **Modellierung von Verwaltungsprozessen in BPMN 2.0**. Zielwerkzeug für den Import ist **PICTURE**. - Kernwerkzeug ist der Skill `sn-bpmn`: Prozessbeschreibung (Rohtext, Stichpunkte, Word/PDF) → strukturierte Arbeitsschritt-`.md` → BPMN-2.0-Datei (`.agents/skills/sn-bpmn/md_to_bpmn.py`). - Dieser Ordner ist der Klon des Repositories **`AG_Prozesse/Projektwissen`**. Weitere Repositories der Gruppe würden als eigenständige Git-Klone in Unterordnern liegen und in `workspace.toml` stehen – derzeit gibt es keine. - Die Arbeitsweise (Skripte, Skills, Git-Regeln) stammt aus `AG_QGIS/Projektwissen`, siehe `docs/entscheidungen/0001-uebernahme-aus-ag-qgis.md`. ## Zuerst lesen – nur was die Aufgabe braucht 1. `docs/status/STATUS.md` – aktueller Stand, offene Baustellen, wer woran arbeitet. 2. `docs/wissen/fallstricke.md` – bekannte Stolperfallen (BPMN-Layout, PICTURE-Import, Werkzeuge). 3. Für Modellierungsaufgaben: `.agents/skills/sn-bpmn/SKILL.md` und die dort genannten Dateien. 4. Fachbegriffe: `docs/wissen/glossar.md`. Übersicht aller Dokumente: `docs/README.md`. ## Harte Regeln ### Git und Server – der Mensch drückt ab - **Nie pushen, mergen, taggen oder etwas auf Gitea verändern.** Agenten bereiten vor, eine Person sendet ab. `.claude/settings.json` sperrt `git push`, `git merge`, `git rebase`, `git tag` technisch. - Hauptbranch ist `main`. Nie direkt auf `main` committen: eigener Branch `feature/-` bzw. `bugfix/-`, dann Pull Request. Vollständig: `docs/leitfaden/05_git_arbeitsweise.md`. - Sitzungsbeginn: `python scripts/hallo.py` (bzw. `/hallo`), bevor irgendetwas geändert wird. ### Tests - Vor jedem Commit: `python -m pytest -q` – alle Tests grün. - **Neues Verhalten von `md_to_bpmn.py` ohne Test wird nicht gemergt.** Bei einer Fehlerbehebung zuerst der Test, der den Fehler zeigt. - **Jeder neue oder geänderte Test bekommt einen deutschen Docstring**, erste Zeile in der Form `"""Prüft, dass …"""`. - Tests werden nicht gelöscht, nicht mit `skip` stillgelegt und nicht in ihrer Erwartung angepasst, um grün zu werden – außer das Verhalten wurde bewusst geändert und der Pull Request begründet es. ### Inhalte - **Keine personenbezogenen Daten, keine Zugangsdaten, keine internen Originalunterlagen** im Repository, in der Doku oder in Prompts. Quelldokumente (Word/PDF) bleiben lokal unter `referenz/` (nicht versioniert); ins Repository kommen nur die daraus abgeleiteten, bereinigten Arbeitsschritt-`.md` und BPMN-Dateien. - **Prozessmodelle liegen in `prozesse//`** (ADR 0003, Regeln in `prozesse/README.md`). Die `.md` ist maßgeblich, die `.bpmn` wird nie von Hand bearbeitet, sondern mit `python scripts/pruefe_prozesse.py --erzeugen` neu erzeugt. Den Status `abgenommen` setzt der Agent nie von sich aus. - Rollen und Verantwortliche in Prozessmodellen als Funktion benennen („Sachbearbeitung Flurbereinigung"), nie als Person. - Keine Python-Abhängigkeiten außer der Standardbibliothek und `pytest` ohne Issue-Absprache und Eintrag in `fallstricke.md`. - Kein Umbau „nebenbei". Strukturänderungen nur über eigenes Issue. ### Allgemein - Sprache: Doku, Kommentare, Docstrings, Commit-Nachrichten, Issues und PRs auf Deutsch, mit echten Umlauten (Prüfung: `python scripts/pruefe_umlaute.py`). Bezeichner nach dem Stil der jeweiligen Datei. ## Arbeitsablauf in Kurzform (Details: Skill `sn-aufgabe-bearbeiten`) 1. `python scripts/hallo.py` – Stand holen. 2. Gitea-Issue lesen (Skill `sn-ticket`, `python scripts/gitea.py ticket Projektwissen `) oder als Entwurf vorbereiten. Ziel und Abnahmekriterien klären, bevor etwas geändert wird. 3. Branch `feature/-` bzw. `bugfix/-` von `main`. 4. In kleinen Schritten umsetzen; nur betroffene Dateien und Abschnitte lesen. 5. `python -m pytest -q` (enthält `pruefe_prozesse.py`) und `python scripts/pruefe_umlaute.py`. Erzeugte BPMN-Dateien zusätzlich in PICTURE importieren und das Ergebnis im PR nennen. 6. Pull-Request-Text nach `docs/vorlagen/pull_request.md` vorbereiten, inklusive Übergabenotiz (Skill `sn-uebergabe`). **Push und Pull Request macht der Mensch.** 7. Neue Erkenntnisse in `docs/wissen/` oder `docs/entscheidungen/` festhalten, nicht nur im lokalen Gedächtnis des Werkzeugs. ## Tokensparend arbeiten - Gezielt `grep`, dann nur die nötigen Abschnitte lesen. `md_to_bpmn.py` (über 1000 Zeilen) nie komplett laden. - Keine Dateien oder Testausgaben in den Chat kopieren; Pfade mit Zeilennummern nennen. - Am Ende jeder Aufgabe eine Übergabenotiz, damit die nächste Sitzung nicht neu erkunden muss. - Breite Suchen an einen Unteragenten delegieren, wenn das Werkzeug das kann; Hauptkontext schlank halten. ## Befehle - Sitzungsbeginn: `python scripts/hallo.py` (Claude Code: `/hallo`) - Tickets: `python scripts/gitea.py tickets` | `python scripts/gitea.py ticket Projektwissen 12` | `… suche ""` - Tests: `python -m pytest -q` - Umlaute prüfen: `python scripts/pruefe_umlaute.py` - Prozessmodelle prüfen bzw. alle `.bpmn` neu erzeugen: `python scripts/pruefe_prozesse.py [--erzeugen]` - Workspace einrichten oder aktualisieren: `python scripts/setup_workspace.py` (mit `--pull` für fast-forward) - Entwurf umwandeln: `python .agents/skills/sn-bpmn/md_to_bpmn.py entwuerfe/.md entwuerfe/.bpmn` ## Skills Liegen in `.agents/skills/` (Agent-Skills-Standard) und werden nach `.claude/skills/` gespiegelt: `sn-bpmn`, `sn-aufgabe-bearbeiten`, `sn-ticket`, `sn-uebergabe`.