Status (2026-10-13): Phase 1 is built (v2.3.6, July 2026); the dashboard, per-stage attribution and OpenTelemetry phases are not.
BundleEvalSchedulerrunseval/bundle-corpus/queries.csvthrough the live bundle path everywikantik.bundle.eval.interval.hours(default 0 = disabled; a real run needs a live embedding index, and under Tomcat or a containerwikantik.bundle.eval.corpusmust be an absolute path), writes onebundle_eval_runrow per run (migration V045: overall and per-category recall@12 plus aregressionflag), and logs aBUNDLE-EVAL REGRESSIONWARN when a recall falls below the floors ineval/bundle-corpus/thresholds.properties. Runbook:docs/agents/bundle-eval-runbook.md. A separate, older subsystem also exists: nightlyretrieval_runsfor BM25 and hybrid (nDCG, recall, MRR), Prometheus gauges and an admin dashboard at/admin/retrieval-qualitywith a Run-now button (wikantik.retrieval.cron.enabled/.hour_utc; seedocs/admin/RetrievalQuality.md). Still open: a recall-trend dashboard overbundle_eval_run(read it with SQL today), per-stage recall attribution, OpenTelemetry (no OTel dependency in any pom), the published methodology page, and the[OWNER]query-log privacy decision.
Wikantik has arguably more honest evaluation machinery than the LLM-judge frameworks the market standardized on — a retrieval experiment harness, retrieval-quality CI, a per-bundle coverage signal computed from true dense cosines, and a real-traffic query log. But all of it is internal plumbing. Competitors ship dashboards, traces, and built-in metrics that buyers can see. The gap is productization, not science — which makes it one of the cheapest credibility wins on the roadmap.
, Maxim, top RAG evaluation tools
).
); production monitoring of retrieval (not just offline eval) is positioned as what most open-source eval tools lack; stage-wise per-component metrics are called mandatory — end-to-end scores alone cannot localize a regression.RetrievalExperimentHarness; the actual code is com.wikantik.search.embedding.experiment.ExperimentHarness (test scope) driven by bin/run-embedding-experiment.sh, with the design documented in the RetrievalExperimentHarness wiki page. eval/bundle-corpus/ holds the eval corpus and baseline notes (section recall@12 ~0.74); retrieval-quality CI came from the agent-grade content work.list_retrieval_queries (admin MCP) — deduped real-traffic query log with max_avg_results filtering for under-served queries; briefing_log telemetry for the briefing surface.wikantik-observability — health checks, Prometheus metrics, request correlation; dashboards live in the separate jakemon stack. OpenTelemetry is greenfield: no OTel dependency exists anywhere in the codebase today./api/bundle and both MCP servers — stage-wise timing and result counts per query, exportable to any OTel backend.First session scope: scheduled harness runs + a persisted results table (numbered migration) + a regression alert. No dashboard, no OTel.
Phase 1 is done when:
eval/bundle-corpus and persists per-run recall@12 (overall, and per retrieval stage where the harness supports it) with timestamp and build/config identity.Dashboard (step 2) and OTel (step 3) are separate phases with their own gates; do not bundle them into Phase 1.
[AGENT] Metric inventory: what does ExperimentHarness already compute vs what needs adding for per-stage attribution (lexical, dense, fused, post-rerank)? Stage-wise attribution is the point.[AGENT] OTel wiring in a servlet/Tomcat stack alongside the existing request-correlation filter — reuse the correlation ID as trace ID?[OWNER] Query-log privacy: retention, redaction, and per-tenant scoping — real queries can contain sensitive text, and this must be decided before a dashboard makes them visible (ties to RoadmapCompliancePosture).[AGENT] Dashboard placement: extend the admin SPA (default — it is the product answer) vs Grafana panels in the jakemon stack for the single-prod deployment.[OWNER] Per-tenant eval corpora vs a shared benchmark corpus per release — deferred until the tenancy posture is ratified.