Status „Import“ für Modelle aus PICTURE-Exporten (#31)
pruefe_prozesse.py akzeptiert im Steckbrief neben Entwurf und abgenommen den Status Import: maschinell aus einem PICTURE-Export übernommen, fachlich nicht geprüft. Leitfaden 08 und die Steckbrief-Vorlage nennen die drei Werte. Neuer Test für Import; der Test für unbekannte Werte prüft zusätzlich, dass Import unter den erlaubten Werten genannt wird. Änderung am Ablageformat der Prozessbibliothek. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -31,8 +31,11 @@ Prozessbibliothek/
|
||||
- **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.
|
||||
- **Status im Steckbrief:** `Entwurf` (liegt zur gemeinsamen Bearbeitung hier), `abgenommen` (fachlich
|
||||
bestätigt) oder `Import` (maschinell aus einem PICTURE-Export übernommen, fachlich nicht geprüft; Ordnername
|
||||
`import-<name>`). Den Wechsel auf `abgenommen` macht ein eigener Pull Request, dessen Review die Abnahme ist.
|
||||
Ein `Import`-Modell wird zum `Entwurf`, sobald jemand es fachlich überarbeitet – ebenfalls per Pull Request.
|
||||
Wie zurückgewandelt wird und was dabei verloren geht: `docs/wissen/picture_import.md`.
|
||||
- **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>`.
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# <Name des Prozesses>
|
||||
|
||||
<!-- Status: Entwurf | abgenommen | Import (aus PICTURE-Export, siehe docs/leitfaden/08_prozessbibliothek.md) -->
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Status | Entwurf |
|
||||
|
||||
@@ -12,7 +12,7 @@ workspace.local.toml. Jeder Prozess liegt dort in einem eigenen Ordner <name>/ m
|
||||
Geprüft wird:
|
||||
* Ordnername in Kleinbuchstaben, Ziffern und Bindestrichen,
|
||||
* genau diese drei Dateien, keine weiteren (Originalunterlagen gehören nach referenz/),
|
||||
* README.md nennt einen gültigen Status (Entwurf | abgenommen),
|
||||
* README.md nennt einen gültigen Status (Entwurf | abgenommen | Import),
|
||||
* <name>.md lässt sich umwandeln, und <name>.bpmn ist byte-gleich mit dem Ergebnis,
|
||||
* in der Wurzel der Bibliothek liegen außer den Prozessordnern nur README.md, AGENTS.md, CLAUDE.md,
|
||||
.gitattributes und .gitignore.
|
||||
@@ -46,7 +46,8 @@ sys.path.insert(0, str(SKILL))
|
||||
import md_to_bpmn # noqa: E402 (liegt im Skill-Ordner, nicht als Paket installiert)
|
||||
|
||||
ORDNERNAME = re.compile(r"^[a-z0-9]+(?:-[a-z0-9]+)*$")
|
||||
STATUSWERTE = ("Entwurf", "abgenommen")
|
||||
# Import: maschinell aus einem PICTURE-Export übernommen, fachlich nicht geprüft (#31)
|
||||
STATUSWERTE = ("Entwurf", "abgenommen", "Import")
|
||||
# Dateien, die in der Wurzel der Bibliothek neben den Prozessordnern liegen dürfen
|
||||
REPO_DATEIEN = {"README.md", "AGENTS.md", "CLAUDE.md", ".gitattributes", ".gitignore"}
|
||||
STATUSZEILE = re.compile(r"^\|\s*Status\s*\|\s*(?P<wert>[^|]*?)\s*\|", re.MULTILINE)
|
||||
|
||||
@@ -89,10 +89,16 @@ def test_status_abgenommen_ist_gueltig(tmp_path):
|
||||
assert pp.pruefe_ordner(lege_prozess_an(tmp_path, status="abgenommen")) == []
|
||||
|
||||
|
||||
def test_status_import_ist_gueltig(tmp_path):
|
||||
"""Prüft, dass der Status 'Import' für Modelle aus PICTURE-Exporten akzeptiert wird (#31)."""
|
||||
assert pp.pruefe_ordner(lege_prozess_an(tmp_path, status="Import")) == []
|
||||
|
||||
|
||||
def test_unbekannter_status_wird_gemeldet(tmp_path):
|
||||
"""Prüft, dass ein Status außerhalb von Entwurf/abgenommen gemeldet wird."""
|
||||
"""Prüft, dass ein Status außerhalb von Entwurf/abgenommen/Import gemeldet und die erlaubten Werte genannt
|
||||
werden."""
|
||||
befunde = pp.pruefe_ordner(lege_prozess_an(tmp_path, status="fertig"))
|
||||
assert any("Status 'fertig' unbekannt" in b for b in befunde)
|
||||
assert any("Status 'fertig' unbekannt" in b and "Import" in b for b in befunde)
|
||||
|
||||
|
||||
def test_fehlende_statuszeile_wird_gemeldet(tmp_path):
|
||||
|
||||
Reference in New Issue
Block a user