Commit Graph

9 Commits

Author SHA1 Message Date
m
30ac337a78 docs(t-paliad-136): Fristenrechner v4 inventor design
v4 addresses three concerns from m on 2026-05-05 in priority order:

1. Card-click → compute deadline → add-to-project (v3 cards were dead-ends).
2. Filter narrowing bug — slug → concept_id allow-list dropped per-leaf
   proceeding_type_code, so picking "UPC infringement opposing party"
   leaked DE/EPA/DPMA pills. Confirmed via DB query: 25+ leaves overbroad.
3. RoP-rigorous tree audit: 6 confirmed seed errors (Hinweisbeschluss
   DE_INF mismap, notice-of-defence-intention UPC_INF mismap, three
   cost-appeal notice-of-appeal mismaps, request-for-discretionary-review
   needs UPC_APP_ORDERS narrowing), plus reply-to-cross-appeal coverage
   gap and bescheid-mit-frist orphan.

Plan splits into three independent phases (A: filter fix, no schema; B:
card-click flow + new calculate-rule endpoint; C: taxonomy migration 052
without RAISE EXCEPTION coverage gates per last night's outage lesson).

Inventor → coder gate held: no production code in this commit.
2026-05-05 12:11:36 +02:00
m
f40b652d01 Reapply "Merge: t-paliad-133 — Fristenrechner v3 (Pathway A/B fork + B1 decision tree + B2 forum filter + retire legacy tabs)"
This reverts commit 5bd17de732.
2026-05-05 11:18:38 +02:00
m
5bd17de732 Revert "Merge: t-paliad-133 — Fristenrechner v3 (Pathway A/B fork + B1 decision tree + B2 forum filter + retire legacy tabs)"
This reverts commit f7d72ff1d3, reversing
changes made to 1ea983f0c7.
2026-05-05 11:17:58 +02:00
m
7e363ac01d design(t-paliad-133): lock v3 design with m's answers (10:33)
m approved all 12 open questions in one batch. Locked spec:

1. Legacy tabs RETIRED in Phase E.
2. Decision-tree depth UNLIMITED (was: 4 max). Property of
   event_categories data, not hard-coded.
3. Clickable breadcrumb for navigation.
4. Partial-path bookmarks (?b1=...).
5. Multi-select forum filter, default 1 selected.
6. Path-matching cards at each step. Renamed "Pfad lockern" →
   "Schritt zurück".
7. Emojis only, no separate colour treatment.
8. Forum buckets simplified to 10: UPC CFI + UPC CoA + DE LG/OLG/
   BGH/BPatG + EPA Erteilung/Einspruchsabt./Beschwerdek. + DPMA.
   m collapsed UPC LD/CD into UPC CFI (rules identical).
9. B1↔B2 share filter state.
10. Single branch / sequential commits / one final merge.
11. Party perspective default Claimant/Proactive; localStorage
    remembers last-used. URL ?my_side= + ?appeal_filed_by=.
12. Bilateral rules tagged via new is_bilateral column on
    deadline_rules; mirroring only when flagged.

Maria's two scope additions folded in:
- Court-system granularity for forum filter (clarification).
- Party-perspective selector absorbing t-paliad-132.

Implementation now starting on this branch.
2026-05-05 10:37:44 +02:00
m
2ed476dc64 design(t-paliad-133): Fristenrechner v3 — Pathway A vs Pathway B fork
m's 2026-05-05 brief restructures the page surface that v2 (t-paliad-131)
shipped. The current Fristenrechner stacks three blurred entrypoints —
Phase D search bar, Verfahrensablauf tile grid, "Was kommt nach…" tab.
v3 forks the page so each mental model has its own entry:

- Pathway A — Verfahrensablauf informieren (Browse): existing wizard.
- Pathway B — Frist eintragen aufgrund Ereignis (Event → Deadline),
  subdivided into:
  - B1 Entscheidungsbaum: data-driven button cascade (CMS-Eingang →
    Vom Gericht → Hinweisbeschluss → cards), max 4 deep, back +
    breadcrumb + bookmark URLs.
  - B2 Filter / Suche: Phase D concept-card search PLUS new
    Gericht/System multi-select chip filter (Q8 reversal). All filters
    AND-narrow.

Adds two new tables (Phase A — purely additive):

- paliad.event_categories — recursive taxonomy tree, with step
  questions on non-leaf nodes.
- paliad.event_category_concepts — leaf → concept junction with
  optional proceeding_type_code narrowing.

Existing data layer (deadline_concepts, deadline_rules, trigger_events,
deadline_search matview) untouched. Phase D search handler gains
?event_category_slug= and ?forum= query params; forum-bucket map lives
in Go (UPC / DE LG / DE OLG / DE BGH / DE BPatG / EPA / DPMA).

Phasing: A (data) → B (landing fork) → C (B1 tree) → D (B2 forum
filter) → E (retire legacy tabs, gate-gated). Each phase independently
shippable.

Open questions for m at §10: retire legacy tabs, decision-tree depth,
back/breadcrumb, partial-path bookmarks, multi vs single-select forum,
all-vs-path-matching cards per step, austere icons, 7 forum buckets,
B1↔B2 state-sharing, PR phasing.

Inventor parked. Next: m's go/no-go before coder shift.

Cross-references docs/plans/unified-fristenrechner.md (v2, shipped) for
concept-layer / search-backend / coverage details v3 inherits unchanged.
2026-05-05 10:21:20 +02:00
m
20eaa9bba4 design(t-paliad-131): v2 — flip slug rule (EN for shared) + drop flag_param
m's revisions (23:36):

- Q1 corrected: EN slug for shared concepts too (klageerwiderung →
  statement-of-defence, replik → reply-to-defence, berufungsfrist →
  notice-of-appeal, einspruchsfrist → opposition, wiedereinsetzung →
  re-establishment-of-rights). DE slug only for German-law-only
  concepts (nichtzulassungsbeschwerde, versaeumnisurteil-einspruch,
  hinweisbeschluss-stellungnahme).

- Q4 simplified: drop the customizable-extension flag_param mechanism.
  Replace with a generalised "user can override any computed date,
  downstream re-anchors off it" capability. CalcOptions gains
  AnchorOverrides map[string]string; tree-walk consults it before the
  computed-date map. UI gives each row a click-to-edit date affordance
  (also unlocks court-set decision dates being entered post-hoc, which
  the existing IsCourtSet placeholder UX has been hinting at). PatG §82
  seed stays at 2 months static; user-set extensions handled by inline
  date override, not by a flag_param mechanism.

  Cleaner. No new DB column. Generalises beyond extensions to any case
  where the user knows the real date better than the calculator's
  projection.
2026-05-04 23:38:23 +02:00
m
94ebc1d043 design(t-paliad-131): v2 — m's answers to the 8 v2 open questions locked
- Q1 concept slug naming: mixed convention. EN slug for UPC/EPC-native
  concepts (application-to-amend, request-for-discretionary-review).
  DE slug for German-only concepts (nichtzulassungsbeschwerde,
  versaeumnisurteil-einspruch). DE slug for SHARED concepts that exist
  in both DE and UPC/EPC (klageerwiderung, replik, berufungsfrist,
  einspruchsfrist, wiedereinsetzung) because m works primarily in
  German and the slug is internal/maintenance-facing only.
- Q2 EU.EPÜ confirmed for EPÜ namespace.
- Q3 PatG §111(1) 1mo→3mo confirmed for Phase B3.
- Q4 PatG §82(1): shape (b) — 1mo base + with_extension flag with
  CUSTOMIZABLE extension duration (default 1mo). New flag_param
  mechanism on flag-conditioned rules: CalcOptions.Flags becomes
  map[string]int; rules with flag_param_code add caller's param to
  duration. UI shows number input next to checkbox. Generalises to
  PatG §75 etc. Phase A5 picks up the calculator extension; Phase B3
  hooks PatG §82.
- Q5 Full Appeal Chain: multiple date inputs per stage, no inter-stage
  gap guessing. Stage N's downstream deadlines render as IsCourtSet
  placeholders until user enters Stage N-1's terminal decision date.
- Q6/Q7/Q8 confirmed as drafted.

§5.2.2 PatG §82 row updated to reflect flag-based shape. §4.4 concept
slug examples expanded with the mixed-convention rule rendered
explicitly. §7 Phase A5 added for the flag_param calculator change.
2026-05-04 23:33:33 +02:00
m
79f09006fc design(t-paliad-131): v2 — incorporate m's go-direction (Unifier shape, concept cards, no tab subsumption)
Significant restructure after m's 10 answers (relayed via head 23:10):

- Augment, not replace — search bar at top + existing tile grid stays as
  browse fallback. Both existing tabs stay live. Phase E (subsumption)
  dropped.
- Unifier shape: new paliad.deadline_concepts layer above existing
  deadline_rules; deadline_rules gains concept_id FK + structured
  legal_source. condition_flag scalar→array (Q3) for AND-of-flags
  semantics on UPC_REV (with_amend ∥ with_cci).
- Search hits as ONE card per concept with proceeding pills inside (NOT
  a flat list of one-per-proceeding hits). Card body: pills [UPC R.23.1
  3mo] [LG §276.1 6w] [BPatG §82.1 1mo] [EPA R.79.1 4mo] etc.
- Structured legal_source codes: UPC.RoP.23.1, DE.ZPO.276.1,
  EU.EPÜ.108, DE.PatG.111.1 — parseable, filterable, indexed.
- "Vollständige Instanzenkette" checkbox synthesises LG→OLG→BGH (or
  BPatG→BGH) timeline as one tree at render-time; data stays per-
  instance.
- Forum filter dropped (Q8). Filters now: Verfahrensart / Partei /
  Rechtsquelle.
- Court-set placeholders ("Verhandlung", "Entscheidung",
  "Zwischenverfügung") surface as searchable triggers (Q10).
- Columns-view sequence preservation (Q9) flagged but punted to a
  separate follow-up task — t-paliad-129 column renderer must respect
  sequence_order even on undated court-set events.

8 remaining open questions for m (concept slug convention, EPÜ
namespace, PatG §82(1) modeling, Full Appeal Chain anchor handoff,
quick-pick chip seed, etc.).
2026-05-04 23:21:28 +02:00
m
355e718516 design(t-paliad-131): unified Fristenrechner — search-by-anything + complete coverage
Inventor design doc at docs/plans/unified-fristenrechner.md.

Covers:
- Single search bar UX over both deadline_rules (proceeding-tree) and
  trigger_events (event-driven) backends, federated via a materialised
  view with pg_trgm indexes.
- Faceted filters: forum, proceeding type, party, legal source.
- UPC counterclaim cross-flows missing today (R.29(a)/(d)/(e), R.30,
  R.32, R.43.3, R.49(2), R.51, R.52, R.55, R.56) — verbatim citations
  pulled from data.laws_contents (UPCRoP).
- German PatG/ZPO gap audit: missing OLG + BGH-Revision + BGH-NZB cycles,
  ZPO §339 Versäumnis, §521 Berufungserwiderung, PatG §111 (likely 1mo→3mo
  fix), DPMA Einspruch + Beschwerde. EPA gaps: R.116, R.79(2/3), R.106
  Überprüfung, Wiedereinsetzung × 3.
- Phased migration plan A–E, each independently shippable.
- 10 open questions for m's go/no-go before coder shift.

No code changes; awaiting m's review.
2026-05-04 23:11:16 +02:00