Commit Graph
18 Commits
Author SHA1 Message Date
Daniel 45baa3d4a2 Merge pull request 'Feature/15 xor marker' (#18) from feature/15-xor-marker into main
Reviewed-on: #18
2026-09-25 10:43:34 +00:00
DanielandClaude Opus 5.5 4025f314d1 Fallstrick: Vorschau und PICTURE unterscheiden sich beim XOR-X (#15)
PICTURE 2026.4.1 zeichnet das X auch ohne isMarkerVisible, die Vorschau
(bpmn-js) nur mit. Hinweis, erst in PICTURE gegenzuprüfen, bevor der
Konverter wegen der Vorschau geändert wird.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 12:41:59 +02:00
DanielandClaude Opus 5.5 25231d94e5 XOR-Gateways mit sichtbarem X ausgeben (#15)
- build_bpmn(): Die BPMNShape jedes exklusiven Gateways bekommt
  isMarkerVisible="true". BPMN lässt das X optional; ohne das Attribut
  zeichnet bpmn-js eine leere Raute. OR-, AND- und ereignisbasierte
  Gateways haben ihr Symbol immer und bleiben unverändert.
- Alle Beispiele neu erzeugt: je XOR-Gateway nur das Attribut ergänzt
  (beispiel_lanes 1, beispiel_prozess 2, Referenzmodell 14), sonst
  byte-gleich.
- Neuer Test test_nur_xor_gateways_zeigen_ihr_x.
- Tests: python -m pytest -q -> 93 bestanden.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 12:35:15 +02:00
Daniel 2de2e9ffda Merge pull request 'Kanten zwischen Gateways umgehen die Ziel-Raute (#8)' (#17) from bugfix/8-kante-durch-gateway into main
Reviewed-on: #17
2026-09-25 10:30:18 +00:00
DanielandClaude Opus 5.5 30b47a0fd1 Kanten zwischen Gateways umgehen die Ziel-Raute (#8)
- orthogonal_points(): Liegt bei Gateway -> Gateway der Stub des Starts
  schon jenseits des Ziel-Anschlusspunkts (z. B. Südpunkt unten, Ziel
  höher mit Nordpunkt), führt die Kante seitlich an der Ziel-Raute vorbei.
  Gleiches für den waagrechten Spiegelfall (Ost -> West).
- _ausweichachse(): Die Ausweichachse liegt im freien Gang direkt vor der
  Ziel-Spalte (AUSWEICHABSTAND 85), nicht in der Mitte zwischen Quelle und
  Ziel – dort stand im Referenzmodell die Aufgabe S43.
- Referenzmodell neu erzeugt: fünf Kanten korrigiert (vorher liefen alle
  fünf durch ein Gateway, gemeldet war nur S12->S13), dabei verschwindet
  auch die Kreuzung Flow_13/S40. Syntaxbeispiele unverändert.
- xfail für referenz_gewannenfestlegung entfernt; drei neue Tests in
  test_md_to_bpmn.py.
- Fallstricke: Ausweichachse; Strukturtests melden nur die erste Kreuzung.
- Tests: python -m pytest -q -> 92 bestanden.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 11:09:43 +02:00
Daniel 6050ce3296 Merge pull request 'Prozessbibliothek als eigenes Repository auslagern (#9)' (#11) from feature/9-prozessbibliothek into main
Reviewed-on: #11
2026-09-25 08:51:12 +00:00
DanielandClaude Opus 5.5 31131cc5c3 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>
2026-09-25 09:40:52 +02:00
Daniel 23a39fd929 Merge pull request 'Referenzmodell Gewannenfestlegung für Konvertertests (#7)' (#10) from feature/7-referenzmodell-gewannenfestlegung into main
Reviewed-on: #10
2026-09-25 05:06:34 +00:00
DanielandClaude Opus 5.5 e62bc10b7b Referenzmodell Gewannenfestlegung für Konvertertests (#7)
- beispiele/referenz_gewannenfestlegung.md/.bpmn: aus dem ersten echten
  Einlese-Durchgang (input/Gewannenvermessung.md), als „Test“ markiert,
  fachlich nicht abgenommen. 4 Lanes, externer Pool, 14 Gateways,
  verschachtelte Varianten; Byte-Vergleich über pruefe_prozesse.py.
- tests/test_referenzmodelle.py: je Referenzmodell keine Lane „Nicht
  zugeordnet“, höchstens vier Kanten je Gateway, keine Kante durch eine
  Raute (Geometrie aus test_md_to_bpmn.py übernommen).
- Gefunden: Kante S12→S13 läuft durch die Raute von S13 – als
  xfail(strict=True) mit Verweis auf #8. AGENTS.md regelt, dass xfail nur
  für so erfasste Konverterfehler an Referenzmodellen zulässig ist.
- Anleitung, Fallstricke (zwei Einträge), STATUS.
- Tests: python -m pytest -q -> 82 bestanden, 1 xfail (#8).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 15:18:07 +02:00
Daniel b64c38f71b Merge pull request 'Eingangsordner input/ und Skill sn-einlesen (#5)' (#6) from feature/5-einlesen into main
Reviewed-on: #6
2026-09-23 12:45:20 +00:00
DanielandClaude Opus 5.5 27589749ff Eingangsordner input/ und Skill sn-einlesen (#5)
- input/ ist lokal und nicht versioniert (.gitignore); scripts/einlesen.py
  legt ihn bei Bedarf an.
- scripts/einlesen.py ordnet jede Datei ein: abgelehnt (kein .md, nicht
  UTF-8, leer, Unterordner), neu, geändert, eingelesen. Für neue und
  geänderte Dateien: Prozessname, Ordnernamen-Vorschlag, ob schon eine
  Arbeitsschritt-.md, und ähnliche Prozesse aus prozesse/ und entwuerfe/.
  „vermerk“ schreibt nach Erfolg eine erste Zeile
  <!-- eingelesen: <Zeitstempel> | neu|aktualisiert | <Ziel> | inhalt: <sha> -->;
  die Prüfsumme erkennt spätere Änderungen. Zeilenenden bleiben erhalten.
- Skill sn-einlesen: Übersicht, Bestandsvergleich, Entscheidung des
  Nutzers, neue Prozesse durch sn-bpmn, Vermerk nur bei Erfolg.
- docs/leitfaden/07_prozesse_einlesen.md: Ablauf für neue Nutzer.
- AGENTS.md, README, Leitfaden 03, Skill sn-bpmn, Fallstricke, STATUS.
- Tests: python -m pytest -q -> 79 bestanden (18 neu in
  tests/test_einlesen.py).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 14:09:48 +02:00
Daniel 47b59e2d83 Merge pull request 'Regeln für PR- und Issue-Texte an AG_QGIS angleichen (#3)' (#4) from bugfix/3-regeln-pr-issue-angleichen into main
Reviewed-on: #4
2026-09-23 11:55:44 +00:00
DanielandClaude Opus 5.5 fd58d75502 Regeln für PR- und Issue-Texte an AG_QGIS angleichen (#3)
Beim Übernehmen aus AG_QGIS/Projektwissen (main @ a0bb40a) waren Regeln
verloren gegangen oder eingeengt worden:

- PR-Vorlage: Abschnitt „Änderungen an Syntax und Ablageformat“ (dort
  „Änderungen an Verträgen“), Checklistenpunkt „keine Debug-print“.
- Issue-Vorlage: Frage nach Syntax/Ablageformat, Testpflicht nicht nur
  für den Konverter.
- AGENTS.md: Testpflicht wieder für jede neue Funktionalität; Syntax und
  Ablageformat als Verträge; kein Arbeitsbranch ohne Issue; PR-Text
  vollständig mit Checkliste. Skill sn-aufgabe-bearbeiten und Checkliste
  in Leitfaden 03 entsprechend.
- ADR 0001 und STATUS: Quell-Commit war a0bb40a, nicht decd2a0.

gitea.py prüft vor jeder Abfrage, ob die Repos ohne Anmeldung lesbar
sind, und bricht sonst mit klarer Meldung ab – bisher meldete die
Sammelsuche bei einem privaten Repo „Keine passenden Tickets“. Die
Ausgabe läuft jetzt über UTF-8 (cp1252-Konsolen stürzten bei „→“ ab).

Tests: python -m pytest -q -> 61 bestanden (6 neu in tests/test_gitea.py).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 13:50:24 +02:00
Daniel 87cb9b76ac Merge pull request 'BPMN-Vorschau im Browser, offline, auf Basis von bpmn-js' (#2) from feature/bpmn-vorschau into main
Reviewed-on: #2
2026-09-23 11:34:06 +00:00
DanielandClaude Opus 5.5 19947a845f BPMN-Vorschau im Browser, offline, auf Basis von bpmn-js
- 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>
2026-09-23 13:32:14 +02:00
Daniel f582effe16 Merge pull request 'Prozessmodelle versioniert unter prozesse/<name>/ ablegen' (#1) from feature/prozessablage into main
Reviewed-on: #1
2026-09-23 11:22:38 +00:00
DanielandClaude Opus 5.5 55c024dbc9 Prozessmodelle versioniert unter prozesse/<name>/ ablegen
Jedes Modell bekommt einen eigenen Ordner mit Steckbrief (README.md,
Status Entwurf|abgenommen), der maßgeblichen Arbeitsschritt-.md und der
daraus erzeugten .bpmn (ADR 0003).

- scripts/pruefe_prozesse.py prüft Ordnername, Dateien, Status und ob
  jede .bpmn byte-gleich mit der Umwandlung ihrer .md ist; --erzeugen
  erzeugt alle .bpmn neu. md_to_bpmn.py arbeitet deterministisch.
- tests/test_pruefe_prozesse.py: Bestandsprüfung plus 11 Fälle für die
  Prüflogik; pytest.ini sammelt .agents/skills und tests.
- Die in Anleitung.md genannten, nie committeten Beispiele liegen jetzt
  unter .agents/skills/sn-bpmn/beispiele/ und werden mitgeprüft.
- Skill sn-bpmn: Entwürfe nach entwuerfe/, neuer Schritt 5 „Ablegen“.
- Vorlage docs/vorlagen/prozess_readme.md, Doku und Fallstricke ergänzt.
- Tests: python -m pytest -q -> 44 bestanden.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 13:02:48 +02:00
DanielandClaude Opus 5.5 012509b6d1 Projektwissen der AG Prozesse aus AG_QGIS/Projektwissen abgeleitet
Übernommen ohne Historie aus AG_QGIS/Projektwissen (main @ decd2a0),
Skill sn-bpmn vom Branch BPMN-Skill @ 6efcac4 (ADR 0001).

- Skripte hallo.py, gitea.py, setup_workspace.py auf die Organisation
  AG_Prozesse umgestellt; das Workspace-Repo zählt über [workspace] repo
  als Ticket-Repo, auch ohne weitere [[repos]].
- pruefe_umlaute.py prüft jetzt die .py-Dateien des Workspace selbst.
- Branchmodell main plus Arbeitsbranches (ADR 0002).
- AGENTS.md, README, Leitfäden, Skills, Vorlagen, Fallstricke und Glossar
  auf die Prozessmodellierung zugeschnitten; QGIS- und Plugin-Spezifisches
  entfernt.
- Tests: python -m pytest -q .agents/skills -> 32 bestanden.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 12:34:37 +02:00