claude
fb9b719f0b
router/semantic: corpus validation infrastructure (slice 13)
...
Add ValidateCorpus and CorpusStatsFrom for structural integrity checks
on the semantic route corpus. Validates total counts, route/source sums,
fast-path+residual partition, empty SourceID/SplitGroup, invalid routes,
duplicate identity, and conflicting labels on identical text.
CorpusStats provides deterministic dataset hash (SHA-256 of sorted texts,
first 16 bytes). ReproducibilityMeta in CorpusEnvelope records source
fixture hashes, generator version, split algorithm, and dataset hash.
TestCorpusValidation exercises the full validation pipeline.
2026-09-07 02:06:58 +04:00
..
2026-09-07 01:32:49 +04:00
2026-09-07 02:06:58 +04:00
2026-09-06 21:02:17 +04:00
2026-09-06 21:02:13 +04:00
2026-08-06 18:09:11 +04:00
2026-09-06 21:43:14 +04:00
2026-09-06 21:43:14 +04:00
2026-09-07 01:32:49 +04:00
2026-08-05 21:40:49 +04:00
2026-08-05 21:40:15 +04:00
2026-08-06 00:08:43 +04:00
2026-08-06 00:08:43 +04:00
2026-09-07 01:32:49 +04:00
2026-08-01 14:07:43 +04:00
2026-08-06 03:33:01 +04:00
2026-09-07 01:32:49 +04:00
2026-09-06 21:01:59 +04:00
2026-09-07 01:32:49 +04:00
2026-08-06 00:54:55 +04:00
2026-07-03 00:32:48 +02:00
2026-08-15 17:18:48 +04:00
2026-08-15 17:18:48 +04:00
2026-08-04 19:10:00 +04:00
2026-08-04 19:10:00 +04:00
2026-08-15 17:18:48 +04:00
2026-08-15 17:18:48 +04:00
2026-08-05 21:17:21 +04:00
2026-08-06 04:11:47 +04:00
2026-08-08 22:24:37 +04:00
2026-08-08 18:44:47 +04:00
2026-07-31 11:38:07 +04:00
2026-07-31 13:42:07 +04:00
2026-08-08 22:23:56 +04:00
2026-08-06 12:21:50 +04:00
2026-09-07 01:32:49 +04:00
2026-09-07 01:24:25 +04:00
2026-09-07 01:32:49 +04:00
2026-08-01 14:21:36 +04:00
2026-08-05 18:37:38 +04:00
2026-08-15 17:18:48 +04:00
2026-08-15 17:18:48 +04:00
2026-08-05 01:25:42 +04:00
2026-08-01 14:06:05 +04:00
2026-08-06 03:33:01 +04:00
2026-08-05 14:24:49 +04:00
2026-08-05 18:16:54 +04:00
2026-08-13 03:03:25 +04:00
2026-08-15 17:18:48 +04:00
2026-08-15 17:18:48 +04:00
2026-08-06 03:51:06 +04:00
2026-08-15 17:18:48 +04:00
2026-08-15 17:18:48 +04:00
2026-09-06 21:02:09 +04:00
2026-07-31 16:07:35 +04:00
2026-08-02 10:01:58 +04:00
2026-08-06 04:11:47 +04:00
2026-08-05 11:44:07 +04:00
2026-08-05 18:43:13 +04:00
2026-09-07 01:32:49 +04:00
2026-08-08 18:22:00 +04:00
2026-09-06 22:33:27 +04:00
2026-09-06 22:32:51 +04:00
2026-08-04 19:17:59 +04:00
2026-08-04 19:17:59 +04:00
2026-09-07 01:32:49 +04:00
2026-08-15 17:18:48 +04:00
2026-08-15 17:18:48 +04:00
2026-08-05 14:24:49 +04:00
2026-08-06 03:51:06 +04:00
2026-08-13 03:03:25 +04:00
2026-08-13 03:03:25 +04:00
2026-08-13 03:03:25 +04:00
2026-09-07 01:32:49 +04:00
2026-08-13 03:00:31 +04:00
2026-08-15 17:18:48 +04:00
2026-09-06 13:50:03 +04:00
2026-08-15 17:18:48 +04:00
2026-08-15 17:18:48 +04:00
2026-08-15 17:18:48 +04:00
2026-08-15 17:18:48 +04:00
2026-08-05 19:36:29 +04:00
2026-08-05 19:36:29 +04:00
2026-08-05 15:14:29 +04:00
2026-09-07 01:32:49 +04:00
2026-09-07 01:32:45 +04:00
2026-08-15 17:18:48 +04:00
2026-08-15 17:18:48 +04:00
2026-08-13 02:14:46 +04:00
2026-09-06 13:50:03 +04:00
2026-09-06 22:32:51 +04:00
2026-09-06 13:50:03 +04:00
2026-08-15 17:18:48 +04:00
2026-08-01 12:50:47 +04:00
2026-08-05 11:44:07 +04:00
2026-08-04 04:29:37 +04:00
2026-08-04 04:29:37 +04:00
2026-08-15 17:18:48 +04:00
2026-09-06 13:50:03 +04:00
2026-08-06 04:11:47 +04:00
2026-08-06 04:11:47 +04:00
2026-08-01 03:40:21 +04:00
2026-08-01 03:40:21 +04:00
2026-08-06 03:33:01 +04:00
2026-08-15 17:18:48 +04:00
2026-08-15 17:18:48 +04:00