root
f9e72412c1
validatord: /v1/validate + /v1/iterate HTTP surface (port 3221)
Closes the last "Go primary" backlog item in
docs/ARCHITECTURE_COMPARISON.md. Go now owns the entire validator
path end-to-end — no Rust dep for staffing safety net.
Architecture: cmd/validatord on :3221 hosts both endpoints. Calls
chatd directly for the iterate loop's LLM hop (no gateway
self-loopback like the Rust shape). Gateway proxies /v1/validate +
/v1/iterate to validatord.
What's in:
- internal/validator/playbook.go — 3rd validator kind (PRD checks:
fill: prefix, endorsed_names ≤ target_count×2, fingerprint required)
- internal/validator/lookup_jsonl.go — JSONL roster loader (Parquet
deferred; producer one-liner documented in package comment)
- internal/validator/iterate.go — ExtractJSON helper + Iterate
orchestrator with ChatCaller seam for unit tests
- cmd/validatord/main.go — HTTP routes, roster load, chat client
- internal/shared/config.go — ValidatordConfig + gateway URL field
- lakehouse.toml — [validatord] section
- cmd/gateway/main.go — proxy routes for /v1/validate + /v1/iterate
Smoke: 5/5 PASS through gateway :3110:
✓ playbook happy path
✓ playbook missing fingerprint → 422 schema/fingerprint
✓ phantom candidate W-PHANTOM → 422 consistency
✓ unknown kind → 400
✓ roster loaded with 3 records
go test ./... green across 33 packages.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 03:53:20 -05:00
..
2026-05-01 01:30:23 -05:00
2026-04-29 07:11:34 -05:00
2026-04-30 00:28:08 -05:00
2026-04-29 07:11:34 -05:00
2026-05-02 03:53:20 -05:00
2026-04-29 07:11:34 -05:00
2026-05-02 03:31:02 -05:00
2026-04-30 20:34:10 -05:00
2026-04-29 07:00:38 -05:00
2026-04-30 17:42:07 -05:00
2026-04-30 06:27:24 -05:00
2026-04-30 06:22:21 -05:00
2026-05-02 03:31:02 -05:00
2026-04-29 07:11:34 -05:00
2026-05-02 03:53:20 -05:00
2026-05-02 03:31:02 -05:00