- werkzeuge/vorschau/vorschau.html: Anzeige per Drag & Drop oder Dateiauswahl, Zoom, Einpassen, Fehlermeldungen; funktioniert ohne Python direkt aus dem Dateisystem. - scripts/vorschau.py: erzeugt aus .bpmn oder Arbeitsschritt-.md eine in sich geschlossene Seite und öffnet sie; --stdin als Filter, etwa für einen Gitea-Renderer. Diagramm wird mit maskiertem '<' eingebettet, die Bibliothek unverändert und nur auf <script/</script geprüft. - bpmn-js 18.29.1 (navigated viewer + CSS + LICENSE) lokal eingebettet, npm-Integrität geprüft; lädt nichts aus dem Netz. Wasserzeichen bleibt laut Lizenzauflage sichtbar. - tests/test_vorschau.py: 11 Tests; Skill sn-bpmn, Anleitung, AGENTS.md, README, Leitfäden, Fallstricke und STATUS ergänzt. - Tests: python -m pytest -q -> 55 bestanden. Darstellung mit Edge headless geprüft (beide Beispiele, leere Seite, kaputte Datei). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
98 lines
6.0 KiB
Markdown
98 lines
6.0 KiB
Markdown
# 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/<nr>-<kurzname>` bzw.
|
||
`bugfix/<nr>-<kurzname>`, 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/<name>/`** (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`. Einzige eingebettete Fremdbibliothek ist bpmn-js unter `werkzeuge/vorschau/bpmn-js/` –
|
||
nicht von Hand ändern, Aktualisierung nach `werkzeuge/vorschau/README.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 <nr>`) oder als Entwurf
|
||
vorbereiten. Ziel und Abnahmekriterien klären, bevor etwas geändert wird.
|
||
3. Branch `feature/<issue-nr>-<kurzname>` bzw. `bugfix/<issue-nr>-<kurzname>` 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 "<text>"`
|
||
- 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]`
|
||
- Diagramm im Browser ansehen (offline): `python scripts/vorschau.py <datei.bpmn|datei.md>`
|
||
- 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/<name>.md entwuerfe/<name>.bpmn`
|
||
|
||
## Skills
|
||
|
||
Liegen in `.agents/skills/` (Agent-Skills-Standard) und werden nach `.claude/skills/` gespiegelt:
|
||
`sn-bpmn`, `sn-aufgabe-bearbeiten`, `sn-ticket`, `sn-uebergabe`.
|