Rule now carries a required Jurisdiction (land) field, and Facts a matching Jurisdiction supplied by the caller (like Platform — no legal jurisdiction can be read off a caption or image, so the model never guesses it). Evaluate() only lets a rule fire when its jurisdiction matches the facts' jurisdiction. This is the structural half of "deutsche Rechtslage zuerst, Struktur für Österreich und Schweiz vorgesehen": a future AT/CH rule set can be added as plain new YAML files without touching existing DE rules, but no AT/CH content is added now — that needs its own legal research first, same as WK-001/WK-004 needed for Germany. WK-001 and WK-004 are tagged land: DE, all golden fixtures carry jurisdiction: DE, and extract.Input passes Jurisdiction through unchanged into the returned Facts. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
30 lines
1.2 KiB
Go
30 lines
1.2 KiB
Go
package rules
|
|
|
|
// Consideration ist die Gegenleistung für einen Beitrag, wie sie die
|
|
// Extraktion (Stufe 1) liefert.
|
|
type Consideration string
|
|
|
|
const (
|
|
ConsiderationPaid Consideration = "bezahlt"
|
|
ConsiderationInKind Consideration = "sachbezug"
|
|
ConsiderationNone Consideration = "keine"
|
|
ConsiderationUnclear Consideration = "unklar"
|
|
)
|
|
|
|
// Facts sind die Fakten aus der Extraktion (Stufe 1), auf denen die
|
|
// Regelauswertung (Stufe 2) urteilt. Die Extraktion liefert diese Werte,
|
|
// sie bewertet sie nicht — das Urteil fällt ausschließlich das Regelwerk.
|
|
//
|
|
// Jurisdiction ist keine vom Modell extrahierte Tatsache (aus Caption/
|
|
// Bild lässt sich keine Rechtsordnung ablesen), sondern kommt vom
|
|
// Aufrufer — analog zu Platform. Aktuell ist "DE" der einzig unterstützte
|
|
// Wert; siehe Rule.Jurisdiction.
|
|
type Facts struct {
|
|
Platform string `json:"platform"`
|
|
Jurisdiction string `json:"jurisdiction"`
|
|
Consideration Consideration `json:"consideration"`
|
|
DisclosurePresent bool `json:"disclosure_present"`
|
|
DisclosureWording string `json:"disclosure_wording"`
|
|
DisclosureBeforeCut bool `json:"disclosure_before_cut"`
|
|
}
|