vikingowl de1a3f6efb feat(discovery): validator — catches agent self-contradictions before insert
Pass 0 agents produce schema-valid but semantically wrong output: markets
claimed in the wrong bundesland, status 'bestaetigt' with a hinweis about
Vorjahresdaten, etc. The schema alone can't catch these. This validator
does, as a blocking gate before InsertDiscovered.

Checks (Pass 0 scope):
- bundesland_mismatch: agent's bundesland must equal bucket.region, with
  a light normalizer for CH 'Kanton X' prefix so Phase B can refine the
  Schweiz seed without a signature break.
- status_hinweis_inconsistent: if agent_status=='bestaetigt' AND hinweis
  contains 'vorjahr' (case-insensitive), the agent contradicted itself.

Errors drop the market (counted as summary.validation_failed); warnings
would get merged into hinweis — no warning-level checks exist yet at
Pass 0 scope, placeholder reserved.

Phase B (research agent) checks will extend this file: oeffnungszeiten
dedup, start_datum window coverage, full quellen liveness for Pass 1.
2026-04-18 10:05:08 +02:00
2026-02-21 07:10:30 +01:00
2026-04-07 02:53:03 +02:00
Description
No description provided
1.7 MiB
Languages
Go 60.3%
Svelte 20.3%
Dart 11.1%
TypeScript 5%
PLpgSQL 1.1%
Other 2.1%