vc_018 · Cross-surface — chat → ML → chat

Status: ✓ Passing · Last run: 2026-06-04T23:50:46 · Pipeline: cross_surface · History: 2/3 runs passed (67%)

What was tested

End-to-end test of the most common user journey: user chats with the agent asking it to build a model, model trains in the background, user returns to chat asking what the model found. Three things have to all work: 1. Chat correctly invokes start_ml_run on turn 1 (right tool, not a fabricated answer) 2. v2 trains a model and surfaces the planted driver 3. Chat turn 2 reads the model's interpretation HTML from the session and accurately reports which feature matters

Failure modes this covers: - Agent answers turn 1 from "knowledge" without queuing a build - v2 runs but never writes results back to the session - Chat turn 2 hallucinates feature names not in the trained model

Uses entity_static (same shape as vc_001) so v2's behavior on this data is known-clean — any failure must be in the surface handoff.

What we planted in the data

What the system did

Top features by importance:

What we checked — all assertions passed

Status Assertion Detail
tool_was_used agent used profile_data in session up through 'q_drivers'
planted_feature_in_top_k_importance derivative(s) of usage_score in top 3: ['usage_score_raw']
auc_in_band AUC = 0.913 inside band [0.70, 0.95]
tool_was_used agent used profile_data in session up through 'q_drivers'
answer_mentions_fact all expected facts present in answer to 'q_drivers'

How this could have gone wrong

Why this case matters

Every other case tests ONE surface. This is the only case that proves the two surfaces fit together — the handoff to v2 happens cleanly, v2 writes back to where chat reads from, chat can intelligibly answer questions about the model. That handoff is where production bugs hide; it's also the customer's actual journey.

Reproducing

# from auto_insight_api/
python -m validation.v2 run vc_018 --pipeline cross_surface -v

← back to validation report