Verfahrensablauf/Fristenrechner: link DE + EPA + EU rule references to youpc.org/laws (depends on youpc.org ingest) #39

Open
opened 2026-05-18 13:03:02 +00:00 by mAi · 1 comment
Collaborator

Surfaced by: t-paliad-207 interactive session (fermi, 2026-05-18, commit 9dfda3e on mai/fermi/interactive-session).

Context

That shift wired up BuildLegalSourceURL (internal/services/deadline_search_service.go) to render every deadline-card rule reference as a link to youpc.org/laws/<type>/<n> when the cited body is hosted there. The mapping today covers the three UPC bodies youpc currently ingests:

  • UPC.RoP.*https://youpc.org/laws/UPCRoP/<n>
  • UPC.UPCA.*https://youpc.org/laws/UPCA/<n>
  • UPC.UPCS.*https://youpc.org/laws/UPCS/<n>

That covers 39 of 91 active rules in paliad.deadline_rules. The remaining 52 carry national + EPO bodies and render as plain styled text (no link):

Prefix Active rules Body
DE.PatG.* 18 Patentgesetz
DE.ZPO.* 17 Zivilprozessordnung
EU.EPC-R.* 9 EPC Implementing Regulations
EU.EPÜ.* 7 EPÜ / EPC Articles
EU.RPBA.* 1 EPO Boards of Appeal — Rules of Procedure

Source of the bucket map: internal/services/deadline_search_service.go:FormatLegalSourceDisplay + BuildLegalSourceURL + the live paliad.deadline_rules.legal_source corpus (queried 2026-05-18).

Two-part work

Part A — youpc.org (prerequisite, yoUPC/youpc.org): ingest the 5 bodies above and serve them under the existing /laws/:type/:number route. Suggested :type segment tokens, matching the FormatLegalSourceDisplay convention so a single canonical mapping survives on both sides:

paliad legal_source prefix proposed youpc :type
DE.PatG PatG
DE.ZPO ZPO
EU.EPC-R EPC-R
EU.EPÜ EPÜ (or EPU if path-encoding the umlaut is awkward — caller picks)
EU.RPBA RPBA

Ground source-of-truth lookup: /home/m/dev/web/youpc.org/youpc-go/database/data/laws-data.json carries UPCA / UPCRoP / UPCS today; the schema is the place to land the new types.

Part B — paliad (this repo, tiny): once youpc serves the new bodies, extend BuildLegalSourceURL's switch parts[0] + "." + parts[1] to add the 5 new mappings, extend TestBuildLegalSourceURL to cover them, no migration needed. The UI work is already in place — link-or-plain renders off whether BuildLegalSourceURL returns the empty string.

Acceptance

  • A UPC.RoP rule and a DE.ZPO rule both render as clickable links on /tools/verfahrensablauf and /tools/fristenrechner result cards.
  • target="_blank" rel="noopener noreferrer" semantics preserved (already in frontend/src/client/views/verfahrensablauf-core.ts:deadlineCardHtml).
  • Part B test pass + a Playwright spot-check on at least one DE rule (de.inf.lg / de_inf.klage cites DE.ZPO.253).

Low priority — paliad already degrades gracefully (plain styled text) for the unlinked 52, so the UX gap is cosmetic not blocking.

