feat: add jurisdiction field to rules, facts and extraction
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>
This commit is contained in:
@@ -86,6 +86,7 @@ func TestExtractSuccess(t *testing.T) {
|
||||
|
||||
got, err := c.Extract(context.Background(), extract.Input{
|
||||
Platform: "instagram",
|
||||
Jurisdiction: "DE",
|
||||
Caption: "Schaut euch dieses Produkt an! Werbung wegen ...",
|
||||
ImageMediaType: "image/jpeg",
|
||||
ImageData: []byte("fake-jpeg-bytes"),
|
||||
@@ -96,6 +97,7 @@ func TestExtractSuccess(t *testing.T) {
|
||||
|
||||
want := rules.Facts{
|
||||
Platform: "instagram",
|
||||
Jurisdiction: "DE",
|
||||
Consideration: rules.ConsiderationPaid,
|
||||
DisclosurePresent: true,
|
||||
DisclosureWording: "Werbung",
|
||||
|
||||
Reference in New Issue
Block a user