Fristenrechner Verlauf: UPC RoP audit + cascade depth + party-role + columns ordering #14

Open
opened 2026-05-08 13:53:08 +00:00 by mAi · 1 comment
Collaborator

Combines several Verlauf-surface improvements raised in the t-paliad-157 pair-programming session (2026-05-08, items 1, 2, 3, 4, 8, 12, 13).

Scope

A — UPC orders + decisions audit (RoP-driven)

Build out the cascade taxonomy from the actual UPC Rules of Procedure. Many order/decision types are missing or shallowly modeled (case-management orders, panel-vs-single-judge, R.118 final, R.220.2 leave-to-appeal, R.262 confidentiality, R.331/332 case-mgmt, default + cost orders, etc.).

Deliverable: docs/audit-upc-orders-decisions.md — every RoP-named order/decision with trigger semantics and cross-references to the proceeding it belongs to. We build it ourselves from the RoP.

Then expand paliad.event_categories, paliad.deadline_concepts, paliad.deadline_rules per the audit so each order/decision is a first-class trigger with the right downstream rules.

B — Verlauf depth (UX)

  • Party/role selector in Pathway A: pick Defendant / Claimant role; filter rendered rules by primary_party. Defendant view drops Klageschrift / Reply etc.; Claimant view drops SoD / Rejoinder.
  • For both-rules where either side can act (Berufung / Anschlussberufung), add a runtime proactive/reactive toggle on the row.

C — Cascade gaps (small fixes; can ship inline ahead of A/B)

  • Klageschrift / Klageerhebung selectable at top of "CMS Submission > Opponent submission" path.
  • Wiedereinsetzung reachable under UPC > "Frist verpasst" branch (verify mig 046 cross-cutting coverage; data or wiring).
  • Cross-list Beschluss / Entscheidung under "CMS Submission from the court" cascade in addition to the Court-Event branch. Same node, two reachability paths.

D — Columns view ordering

renderColumnsBody (frontend/src/client/fristenrechner.ts:606) collapses every undated row into a single NO_DATE bucket. Urteil and Berufungseinlegung end up adjacent, but Urteil precedes Berufung. Fix: per-row keys for unscheduled events, sorted by sequence_order, so the dateless tail still reads chronologically.

Acceptance

  • Audit doc at docs/audit-upc-orders-decisions.md.
  • Cascade reachability test for the three gaps in C.
  • Party-role toggle visible on Pathway A wizard, with both-rule side-toggle on relevant rows.
  • Columns view shows undated rows in sequence_order order.

Context

t-paliad-157 (Fristenrechner pair-programming session, 2026-05-08). Items 1, 2, 3, 4, 8, 12, 13.

Combines several Verlauf-surface improvements raised in the t-paliad-157 pair-programming session (2026-05-08, items 1, 2, 3, 4, 8, 12, 13). ## Scope ### A — UPC orders + decisions audit (RoP-driven) Build out the cascade taxonomy from the actual UPC Rules of Procedure. Many order/decision types are missing or shallowly modeled (case-management orders, panel-vs-single-judge, R.118 final, R.220.2 leave-to-appeal, R.262 confidentiality, R.331/332 case-mgmt, default + cost orders, etc.). Deliverable: `docs/audit-upc-orders-decisions.md` — every RoP-named order/decision with trigger semantics and cross-references to the proceeding it belongs to. We build it ourselves from the RoP. Then expand `paliad.event_categories`, `paliad.deadline_concepts`, `paliad.deadline_rules` per the audit so each order/decision is a first-class trigger with the right downstream rules. ### B — Verlauf depth (UX) - Party/role selector in Pathway A: pick Defendant / Claimant role; filter rendered rules by `primary_party`. Defendant view drops Klageschrift / Reply etc.; Claimant view drops SoD / Rejoinder. - For `both`-rules where either side can act (Berufung / Anschlussberufung), add a runtime proactive/reactive toggle on the row. ### C — Cascade gaps (small fixes; can ship inline ahead of A/B) - Klageschrift / Klageerhebung selectable at top of "CMS Submission > Opponent submission" path. - Wiedereinsetzung reachable under UPC > "Frist verpasst" branch (verify mig 046 cross-cutting coverage; data or wiring). - Cross-list Beschluss / Entscheidung under "CMS Submission from the court" cascade in addition to the Court-Event branch. Same node, two reachability paths. ### D — Columns view ordering `renderColumnsBody` (frontend/src/client/fristenrechner.ts:606) collapses every undated row into a single `NO_DATE` bucket. Urteil and Berufungseinlegung end up adjacent, but Urteil precedes Berufung. Fix: per-row keys for unscheduled events, sorted by `sequence_order`, so the dateless tail still reads chronologically. ## Acceptance - Audit doc at `docs/audit-upc-orders-decisions.md`. - Cascade reachability test for the three gaps in C. - Party-role toggle visible on Pathway A wizard, with `both`-rule side-toggle on relevant rows. - Columns view shows undated rows in `sequence_order` order. ## Context t-paliad-157 (Fristenrechner pair-programming session, 2026-05-08). Items 1, 2, 3, 4, 8, 12, 13.
Author
Collaborator