**Surfaced by:** t-paliad-207 interactive session (fermi, 2026-05-18, commit `9dfda3e` on `mai/fermi/interactive-session`). ## Context That shift wired up `BuildLegalSourceURL` (`internal/services/deadline_search_service.go`) to render every deadline-card rule reference as a link to `youpc.org/laws/<type>/<n>` when the cited body is hosted there. The mapping today covers the three UPC bodies youpc currently ingests: - `UPC.RoP.*` → `https://youpc.org/laws/UPCRoP/<n>` - `UPC.UPCA.*` → `https://youpc.org/laws/UPCA/<n>` - `UPC.UPCS.*` → `https://youpc.org/laws/UPCS/<n>` That covers **39 of 91** active rules in `paliad.deadline_rules`. The remaining **52** carry national + EPO bodies and render as plain styled text (no link): | Prefix | Active rules | Body | |---|---|---| | `DE.PatG.*` | 18 | Patentgesetz | | `DE.ZPO.*` | 17 | Zivilprozessordnung | | `EU.EPC-R.*` | 9 | EPC Implementing Regulations | | `EU.EPÜ.*` | 7 | EPÜ / EPC Articles | | `EU.RPBA.*` | 1 | EPO Boards of Appeal — Rules of Procedure | Source of the bucket map: `internal/services/deadline_search_service.go:FormatLegalSourceDisplay` + `BuildLegalSourceURL` + the live `paliad.deadline_rules.legal_source` corpus (queried 2026-05-18). ## Two-part work **Part A — youpc.org (prerequisite, `yoUPC/youpc.org`):** ingest the 5 bodies above and serve them under the existing `/laws/:type/:number` route. Suggested `:type` segment tokens, matching the FormatLegalSourceDisplay convention so a single canonical mapping survives on both sides: | paliad `legal_source` prefix | proposed youpc `:type` | |---|---| | `DE.PatG` | `PatG` | | `DE.ZPO` | `ZPO` | | `EU.EPC-R` | `EPC-R` | | `EU.EPÜ` | `EPÜ` (or `EPU` if path-encoding the umlaut is awkward — caller picks) | | `EU.RPBA` | `RPBA` | Ground source-of-truth lookup: `/home/m/dev/web/youpc.org/youpc-go/database/data/laws-data.json` carries `UPCA / UPCRoP / UPCS` today; the schema is the place to land the new types. **Part B — paliad (this repo, tiny):** once youpc serves the new bodies, extend `BuildLegalSourceURL`'s `switch parts[0] + "." + parts[1]` to add the 5 new mappings, extend `TestBuildLegalSourceURL` to cover them, no migration needed. The UI work is already in place — link-or-plain renders off whether `BuildLegalSourceURL` returns the empty string. ## Acceptance - A UPC.RoP rule and a DE.ZPO rule both render as clickable links on /tools/verfahrensablauf and /tools/fristenrechner result cards. - `target="_blank" rel="noopener noreferrer"` semantics preserved (already in `frontend/src/client/views/verfahrensablauf-core.ts:deadlineCardHtml`). - Part B test pass + a Playwright spot-check on at least one DE rule (`de.inf.lg` / `de_inf.klage` cites DE.ZPO.253). Low priority — paliad already degrades gracefully (plain styled text) for the unlinked 52, so the UX gap is cosmetic not blocking.
Author
Collaborator

URL shape correction (m, 2026-05-18 17:04): the canonical youpc.org/laws permalink uses the hash-fragment form with a zero-padded 3-digit law-number, not the pretty path form. Updated reference:

  • UPC.RoP.23.1https://youpc.org/laws#UPCRoP.023
  • UPC.UPCA.83https://youpc.org/laws#UPCA.083
  • UPC.UPCS.40.1https://youpc.org/laws#UPCS.040

Fix landed in t-paliad-207 commit ba7d550 (on mai/fermi/interactive-session, awaiting head merge) — BuildLegalSourceURL + padLawNumber helper + 14 test cases covering UPC corpus + zero-pad cases + DE/EPA/EU fall-through.

Part-A acceptance update for this issue: when youpc ingests the 5 national/EPO bodies, the same hash-fragment + zero-padded shape should apply. Suggested :type segments unchanged from the table above; the URL template becomes:

https://youpc.org/laws#<TYPE>.<NNN>

Part-B (paliad) just extends the switch parts[0] + "." + parts[1] block in BuildLegalSourceURL; the padding helper already covers any 3-digit-or-less numeric input.

**URL shape correction (m, 2026-05-18 17:04):** the canonical youpc.org/laws permalink uses the hash-fragment form with a zero-padded 3-digit law-number, not the pretty path form. Updated reference: - `UPC.RoP.23.1` → `https://youpc.org/laws#UPCRoP.023` - `UPC.UPCA.83` → `https://youpc.org/laws#UPCA.083` - `UPC.UPCS.40.1` → `https://youpc.org/laws#UPCS.040` Fix landed in t-paliad-207 commit `ba7d550` (on `mai/fermi/interactive-session`, awaiting head merge) — `BuildLegalSourceURL` + `padLawNumber` helper + 14 test cases covering UPC corpus + zero-pad cases + DE/EPA/EU fall-through. **Part-A acceptance update for this issue:** when youpc ingests the 5 national/EPO bodies, the same hash-fragment + zero-padded shape should apply. Suggested `:type` segments unchanged from the table above; the URL template becomes: `https://youpc.org/laws#<TYPE>.<NNN>` Part-B (paliad) just extends the `switch parts[0] + "." + parts[1]` block in `BuildLegalSourceURL`; the padding helper already covers any 3-digit-or-less numeric input.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: m/paliad#39
No description provided.