{"id":"crawler-normalize-once-convention","text":"URLs are normalized via `URLNormalizer.normalize()` at the point of insertion into the Bloom filter, frontier, and SimulatedWeb; downstream code assumes URLs are already canonical.","truth_value":"IN","source":"entries/2026/06/05/web-crawler-web_crawler.md","source_url":"","source_hash":"","justifications":[],"dependents":["crawler-three-layer-dedup","normalize-once-at-system-boundary"],"metadata":{},"created_at":"","updated_at":"","reviewed_at":"","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"crawler-normalize-once-convention","truth_value":"IN","reason":"premise"}]}}