- 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>
34 lines
2.3 KiB
Markdown
34 lines
2.3 KiB
Markdown
# 0003 – Prozessmodelle liegen versioniert in `prozesse/<name>/`, die `.md` ist maßgeblich
|
||
|
||
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
|
||
keinen gemeinsamen Ort: Wer ein Modell ändern wollte, musste die letzte Fassung bei der Kollegin erfragen, und niemand
|
||
konnte nachvollziehen, welcher Stand abgenommen war. PICTURE ist Zielsystem des Imports, aber kein Ort für Review
|
||
und Versionsgeschichte.
|
||
|
||
## Entscheidung
|
||
Jedes Prozessmodell liegt in einem eigenen Ordner `prozesse/<name>/` mit genau drei Dateien: Steckbrief `README.md`,
|
||
Arbeitsschritt-Beschreibung `<name>.md` und die daraus erzeugte `<name>.bpmn`.
|
||
|
||
- Die **`.md` ist die maßgebliche Quelle**. Die `.bpmn` wird mit `python scripts/pruefe_prozesse.py --erzeugen`
|
||
erzeugt und mitcommittet, damit sie ohne Python aus Gitea heruntergeladen und in PICTURE importiert werden kann.
|
||
- Ein **Test prüft**, dass jede `.bpmn` byte-gleich mit der Umwandlung ihrer `.md` ist. Das geht, weil
|
||
`md_to_bpmn.py` deterministisch arbeitet (keine Zufalls-IDs, keine Zeitstempel).
|
||
- Der **Steckbrief** trägt den Status `Entwurf` oder `abgenommen`. Entwürfe dürfen auf `main`, damit mehrere
|
||
Personen daran arbeiten können; die Abnahme ist ein eigener Pull Request, der nur den Status ändert.
|
||
- Im Ordner liegen **keine weiteren Dateien**, insbesondere keine Originalunterlagen.
|
||
|
||
## Folgen
|
||
Modelle sind reviewbar (Diff der `.md` statt XML), versioniert und mit Status versehen. Eine Änderung am Konverter,
|
||
die die Ausgabe verändert, macht alle abgelegten `.bpmn` rot, bis sie neu erzeugt sind — gewollt: Der Pull Request
|
||
zeigt dann, welche Modelle sich im Bild ändern, und sie werden gemeinsam neu erzeugt. Nacharbeiten, die nur in
|
||
PICTURE gemacht werden (Layout, Zusatzfelder), gehen bei der nächsten Erzeugung verloren und gehören deshalb in die
|
||
`.md` oder in den Steckbrief.
|
||
|
||
## Verworfene Alternativen
|
||
Nur die `.md` versionieren (Fachleute ohne Python kämen nicht an die `.bpmn`); nur die `.bpmn` versionieren (XML ist
|
||
nicht reviewbar, die Quelle ginge verloren); Status in Kopfzeilen der `.md` (der Parser würde Zeilen wie
|
||
„Verantwortliche Stelle: …“ als Schritt deuten); Ablage nur in PICTURE (keine Versionsgeschichte, kein Review).
|