Section D and the Wiedereinsetzung half of section C shipped on mai/feynman/fristenrechner:

  • Columns view sequence_order609da9e. Each undated event now keys on its index; dated and unscheduled keys are sorted into separate buckets so Urteil precedes Berufungseinlegung even without a date.
  • Wiedereinsetzung under UPC7c75161. Migration 063 adds trigger_event 207 (wegfall_hindernisses_upc, R.320 RoP), the frist-verpasst.upc cascade leaf at sort_order 50 so it reads first, and the junction to the existing wiedereinsetzung concept. Verified live on the Supabase Postgres; matview refreshed; tracker bumped to v63.

The other two section-C items turned out to be IA shape rather than data gaps — leaving them for #16:

  • Klageschrift / Klageerhebung at "CMS Submission > Opponent submission" — the leaves exist at level 4 (cms-eingang.gegenseite.upc-inf.klageschrift, cms-eingang.gegenseite.de-inf.klageschrift). m's "should be the first one" reads as a level-2 shortcut, which conflicts with the procedure-specific naming (Klageschrift LG vs Klageschrift UPC). This is the same input/output split the IA reframe addresses; better resolved there than as a quick add.
  • Cross-list Beschluss / Entscheidung under "CMS Submission from the court" — both branches already exist in parallel: top-level beschluss-entscheidung.* (11 leaves) and cms-eingang.gericht.endentscheidung.* (10 leaves) carry essentially the same content with different slugs. The reachability m wanted is in place; the underlying redundancy is duplication, not cross-reference, and is best deduplicated as part of the IA reframe (#16) rather than reinforced.
Section D and the Wiedereinsetzung half of section C shipped on `mai/feynman/fristenrechner`: - **Columns view sequence_order** — [`609da9e`](https://mgit.msbls.de/m/paliad/commit/609da9e). Each undated event now keys on its index; dated and unscheduled keys are sorted into separate buckets so Urteil precedes Berufungseinlegung even without a date. - **Wiedereinsetzung under UPC** — [`7c75161`](https://mgit.msbls.de/m/paliad/commit/7c75161). Migration 063 adds trigger_event 207 (`wegfall_hindernisses_upc`, R.320 RoP), the `frist-verpasst.upc` cascade leaf at sort_order 50 so it reads first, and the junction to the existing wiedereinsetzung concept. Verified live on the Supabase Postgres; matview refreshed; tracker bumped to v63. The other two section-C items turned out to be IA shape rather than data gaps — leaving them for #16: - **Klageschrift / Klageerhebung at "CMS Submission > Opponent submission"** — the leaves exist at level 4 (`cms-eingang.gegenseite.upc-inf.klageschrift`, `cms-eingang.gegenseite.de-inf.klageschrift`). m's "should be the first one" reads as a level-2 shortcut, which conflicts with the procedure-specific naming (Klageschrift LG vs Klageschrift UPC). This is the same input/output split the IA reframe addresses; better resolved there than as a quick add. - **Cross-list Beschluss / Entscheidung under "CMS Submission from the court"** — both branches already exist in parallel: top-level `beschluss-entscheidung.*` (11 leaves) and `cms-eingang.gericht.endentscheidung.*` (10 leaves) carry essentially the same content with different slugs. The reachability m wanted is in place; the underlying redundancy is duplication, not cross-reference, and is best deduplicated as part of the IA reframe (#16) rather than reinforced.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: m/paliad#14
No description provided.