Prozessbibliothek als eigenes Repository auslagern (#9)
- ADR 0004 ersetzt ADR 0003: Die Prozessmodelle liegen im Repository AG_Prozesse/Prozessbibliothek, geklont nach Prozessbibliothek/ (neuer Eintrag in workspace.toml, .gitignore). prozesse/ ist entfernt; das Ablageformat (Ordner je Prozess, drei Dateien, Status) bleibt. - pruefe_prozesse.py prüft den Klon (Ort über setup_workspace.repos_root), lässt Punkt-Ordner wie .git aus und erlaubt in der Wurzel nur die Repo-Dateien. Fehlt der Klon, gibt es einen Hinweis statt eines Befunds; pytest warnt dann. - einlesen.py sucht den Bestand in der Bibliothek und nennt Treffer als Prozessbibliothek/<name>/, auch wenn der Klon woanders liegt. - Regeln aus prozesse/README.md nach docs/leitfaden/08_prozessbibliothek.md, inklusive Ablauf bei Konverteränderungen (zwei Pull Requests). - Verweise in AGENTS.md, README, Skills, Leitfäden, Vorlagen, Fallstricken und STATUS nachgezogen. - Tests: python -m pytest -q -> 88 bestanden, 1 xfail (#8), 1 Warnung (Bibliothek noch nicht geklont). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+3
-1
@@ -10,10 +10,12 @@
|
||||
| `leitfaden/04_werkzeuge_einrichten.md` | stabil | Einrichtung: Claude Code als CLI und in VS Code; von null zur ersten Aufgabe |
|
||||
| `leitfaden/05_git_arbeitsweise.md` | **verbindlich** | Branches, Pull Requests, was der Agent darf |
|
||||
| `leitfaden/07_prozesse_einlesen.md` | stabil | Einsteiger-Ablauf: Beschreibung in `input/` legen, einlesen, freigeben |
|
||||
| `leitfaden/08_prozessbibliothek.md` | stabil | Regeln und Ablauf für die Prozessbibliothek (eigenes Repository) |
|
||||
| `vorlagen/` | Vorlagen | Issue, PR, Übergabe, Repo-`AGENTS.md`, Steckbrief eines Prozesses |
|
||||
|
||||
Die Fachdoku des Konverters (Markdown-Syntax, Elementkatalog, Modellierregeln) liegt beim Skill in
|
||||
`.agents/skills/sn-bpmn/`, die versionierten Prozessmodelle in `prozesse/` (Regeln: `prozesse/README.md`).
|
||||
`.agents/skills/sn-bpmn/`, die versionierten Prozessmodelle im eigenen Repository `Prozessbibliothek`
|
||||
(Regeln: `leitfaden/08_prozessbibliothek.md`).
|
||||
|
||||
Regel: **Lebende** Dokumente werden mit jeder Änderung gepflegt, **Momentaufnahmen** nicht nachträglich geändert
|
||||
(neue Analyse = neue Datei mit Datum).
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 0003 – Prozessmodelle liegen versioniert in `prozesse/<name>/`, die `.md` ist maßgeblich
|
||||
|
||||
Status: vorgeschlagen · Datum: 2026-09-23 · Beteiligte: AG Prozesse
|
||||
Status: ersetzt durch 0004 · Datum: 2026-09-23 · Beteiligte: AG Prozesse
|
||||
|
||||
## Kontext
|
||||
Der Skill `sn-bpmn` legt Entwürfe in `entwuerfe/` ab; der Ordner ist nicht versioniert. Fertige Modelle hatten damit
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
# 0004 – Prozessmodelle liegen im eigenen Repository `Prozessbibliothek`
|
||||
|
||||
Status: vorgeschlagen · Datum: 2026-09-25 · Beteiligte: AG Prozesse · Ersetzt: 0003
|
||||
|
||||
## Kontext
|
||||
Nach ADR 0003 lagen die Prozessmodelle in `prozesse/` innerhalb von `Projektwissen`. Damit waren Fachdaten und
|
||||
Werkzeuge verschränkt (Issue #9): Wer ein Modell ändert, arbeitet im selben Verlauf, in denselben Issues und
|
||||
Pull Requests wie am Konverter, an den Skills und an der Doku. Fachleute, die nur Modelle pflegen, müssen sich
|
||||
durch Werkzeug-Änderungen lesen, und die Abnahme eines Modells geht im Verlauf der Werkzeuge unter.
|
||||
|
||||
## Entscheidung
|
||||
Die Prozessmodelle liegen im eigenen Repository `AG_Prozesse/Prozessbibliothek`, das als Klon neben
|
||||
`Projektwissen` im Workspace liegt (`workspace.toml`, `scripts/setup_workspace.py`).
|
||||
|
||||
- **Aufbau:** ein Ordner je Prozess direkt in der Wurzel, `<name>/` mit genau drei Dateien: Steckbrief
|
||||
`README.md`, Arbeitsschritt-Beschreibung `<name>.md`, daraus erzeugte `<name>.bpmn`. In der Wurzel sonst nur
|
||||
`README.md`, `AGENTS.md`, `CLAUDE.md`, `.gitattributes` und `.gitignore`. Das Repository enthält keinen Code.
|
||||
- **Die `.md` ist maßgeblich** und die `.bpmn` wird mitcommittet, damit sie ohne Python heruntergeladen und in
|
||||
PICTURE importiert werden kann. Der Steckbrief trägt den Status `Entwurf` oder `abgenommen`. Die Abnahme ist ein
|
||||
eigener Pull Request in der Bibliothek. Diese Punkte bleiben aus ADR 0003 unverändert.
|
||||
- **Regeln, Vorlagen und Prüfung bleiben in `Projektwissen`:** Ablageregeln in
|
||||
`docs/leitfaden/08_prozessbibliothek.md`, Steckbrief-Vorlage `docs/vorlagen/prozess_readme.md`, Prüfung mit
|
||||
`scripts/pruefe_prozesse.py` (Byte-Vergleich, Ordnerstruktur, Status) gegen den Klon. So gibt es den Konverter
|
||||
nur an einer Stelle, und Regel und Prüfung ändern sich im selben Pull Request.
|
||||
- **Ist die Bibliothek nicht geklont**, ist das für die Prüfung kein Fehler: geprüft werden dann nur die
|
||||
Skill-Beispiele, und `pruefe_prozesse.py` sowie `pytest` weisen deutlich darauf hin.
|
||||
- Issues zu einzelnen Modellen gehören in die Bibliothek, Issues zu Konverter, Skills und Doku nach
|
||||
`Projektwissen`.
|
||||
|
||||
## Folgen
|
||||
Modelle haben einen eigenen, lesbaren Verlauf, eigene Issues und eigene Pull Requests. Eine Konverteränderung,
|
||||
die die Ausgabe verändert, braucht jetzt **zwei Pull Requests**: den in `Projektwissen` und einen in der
|
||||
Bibliothek mit den neu erzeugten `.bpmn` (`python scripts/pruefe_prozesse.py --erzeugen` schreibt in den Klon).
|
||||
Beide werden gemeinsam gemergt, damit die Bibliothek zum Konverter auf `main` passt. Wer nur `Projektwissen`
|
||||
geklont hat, prüft keine Modelle mit; `scripts/hallo.py` meldet den fehlenden Klon.
|
||||
|
||||
## Verworfene Alternativen
|
||||
Weiter `prozesse/` in `Projektwissen` (die Verschränkung bliebe); Prozessordner unter `prozesse/` im neuen Repo
|
||||
(doppelter Pfad ohne Nutzen); eigenes Prüfskript in der Bibliothek (bräuchte eine Kopie von `md_to_bpmn.py`, die
|
||||
auseinanderlaufen kann); Git-Submodul (für die Zielgruppe zu fehleranfällig, der Workspace klont Repos bereits
|
||||
nebeneinander).
|
||||
@@ -27,4 +27,5 @@ Kurz, mit Grund.
|
||||
|---|---|---|
|
||||
| 0001 | Arbeitsweise aus AG_QGIS/Projektwissen übernehmen, ohne Historie | vorgeschlagen |
|
||||
| 0002 | Branchmodell: `main` plus Arbeitsbranches | vorgeschlagen |
|
||||
| 0003 | Prozessmodelle liegen versioniert in `prozesse/<name>/`, die `.md` ist maßgeblich | vorgeschlagen |
|
||||
| 0003 | Prozessmodelle liegen versioniert in `prozesse/<name>/`, die `.md` ist maßgeblich | ersetzt durch 0004 |
|
||||
| 0004 | Prozessmodelle liegen im eigenen Repository `Prozessbibliothek` | vorgeschlagen |
|
||||
|
||||
@@ -14,7 +14,7 @@ Einrichtung Schritt für Schritt: `04_werkzeuge_einrichten.md`.
|
||||
|
||||
Wer nur modelliert, braucht Git kaum: Beschreibung als `.md` nach `input/` legen, Claude Code im Ordner
|
||||
`AG_Prozesse` starten, „Lies den Ordner input ein“, Entwurf prüfen, umwandeln (`07_prozesse_einlesen.md`). Git und Pull Requests kommen erst ins Spiel, wenn sich am Konverter, an den Regeln oder an der Doku
|
||||
etwas ändern soll — oder wenn ein Modell unter `prozesse/` abgelegt oder geändert wird (Abschnitt 2).
|
||||
etwas ändern soll — oder wenn ein Modell in der Prozessbibliothek abgelegt oder geändert wird (Abschnitt 2).
|
||||
|
||||
## 2. Einen Prozess modellieren
|
||||
|
||||
@@ -26,7 +26,7 @@ flowchart TD
|
||||
C -->|"passt so, wandle um"| D["<name>.bpmn"]
|
||||
D --> E["Import in PICTURE"]
|
||||
E -->|"Darstellungsfehler"| F["Issue anlegen<br/><i>Skill sn-ticket</i>"]
|
||||
E -->|"für alle ablegen"| G["prozesse/<name>/<br/>Status Entwurf, Pull Request"]
|
||||
E -->|"für alle ablegen"| G["Prozessbibliothek/<name>/<br/>Status Entwurf, Pull Request"]
|
||||
G -->|"fachlich bestätigt"| H["Pull Request: Status abgenommen"]
|
||||
```
|
||||
|
||||
@@ -39,8 +39,8 @@ flowchart TD
|
||||
- **Rollen statt Personen.** Verantwortliche immer als Funktion („Sachbearbeitung"), nie mit Namen.
|
||||
- **Darstellungsfehler in PICTURE** (Kanten durch Elemente, überlappende Lanes) sind Fehler des Konverters, nicht
|
||||
deines Entwurfs. Issue anlegen, mit dem Entwurf als Beispiel (bereinigt).
|
||||
- **Ablegen unter `prozesse/`** macht das Modell für alle sichtbar und versioniert (ADR 0003, Regeln in
|
||||
`prozesse/README.md`). Die `.md` ist maßgeblich: Was nur in PICTURE nachgebessert wird, ist bei der nächsten
|
||||
- **Ablegen in der Prozessbibliothek** macht das Modell für alle sichtbar und versioniert (eigenes Repository,
|
||||
ADR 0004, Regeln in `08_prozessbibliothek.md`). Die `.md` ist maßgeblich: Was nur in PICTURE nachgebessert wird, ist bei der nächsten
|
||||
Erzeugung weg. **Abnahme** heißt: ein eigener Pull Request, der im Steckbrief den Status auf `abgenommen` setzt;
|
||||
das Review dieses Pull Requests ist die fachliche Bestätigung.
|
||||
|
||||
@@ -98,7 +98,7 @@ Werkzeugs (Claude Auto-Memory) ist ein Notizzettel; teilbares Wissen gehört in
|
||||
| `.claude/commands/` | Slash-Befehle, z. B. `/hallo` |
|
||||
| `.claude/settings.json` | Berechtigungen – sperrt `git push`, `merge`, `tag` |
|
||||
| `docs/` | auf Abruf, nicht automatisch |
|
||||
| `prozesse/` | auf Abruf; versionierte Modelle mit Steckbrief |
|
||||
| `Prozessbibliothek/` | auf Abruf; eigener Klon mit den versionierten Modellen, eigene `AGENTS.md` |
|
||||
| `input/` | beim Einlesen (Skill `sn-einlesen`); nicht versioniert |
|
||||
| `referenz/`, `entwuerfe/` | nur, wenn du darauf verweist; nicht versioniert |
|
||||
| `CLAUDE.local.md` | ja, lokal, nicht versioniert |
|
||||
@@ -129,7 +129,7 @@ kleine PRs machen.
|
||||
- [ ] Jeder neue oder geänderte Test hat einen deutschen Docstring `"""Prüft, dass …"""`
|
||||
- [ ] Keine Debug-`print`, kein auskommentierter Code
|
||||
- [ ] Änderungen an Markdown-Syntax oder Ablageformat im PR benannt (oder „keine“)
|
||||
- [ ] Bei geänderter BPMN-Ausgabe: PICTURE-Import dokumentiert, `.bpmn` unter `prozesse/` neu erzeugt
|
||||
- [ ] Bei geänderter BPMN-Ausgabe: PICTURE-Import dokumentiert, `.bpmn` der Bibliothek neu erzeugt (eigener PR dort)
|
||||
- [ ] Keine personenbezogenen Daten, keine Originalunterlagen
|
||||
- [ ] PR-Text vollständig nach Vorlage, mit Checkliste und Übergabenotiz; Wissensbasis nachgezogen, falls nötig
|
||||
- [ ] Diff gelesen: nur, was das Issue verlangt
|
||||
|
||||
@@ -71,12 +71,12 @@ Dieselbe Übersicht bekommst du ohne Agent mit `python scripts/einlesen.py`.
|
||||
|
||||
## 4. Entscheiden: Gibt es den Prozess schon?
|
||||
|
||||
Für jede neue Datei sucht der Agent im Bestand – versionierte Prozesse unter `prozesse/` und deine lokalen Entwürfe
|
||||
Für jede neue Datei sucht der Agent im Bestand – versionierte Prozesse der Prozessbibliothek und deine lokalen Entwürfe
|
||||
unter `entwuerfe/` – und sagt, ob und warum ein vorhandener Prozess passt. Gibt es einen, fragt er dich:
|
||||
|
||||
| Wenn du wählst … | … passiert |
|
||||
|---|---|
|
||||
| **Vorhandenen Prozess aktualisieren** | Der vorhandene Entwurf bzw. Prozess wird um die neuen Inhalte ergänzt. Bei Prozessen unter `prozesse/` geht das über ein Issue und einen Pull Request (Abschnitt 7). |
|
||||
| **Vorhandenen Prozess aktualisieren** | Der vorhandene Entwurf bzw. Prozess wird um die neuen Inhalte ergänzt. Bei Prozessen der Prozessbibliothek geht das über ein Issue und einen Pull Request dort (Abschnitt 7). |
|
||||
| **Als neuen Prozess anlegen** | Es entsteht ein eigener Entwurf mit anderem Namen. |
|
||||
| **Datei überspringen** | Nichts passiert. Die Datei erscheint beim nächsten Einlesen wieder. |
|
||||
| **Einlesen beenden** | Der Agent hört auf; die übrigen Dateien bleiben unberührt. |
|
||||
@@ -114,8 +114,9 @@ Zeile unsichtbar, im Editor sichtbar. Bitte nicht von Hand ändern.
|
||||
## 7. Für alle sichtbar ablegen (optional)
|
||||
|
||||
Entwürfe liegen nur auf deinem Rechner. Soll das Modell für die Gruppe verfügbar sein, legt der Agent es auf
|
||||
Wunsch unter `prozesse/<name>/` ab – mit Steckbrief und Status `Entwurf` (Regeln: `prozesse/README.md`). Das ist
|
||||
eine Änderung am gemeinsamen Repository:
|
||||
Wunsch in der Prozessbibliothek ab, einem eigenen Repository, unter `<name>/` mit Steckbrief und Status `Entwurf`
|
||||
(Regeln: [`08_prozessbibliothek.md`](08_prozessbibliothek.md)). Das ist eine Änderung an einem gemeinsamen
|
||||
Repository:
|
||||
|
||||
1. Der Agent bereitet einen Issue-Text vor; **du** legst das Issue in Gitea an und nennst ihm die Nummer.
|
||||
2. Der Agent legt den Ordner auf einem eigenen Branch an und bereitet Commit und Pull-Request-Text vor.
|
||||
@@ -146,4 +147,4 @@ nacheinander und fragt bei jeder einzeln.
|
||||
- Skill `sn-einlesen` (`.agents/skills/sn-einlesen/SKILL.md`) – was der Agent genau tut
|
||||
- Skill `sn-bpmn` und `.agents/skills/sn-bpmn/Anleitung.md` – Entwurf und Syntax
|
||||
- [`03_arbeitsweise.md`](03_arbeitsweise.md) – Arbeitsweise insgesamt
|
||||
- `prozesse/README.md` – versionierte Ablage
|
||||
- [`08_prozessbibliothek.md`](08_prozessbibliothek.md) – versionierte Ablage in der Prozessbibliothek
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
# Die Prozessbibliothek: Ablage der Prozessmodelle
|
||||
|
||||
Regeln und Ablauf für die versionierten Prozessmodelle der AG Prozesse (ADR 0004). Die Modelle liegen im eigenen
|
||||
Repository [`AG_Prozesse/Prozessbibliothek`](https://entwicklung.flurneuordnung-sachsen.de/AG_Prozesse/Prozessbibliothek),
|
||||
die Regeln und die Prüfung hier in `Projektwissen`. Arbeitsentwürfe gehören nicht in die Bibliothek, sondern nach
|
||||
`entwuerfe/` (nicht versioniert).
|
||||
|
||||
## Wo sie liegt
|
||||
|
||||
`python scripts/setup_workspace.py` klont die Bibliothek in den Ordner `Prozessbibliothek/` im Workspace,
|
||||
oder unter `repos_root` aus `workspace.local.toml`, wenn dort ein anderer Ort eingetragen ist.
|
||||
`Projektwissen` versioniert den Ordner nicht mit, denn er ist ein eigener Git-Klon.
|
||||
|
||||
```
|
||||
Prozessbibliothek/
|
||||
README.md kurz: was hier liegt, Verweis auf diesen Leitfaden
|
||||
AGENTS.md, CLAUDE.md Anweisungen für KI-Agenten
|
||||
antrag-pruefen/
|
||||
README.md Steckbrief: Status, Stand, Zuständigkeit, offene Punkte
|
||||
antrag-pruefen.md Arbeitsschritt-Beschreibung – die maßgebliche Quelle
|
||||
antrag-pruefen.bpmn daraus erzeugt, nie von Hand bearbeiten
|
||||
```
|
||||
|
||||
## Regeln
|
||||
|
||||
- **Ordnername:** Kleinbuchstaben, Ziffern, Bindestriche (`antrag-pruefen`). Die beiden Modelldateien heißen wie
|
||||
der Ordner.
|
||||
- **Genau drei Dateien je Prozess.** Keine Originalunterlagen (Word, PDF), keine Bilder. Die bleiben lokal in
|
||||
`referenz/`. In der Wurzel der Bibliothek liegen außer den Prozessordnern nur `README.md`, `AGENTS.md`,
|
||||
`CLAUDE.md`, `.gitattributes` und `.gitignore`.
|
||||
- **Die `.md` ist maßgeblich.** Die `.bpmn` wird nach jeder Änderung neu erzeugt und mitcommittet:
|
||||
`python scripts/pruefe_prozesse.py --erzeugen` (aus `Projektwissen`). Änderungen, die in PICTURE nachgetragen
|
||||
werden, fließen nicht zurück. Wer etwas dauerhaft ändern will, ändert die `.md`.
|
||||
- **Status im Steckbrief:** `Entwurf` (liegt zur gemeinsamen Bearbeitung hier) oder `abgenommen` (fachlich
|
||||
bestätigt). Den Wechsel auf `abgenommen` macht ein eigener Pull Request, dessen Review die Abnahme ist.
|
||||
- **Keine personenbezogenen Daten.** Zuständigkeiten als Funktion, keine Namen, Aktenzeichen oder Verfahrensdaten.
|
||||
- **Issues zu einem Modell** werden in der Bibliothek angelegt, Issues zu Konverter, Skills und Doku in
|
||||
`Projektwissen`. Branches heißen in beiden Repositories `feature/<issue-nr>-<kurzname>`.
|
||||
|
||||
## Prüfen
|
||||
|
||||
Aus dem Workspace-Root (`Projektwissen`):
|
||||
|
||||
```bash
|
||||
python scripts/pruefe_prozesse.py # Struktur, Status, .bpmn aktuell? Prüft auch die Skill-Beispiele
|
||||
python -m pytest -q # enthält dieselbe Prüfung
|
||||
```
|
||||
|
||||
Ist die Bibliothek nicht geklont, prüfen beide nur die Skill-Beispiele und weisen darauf hin.
|
||||
|
||||
## Einen Prozess ablegen
|
||||
|
||||
1. Entwurf mit dem Skill `sn-bpmn` erstellen und fachlich prüfen.
|
||||
2. Issue in der Bibliothek, dann im Klon `Prozessbibliothek/` einen Branch `feature/<issue-nr>-<prozessname>`
|
||||
von `main` anlegen.
|
||||
3. Ordner anlegen, Entwurf als `<name>.md` hineinkopieren, Steckbrief aus `docs/vorlagen/prozess_readme.md`.
|
||||
4. In `Projektwissen`: `python scripts/pruefe_prozesse.py --erzeugen`, dann `python -m pytest -q`.
|
||||
5. Im Klon committen. Pull Request in der Bibliothek: Der Agent bereitet vor, der Mensch pusht.
|
||||
|
||||
## Wenn sich der Konverter ändert
|
||||
|
||||
Ändert ein Pull Request in `Projektwissen` die BPMN-Ausgabe, meldet `pruefe_prozesse.py` die betroffenen Modelle
|
||||
als veraltet. Dann in der Bibliothek einen Branch mit demselben Issue-Bezug anlegen,
|
||||
`python scripts/pruefe_prozesse.py --erzeugen` ausführen, die neuen `.bpmn` dort committen und beide Pull Requests
|
||||
gemeinsam mergen: erst `Projektwissen`, direkt danach die Bibliothek.
|
||||
@@ -1,7 +1,7 @@
|
||||
# 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: 23.09.2026.**
|
||||
in „Erledigt" oder wird gelöscht. **Stand: 25.09.2026.**
|
||||
|
||||
## Aktuelle Phase
|
||||
|
||||
@@ -20,7 +20,8 @@ Skills sind übernommen, alles QGIS- und Plugin-Spezifische ist entfernt. Kern i
|
||||
1. **Repo `Projektwissen` in Gitea öffentlich schalten** (Repo → Einstellungen → Sichtbarkeit). Die Organisation ist
|
||||
öffentlich, das Repo nicht; ohne das liest `scripts/gitea.py` keine Tickets, und die Skills `sn-ticket` und
|
||||
`sn-aufgabe-bearbeiten` laufen ins Leere.
|
||||
2. **ADR 0003 (Ablage in `prozesse/`) vom Team annehmen lassen**, dann den ersten echten Prozess ablegen.
|
||||
2. **ADR 0004 (Prozessbibliothek als eigenes Repository) vom Team annehmen lassen**, dann den ersten echten
|
||||
Prozess dort ablegen.
|
||||
3. **Glossar um BPMN-/PICTURE-Begriffe ergänzen** und die Flurbereinigungsbegriffe auf das prüfen, was für
|
||||
Prozesse gebraucht wird.
|
||||
4. **Leitfäden vom Team gegenlesen lassen.** `docs/leitfaden/03–05` sind für die Prozessarbeit neu gefasst;
|
||||
@@ -30,6 +31,10 @@ Skills sind übernommen, alles QGIS- und Plugin-Spezifische ist entfernt. Kern i
|
||||
|
||||
## Erledigt
|
||||
|
||||
- 25.09.2026 **Prozessbibliothek als eigenes Repository** (#9, ADR 0004): `prozesse/` ist aus Projektwissen
|
||||
entfernt, die Modelle liegen im Klon `Prozessbibliothek/` (`workspace.toml`). `pruefe_prozesse.py` und
|
||||
`einlesen.py` suchen dort; Regeln in `docs/leitfaden/08_prozessbibliothek.md`.
|
||||
|
||||
- 23.09.2026 **Erster echter Einlese-Durchgang** (`input/Gewannenvermessung.md` → `entwuerfe/gewannenfestlegung`)
|
||||
und daraus das **Referenzmodell** `beispiele/referenz_gewannenfestlegung` für Konvertertests (#7), mit
|
||||
Strukturtests. Dabei gefunden: Kante durch Gateway S13 (#8, als `xfail` erfasst).
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
<Was soll am Ende möglich sein? Ein Satz aus Nutzersicht.>
|
||||
|
||||
## Betroffen
|
||||
Bereich: Prozessmodell (`prozesse/<name>/`) | Konverter `md_to_bpmn.py` | Skill | Skripte | Doku
|
||||
Bereich: Konverter `md_to_bpmn.py` | Skill | Skripte | Doku
|
||||
Dateien (falls bekannt):
|
||||
Ändert Markdown-Syntax oder Ablageformat unter `prozesse/`? nein | ja: <welche>
|
||||
Ändert Markdown-Syntax oder Ablageformat der Prozessbibliothek? nein | ja: <welche>
|
||||
|
||||
## Fachlicher Hintergrund
|
||||
<Begriffe, Regeln, Beispiel (keine echten Verfahrensdaten, keine Namen). Verweise auf Glossar.>
|
||||
|
||||
@@ -4,12 +4,13 @@
|
||||
## Wie geprüft
|
||||
- `python -m pytest -q`: <Ergebniszeile>
|
||||
- `python scripts/pruefe_umlaute.py`: <Ergebniszeile>
|
||||
- Bei Modellen unter `prozesse/`: `.bpmn` mit `python scripts/pruefe_prozesse.py --erzeugen` erzeugt
|
||||
- Bei Modellen der Prozessbibliothek: `.bpmn` mit `python scripts/pruefe_prozesse.py --erzeugen` erzeugt
|
||||
- PICTURE-Import: <PICTURE-Version, Datei, Ergebnis> | nicht nötig, weil …
|
||||
|
||||
## Änderungen an Syntax und Ablageformat
|
||||
keine | <welche, mit Verweis auf Issue: Markdown-Syntax (`Anleitung.md`), Ablage unter `prozesse/`
|
||||
(`prozesse/README.md`, ADR 0003); welche Modelle unter `prozesse/` angepasst oder neu erzeugt wurden>
|
||||
keine | <welche, mit Verweis auf Issue: Markdown-Syntax (`Anleitung.md`), Ablage in der Prozessbibliothek
|
||||
(`docs/leitfaden/08_prozessbibliothek.md`, ADR 0004); welche Modelle der Bibliothek angepasst oder neu erzeugt
|
||||
wurden, mit Verweis auf den zugehörigen PR dort>
|
||||
|
||||
## Übergabenotiz
|
||||
<nach docs/vorlagen/uebergabe.md>
|
||||
|
||||
@@ -21,10 +21,11 @@ Kurz, konkret, mit Datum und Quelle. Neue Einträge oben in der passenden Rubrik
|
||||
sondern nur auf `<script`/`</script` geprüft. (23.09.2026)
|
||||
|
||||
- **Jede Änderung an der Ausgabe von `md_to_bpmn.py` macht die abgelegten `.bpmn` rot.** Der Test in
|
||||
`tests/test_pruefe_prozesse.py` vergleicht jede `.bpmn` unter `prozesse/` und in `beispiele/` byte-genau mit der
|
||||
Umwandlung ihrer `.md`. Nach einer Konverteränderung `python scripts/pruefe_prozesse.py --erzeugen` ausführen und
|
||||
die neu erzeugten Dateien mit in den Pull Request nehmen. Das setzt voraus, dass der Konverter deterministisch
|
||||
bleibt: keine Zufalls-IDs, keine Zeitstempel, keine Reihenfolge aus `set`-Iteration. (ADR 0003, 23.09.2026)
|
||||
`tests/test_pruefe_prozesse.py` vergleicht jede `.bpmn` der Prozessbibliothek und in `beispiele/` byte-genau mit
|
||||
der Umwandlung ihrer `.md`. Nach einer Konverteränderung `python scripts/pruefe_prozesse.py --erzeugen` ausführen;
|
||||
die neuen `.bpmn` der Beispiele gehören in den Pull Request, die der Bibliothek in einen eigenen Pull Request dort
|
||||
(ADR 0004). Das setzt voraus, dass der Konverter deterministisch
|
||||
bleibt: keine Zufalls-IDs, keine Zeitstempel, keine Reihenfolge aus `set`-Iteration. (ADR 0003, 23.09.2026; ADR 0004, 25.09.2026)
|
||||
- **Zusätzliche Zeilen in einer Arbeitsschritt-`.md` nur ganz oben oder mit `#`.** `parse_markdown()` bricht
|
||||
nach dem ersten Schritt bei jeder unbekannten Zeile ab; davor überspringt es Zeilen, die nicht wie
|
||||
`Schlüssel: Wert` aussehen. Deshalb steht der Einlese-Vermerk (`<!-- eingelesen: … -->`) als erste Zeile.
|
||||
|
||||
Reference in New Issue
Block a user