Kanten an Aufgaben rechtwinklig ansetzen (#23) #25

Merged
Daniel merged 1 commits from bugfix/23-rechtwinklige-anschluesse into main 2026-09-25 16:42:53 +00:00
Owner

Was

Kanten zwischen einer Aufgabe und einem Gateway setzen jetzt auch an der Aufgabe rechtwinklig an. Bisher liefen sie
dort parallel zur Aufgabenkante, wenn die Anschlusspunkte auf verschiedenen Achsen lagen. Die Aufgabe bekommt dafür
ein kurzes gerades Stück senkrecht zu ihrer Seite.
Closes #23

Abnahmekriterien (vor der Umsetzung abgestimmt, das Issue hatte keine):

  • An jedem Rechteck-Element setzt jede Kante rechtwinklig zur Seite ihres Anschlusspunkts an (Strukturtest über
    alle Beispiele, vorher in 17 Fällen rot)
  • Keine neue Kante durch ein Element in den Beispielen, alle bisherigen Strukturtests grün
  • PICTURE-Import des Referenzmodells

Wie geprüft

  • python -m pytest -q: 124 passed, 1 skipped. Das „skipped“ ist weiterhin die leere Parameterliste der
    bekannten Kreuzungen
  • python scripts/pruefe_umlaute.py: GRÜN: 0 Fund/e in 12 Datei(en).
  • python scripts/pruefe_prozesse.py --erzeugen: alle drei Beispiele neu erzeugt, 17 Kantenenden geändert
    (beispiel_lanes 2, beispiel_prozess 2, Referenzmodell 13). Prozessbibliothek: noch keine Modelle
  • Belastungstest aus #12 (126 Fälle mit zusätzlicher Rückwärtsverbindung), main gegen neu:
    • schräge Anschlüsse an Aufgaben: 378 → 0
    • Kanten durch Elemente: 22 → 24. Alle Veränderungen liegen in Fällen mit Querverbindung zwischen
      Geschwisterzweigen, also der Art von #22: in 4 Fällen eine Kreuzung mehr, in 2 Fällen eine weniger.
      Ursache und Fälle stehen im Kommentar-Entwurf zu #22. In den echten Beispielen gibt es keine Kreuzung
  • Vorschau (geänderte Beispiele nach AGENTS.md): Die Kanten gehen an der Aufgabe zuerst 20 gerade hinaus bzw.
    kommen 20 gerade herein und biegen erst dann ab. Beispiel beispiel_lanes, Flow_2: aus S2 erst nach rechts,
    dann hinunter zum Gateway S3
  • PICTURE-Import: PICTURE 2026.4.1, referenz_gewannenfestlegung.bpmn: Import ohne Fehler, die Kanten setzen an
    den Aufgaben rechtwinklig an

Änderungen an Syntax und Ablageformat

keine. Die Ausgabe ändert sich bei Kanten zwischen Aufgabe und Gateway mit Anschlüssen auf verschiedenen Achsen.
Modelle der Prozessbibliothek: keine vorhanden.

Übergabenotiz

Aufgabe: #23: Kanten setzen an Arbeitsschritten rechtwinklig zur Kante an, auf der der Anschlusspunkt liegt.
Stand: fertig
Geändert:

  • .agents/skills/sn-bpmn/md_to_bpmn.py:
    • orthogonal_points(): gemischter Fall (nur ein Ende ist Raute) mit Stub auch an der Aufgabe, dann Führung wie
      zwischen zwei Rauten. Die Sonderzweige entfallen
    • neue Konstante RECHTECK_STUB = 20
  • tests/test_referenzmodelle.py: schraege_anschluesse() und Strukturtest
    test_kanten_setzen_an_aufgaben_rechtwinklig_an
  • .agents/skills/sn-bpmn/test_md_to_bpmn.py: Einzeltest für vier Achsen-Kombinationen
  • beispiele/*.bpmn: neu erzeugt
  • docs/wissen/fallstricke.md, docs/status/STATUS.md

Nachweis: pytest: 124 passed, 1 skipped. PICTURE-Import: PICTURE 2026.4.1, Referenzmodell, in Ordnung
Entscheidungen/Annahmen:

  • Ereignisse (Kreise) sind im neuen Strukturtest nicht enthalten. Bei mehreren Kanten an derselben Seite liegen ihre
    Anschlüsse schräg auf dem Kreis, dort ist „rechtwinklig zur Seite“ nicht eindeutig
  • Die vier zusätzlichen Kreuzungen im Belastungstest sind bewusst nicht in #23 behoben, sondern #22 zugeordnet.
    Beide Reihenfolgen, erst senkrecht oder erst waagrecht, sind ohne Hinderniskenntnis gleich gut, und genau diese
    Kenntnis ist das Thema von #22

Offen / nächste Schritte:

  1. Kommentar zu #22 abschicken: entwuerfe/20260925-183922-kommentar-Projektwissen-22.md
  2. Weiter mit Konverter: Vorwärtskanten laufen durch Elemente, wenn eine Querverbindung das Layout verschiebt (#22)

Wissensbasis: fallstricke.md: neuer Eintrag „Auch das Aufgaben-Ende einer Gateway-Kante braucht ein gerades
Stück“. STATUS.md: Erledigt
Kontext für die nächste Sitzung: md_to_bpmn.py orthogonal_points(), Kommentar in #22,
tests/test_referenzmodelle.py (kreuzungen())

Checkliste

  • Nur Änderungen zum Issue
  • Keine Debug-print, kein auskommentierter Code
  • Keine personenbezogenen Daten, keine internen Originalunterlagen
  • Doku des Skills nachgezogen: nicht betroffen (Syntax unverändert)
  • Wissensbasis nachgezogen (fallstricke.md, STATUS.md)

🤖 Generated with Claude Code

## Was Kanten zwischen einer Aufgabe und einem Gateway setzen jetzt auch an der Aufgabe rechtwinklig an. Bisher liefen sie dort parallel zur Aufgabenkante, wenn die Anschlusspunkte auf verschiedenen Achsen lagen. Die Aufgabe bekommt dafür ein kurzes gerades Stück senkrecht zu ihrer Seite. Closes #23 Abnahmekriterien (vor der Umsetzung abgestimmt, das Issue hatte keine): - [x] An jedem Rechteck-Element setzt jede Kante rechtwinklig zur Seite ihres Anschlusspunkts an (Strukturtest über alle Beispiele, vorher in 17 Fällen rot) - [x] Keine neue Kante durch ein Element in den Beispielen, alle bisherigen Strukturtests grün - [x] PICTURE-Import des Referenzmodells ## Wie geprüft - `python -m pytest -q`: `124 passed, 1 skipped`. Das „skipped“ ist weiterhin die leere Parameterliste der bekannten Kreuzungen - `python scripts/pruefe_umlaute.py`: `GRÜN: 0 Fund/e in 12 Datei(en).` - `python scripts/pruefe_prozesse.py --erzeugen`: alle drei Beispiele neu erzeugt, 17 Kantenenden geändert (`beispiel_lanes` 2, `beispiel_prozess` 2, Referenzmodell 13). Prozessbibliothek: noch keine Modelle - Belastungstest aus #12 (126 Fälle mit zusätzlicher Rückwärtsverbindung), `main` gegen neu: - schräge Anschlüsse an Aufgaben: 378 → 0 - Kanten durch Elemente: 22 → 24. Alle Veränderungen liegen in Fällen mit Querverbindung zwischen Geschwisterzweigen, also der Art von #22: in 4 Fällen eine Kreuzung mehr, in 2 Fällen eine weniger. Ursache und Fälle stehen im Kommentar-Entwurf zu #22. In den echten Beispielen gibt es keine Kreuzung - Vorschau (geänderte Beispiele nach `AGENTS.md`): Die Kanten gehen an der Aufgabe zuerst 20 gerade hinaus bzw. kommen 20 gerade herein und biegen erst dann ab. Beispiel `beispiel_lanes`, `Flow_2`: aus S2 erst nach rechts, dann hinunter zum Gateway S3 - PICTURE-Import: PICTURE 2026.4.1, `referenz_gewannenfestlegung.bpmn`: Import ohne Fehler, die Kanten setzen an den Aufgaben rechtwinklig an ## Änderungen an Syntax und Ablageformat keine. Die Ausgabe ändert sich bei Kanten zwischen Aufgabe und Gateway mit Anschlüssen auf verschiedenen Achsen. Modelle der Prozessbibliothek: keine vorhanden. ## Übergabenotiz **Aufgabe:** #23: Kanten setzen an Arbeitsschritten rechtwinklig zur Kante an, auf der der Anschlusspunkt liegt. **Stand:** fertig **Geändert:** - `.agents/skills/sn-bpmn/md_to_bpmn.py`: - `orthogonal_points()`: gemischter Fall (nur ein Ende ist Raute) mit Stub auch an der Aufgabe, dann Führung wie zwischen zwei Rauten. Die Sonderzweige entfallen - neue Konstante `RECHTECK_STUB = 20` - `tests/test_referenzmodelle.py`: `schraege_anschluesse()` und Strukturtest `test_kanten_setzen_an_aufgaben_rechtwinklig_an` - `.agents/skills/sn-bpmn/test_md_to_bpmn.py`: Einzeltest für vier Achsen-Kombinationen - `beispiele/*.bpmn`: neu erzeugt - `docs/wissen/fallstricke.md`, `docs/status/STATUS.md` **Nachweis:** `pytest`: `124 passed, 1 skipped`. PICTURE-Import: PICTURE 2026.4.1, Referenzmodell, in Ordnung **Entscheidungen/Annahmen:** - Ereignisse (Kreise) sind im neuen Strukturtest nicht enthalten. Bei mehreren Kanten an derselben Seite liegen ihre Anschlüsse schräg auf dem Kreis, dort ist „rechtwinklig zur Seite“ nicht eindeutig - Die vier zusätzlichen Kreuzungen im Belastungstest sind bewusst nicht in #23 behoben, sondern #22 zugeordnet. Beide Reihenfolgen, erst senkrecht oder erst waagrecht, sind ohne Hinderniskenntnis gleich gut, und genau diese Kenntnis ist das Thema von #22 **Offen / nächste Schritte:** 1. Kommentar zu #22 abschicken: `entwuerfe/20260925-183922-kommentar-Projektwissen-22.md` 2. Weiter mit #22 **Wissensbasis:** `fallstricke.md`: neuer Eintrag „Auch das Aufgaben-Ende einer Gateway-Kante braucht ein gerades Stück“. `STATUS.md`: Erledigt **Kontext für die nächste Sitzung:** `md_to_bpmn.py` `orthogonal_points()`, Kommentar in #22, `tests/test_referenzmodelle.py` (`kreuzungen()`) ## Checkliste - [x] Nur Änderungen zum Issue - [x] Keine Debug-`print`, kein auskommentierter Code - [x] Keine personenbezogenen Daten, keine internen Originalunterlagen - [x] Doku des Skills nachgezogen: nicht betroffen (Syntax unverändert) - [x] Wissensbasis nachgezogen (`fallstricke.md`, `STATUS.md`) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Daniel added 1 commit 2026-09-25 16:42:42 +00:00
- orthogonal_points(): Ist nur ein Ende eine Raute, bekommt auch das
  Aufgaben-Ende einen geraden Stub senkrecht zu seiner Seite
  (RECHTECK_STUB = 20); danach wie zwischen zwei Rauten von Stub zu
  Stub. Die beiden Sonderzweige für "nur Quelle/nur Ziel ist Gateway"
  entfallen.
- Beispiele neu erzeugt: 17 Kantenenden (2 + 2 + 13), die parallel zur
  Aufgabenkante ansetzten, sind korrigiert.
- Strukturtest test_kanten_setzen_an_aufgaben_rechtwinklig_an über alle
  Beispiele und Einzeltest für vier Achsen-Kombinationen.
- Belastungstest (126 Fälle): schräge Anschlüsse 378 -> 0; Kreuzungen
  22 -> 24, alle in Fällen mit Querverbindung zwischen Zweigen (#22).
- Tests: python -m pytest -q -> 124 bestanden, 1 übersprungen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Daniel merged commit 12152eb3b0 into main 2026-09-25 16:42:53 +00:00
Daniel deleted branch bugfix/23-rechtwinklige-anschluesse 2026-09-25 16:42:54 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: AG_Prozesse/Projektwissen#25