diff --git a/scripts/gen-hl-skeleton-template/main.go b/scripts/gen-hl-skeleton-template/main.go index e75fe1b..e23c17a 100644 --- a/scripts/gen-hl-skeleton-template/main.go +++ b/scripts/gen-hl-skeleton-template/main.go @@ -315,11 +315,11 @@ func buildDocumentXML() string { body0(&b, "Rechtsgrundlage: {{procedural_event.legal_source_pretty}} ({{procedural_event.legal_source}})") body0(&b, "Typische Partei: {{procedural_event.primary_party}} · Schriftsatz-Typ: {{procedural_event.event_kind}}") - headerSubsection(&b, "Frist") - body0(&b, "Frist-Bezeichnung: {{deadline.title}}") - body0(&b, "Fälligkeit: {{deadline.due_date_long_de}} ({{deadline.due_date}})") - body0(&b, "Ursprüngliche Frist: {{deadline.original_due_date}}") - body0(&b, "Berechnet aus: {{deadline.computed_from}} · Quelle: {{deadline.source}}") + // t-paliad-287 — the dedicated Frist block was removed in 2026-05. + // {{deadline.*}} placeholders stay resolvable in the variable bag + // for custom templates that want them, but the default HL skeleton + // no longer renders them in the submission body: the deadline is + // internal/admin context and has no place in a court-bound document. heading(&b, "HLpat-Heading-H2", "I. Sachverhalt") body0(&b, "[Hier folgt der Sachverhalt. Diese Vorlage ist eine Skelett-Fassung — bitte gemäß Schriftsatz-Typ ({{procedural_event.name}}) ausformulieren.]") @@ -349,7 +349,6 @@ func buildDocumentXML() string { body1(&b, "EN long date: {{today.long_en}} · Today (bare alias): {{today}}") body1(&b, "Project our side (EN): {{project.our_side_en}} · Proceeding (EN): {{project.proceeding.name_en}}") body1(&b, "Proceeding (DE): {{project.proceeding.name_de}}") - body1(&b, "Deadline EN long: {{deadline.due_date_long_en}}") body1(&b, "Procedural event name (DE): {{procedural_event.name_de}} · (EN): {{procedural_event.name_en}}") body1(&b, "Rule legacy aliases — name: {{rule.name}}, name_de: {{rule.name_de}}, name_en: {{rule.name_en}}") body1(&b, "Rule legacy aliases — code: {{rule.submission_code}}, legal_source: {{rule.legal_source}}, legal_source_pretty: {{rule.legal_source_pretty}}") diff --git a/scripts/gen-skeleton-submission-template/main.go b/scripts/gen-skeleton-submission-template/main.go index 175a9eb..c5d2bf4 100644 --- a/scripts/gen-skeleton-submission-template/main.go +++ b/scripts/gen-skeleton-submission-template/main.go @@ -137,14 +137,19 @@ const stylesXML = ` ` // Document body — a code-agnostic Schriftsatz skeleton: firm letterhead + -// case caption + parties + submission heading + deadline + a single -// neutral body block. Mirrors the variable bag from SubmissionVarsService -// (48 keys across firm.* / today.* / user.* / project.* / parties.* / -// rule.* / deadline.*) without baking in DE-LG-Klageerwiderung-specific -// structure. A lawyer customising this template for a UPC SoC, EPO -// opposition, or DPMA appeal replaces the [Schriftsatztext] block and -// renames the party labels — every placeholder still resolves regardless -// of the submission_code chosen. +// case caption + parties + submission heading + a single neutral body +// block. Mirrors the variable bag from SubmissionVarsService (firm.* / +// today.* / user.* / project.* / parties.* / rule.*) without baking in +// DE-LG-Klageerwiderung-specific structure. A lawyer customising this +// template for a UPC SoC, EPO opposition, or DPMA appeal replaces the +// [Schriftsatztext] block and renames the party labels — every +// placeholder still resolves regardless of the submission_code chosen. +// +// The {{deadline.*}} placeholders are deliberately NOT rendered by the +// default skeleton (t-paliad-287). The deadline is internal context for +// the lawyer, not text that belongs in a court-bound submission. The +// keys stay resolvable in the bag so a custom template can still +// reference them where it actually wants them. // // Every placeholder occupies its own run so the renderer's pass-1 // (format-preserving, single-run) substitution catches it. The @@ -194,11 +199,12 @@ func buildDocumentXML() string { plain(&b, "Rechtsgrundlage: {{rule.legal_source_pretty}} ({{rule.legal_source}})") plain(&b, "Typische Partei: {{rule.primary_party}} · Schriftsatz-Typ: {{rule.event_type}}") - heading2(&b, "Frist") - plain(&b, "Diese Frist wurde berechnet aus: {{deadline.computed_from}}") - plain(&b, "Fälligkeit: {{deadline.due_date_long_de}} ({{deadline.due_date}})") - plainOptional(&b, "Ursprüngliche Frist: {{deadline.original_due_date}}") - plain(&b, "Frist-Bezeichnung: {{deadline.title}} · Quelle: {{deadline.source}}") + // t-paliad-287 — the dedicated Frist block was removed in 2026-05. + // {{deadline.*}} placeholders stay resolvable in the variable bag + // (lawyer can still drop them into a custom paragraph) but the + // default skeleton no longer renders them in the submission body: + // the deadline is internal/admin context and has no place in a + // document going out to court. heading2(&b, "Schriftsatztext") plain(&b, "[Hier folgt der eigentliche Schriftsatztext. Diese Skelett-Vorlage enthält keine vorgefertigte Struktur — bitte gemäß Schriftsatz-Typ ({{rule.name}}) ergänzen.]") @@ -217,7 +223,7 @@ func buildDocumentXML() string { // the bare {{today}} alias. A lawyer customising the template can // delete this block; the renderer round-trips it cleanly today. heading2(&b, "Locale-aware variants (SKELETON)") - plain(&b, "EN long date: {{today.long_en}} · Deadline EN: {{deadline.due_date_long_en}}") + plain(&b, "EN long date: {{today.long_en}}") plain(&b, "Project our side (EN): {{project.our_side_en}} · Proceeding (EN): {{project.proceeding.name_en}}") plain(&b, "Rule name (EN): {{rule.name_en}} · Project our side (DE): {{project.our_side_de}}") plain(&b, "Proceeding (DE): {{project.proceeding.name_de}} · Rule name (DE): {{rule.name_de}}")