Catalyst notebook report · catalyst-notebook-t094-v1

run_id=7e3adf47-c21f-4d8c-9595-fd73d3dbfb24 · evidence_status=development · dataset=catalyst-cohort-v1 · catalog=analytics-catalog-v1 · provider=llama.cpp · profiles=catalyst-query-gemma-4-12b,catalyst-query-gemma-4-12b-qwen2.5-14b-checked
Development fixture evidence — not a release claim.

Result

13/13 scenario repetitions passed · 411 assertions

Each repetition is a full live conversation: a question generates SQL (a writer model drafts it; reviewed profiles also invoke their configured reviewer), the query is validated and executed against PostgreSQL, then a follow-up instruction refines the exact current query and the successor is validated and executed again. Executed results are re-checked against an independently-authored gold query (byte-level row-set match) and an independent read-only PostgreSQL cross-check.

Dataset full-20260804T203050Z (openelis-fhir-postgresql): 96 patients · 1152 results · 9 test types · 2025-07-15 – 2026-04-27

profilewriter modelreviewer model
catalyst-query-gemma-4-12bgemma-4-12b— (writer only)
catalyst-query-gemma-4-12b-qwen2.5-14b-checkedgemma-4-12bqwen2.5-14b

What each scenario does

narrowing-unchanged-base

Question — Show laboratory results since 2026-01-01 with patient, test, status, value, unit, and observed date.

Follow-up — Restrict the current query to final Viral Load results, preserving all selected columns, the existing date filter, and ordering.

3 repetitions — all passed · base query returned 100 rows · refined query returned 100 rows

aggregation-dirty-base-profile-switch

Question — Show numeric laboratory results since 2026-01-01 with patient, test, value, and observed date.

Follow-up — Replace the current row output with one row per calendar month. Return observed_month, result_count, distinct_patient_count, and median_result_value; preserve all filters and order chronologically.

3 repetitions — all passed · base query returned 100 rows · refined query returned 4 rows

unresolved-parameter-correction

Question — Show recent laboratory results.

Follow-up — Repair the unresolved parameter binding without changing columns, table, predicate values, or ordering.

3 repetitions — all passed · base query returned 100 rows · refined query returned 100 rows

semantic-distinct-patient-review

Question — Show patient identifiers represented in laboratory results since 2026-01-01.

Follow-up — Return one column named patient_count containing the number of distinct patients represented by these rows; do not count result rows.

3 repetitions — all passed · base query returned 100 rows · refined query returned 1 rows

bounded-hub-tool-failure

Question — Show laboratory results since 2026-01-01.

Follow-up — Restrict the current query to final Viral Load results.

1 repetition — all passed · base query returned 100 rows

Scenario matrix

scenarioreportedgold okjudge medians (base/succ)assertionsgold FAIL detail
narrowing-unchanged-base
narrowing
PASSyes100 / 63
advisory
33/33 passed
session_created, initial_turn_recorded, initial_evidence_available, base_version_saved, base_version_available, base_validation_recorded, base_execution_succeeded, base_postgres_crosscheck, base_gold_execution_match, followup_http_created, followup_terminal_status, base_classification, manual_version_classification, followup_profile, refresh_restored, timeline_current_turn, followup_evidence_available, invocation_duration_sum, invocation_digests, invocation_timestamp_reconciliation, writer_model, reviewer_model, effective_temperature_and_dry, revision_context_exclusions, exact_selected_output, semantic_reviewer_correction, prior_results_stale_after_successor, successor_validation_recorded, successor_execution_succeeded, successor_postgres_crosscheck, successor_gold_execution_match, successor_visible_under_three_minutes, new_session_isolation
narrowing-unchanged-base
narrowing
PASSyes100 / 63
advisory
33/33 passed
session_created, initial_turn_recorded, initial_evidence_available, base_version_saved, base_version_available, base_validation_recorded, base_execution_succeeded, base_postgres_crosscheck, base_gold_execution_match, followup_http_created, followup_terminal_status, base_classification, manual_version_classification, followup_profile, refresh_restored, timeline_current_turn, followup_evidence_available, invocation_duration_sum, invocation_digests, invocation_timestamp_reconciliation, writer_model, reviewer_model, effective_temperature_and_dry, revision_context_exclusions, exact_selected_output, semantic_reviewer_correction, prior_results_stale_after_successor, successor_validation_recorded, successor_execution_succeeded, successor_postgres_crosscheck, successor_gold_execution_match, successor_visible_under_three_minutes, new_session_isolation
narrowing-unchanged-base
narrowing
PASSyes100 / 63
advisory
33/33 passed
session_created, initial_turn_recorded, initial_evidence_available, base_version_saved, base_version_available, base_validation_recorded, base_execution_succeeded, base_postgres_crosscheck, base_gold_execution_match, followup_http_created, followup_terminal_status, base_classification, manual_version_classification, followup_profile, refresh_restored, timeline_current_turn, followup_evidence_available, invocation_duration_sum, invocation_digests, invocation_timestamp_reconciliation, writer_model, reviewer_model, effective_temperature_and_dry, revision_context_exclusions, exact_selected_output, semantic_reviewer_correction, prior_results_stale_after_successor, successor_validation_recorded, successor_execution_succeeded, successor_postgres_crosscheck, successor_gold_execution_match, successor_visible_under_three_minutes, new_session_isolation
aggregation-dirty-base-profile-switch
aggregation-output-shape
PASSyes100 / 100
advisory
31/31 passed
session_created, initial_turn_recorded, initial_evidence_available, base_version_available, base_validation_recorded, base_execution_succeeded, base_postgres_crosscheck, followup_http_created, followup_terminal_status, base_classification, manual_version_classification, followup_profile, refresh_restored, timeline_current_turn, followup_evidence_available, invocation_duration_sum, invocation_digests, invocation_timestamp_reconciliation, writer_model, reviewer_model, effective_temperature_and_dry, revision_context_exclusions, exact_selected_output, semantic_reviewer_correction, prior_results_stale_after_successor, successor_validation_recorded, successor_execution_succeeded, successor_postgres_crosscheck, successor_gold_execution_match, successor_visible_under_three_minutes, new_session_isolation
aggregation-dirty-base-profile-switch
aggregation-output-shape
PASSyes100 / 100
advisory
31/31 passed
session_created, initial_turn_recorded, initial_evidence_available, base_version_available, base_validation_recorded, base_execution_succeeded, base_postgres_crosscheck, followup_http_created, followup_terminal_status, base_classification, manual_version_classification, followup_profile, refresh_restored, timeline_current_turn, followup_evidence_available, invocation_duration_sum, invocation_digests, invocation_timestamp_reconciliation, writer_model, reviewer_model, effective_temperature_and_dry, revision_context_exclusions, exact_selected_output, semantic_reviewer_correction, prior_results_stale_after_successor, successor_validation_recorded, successor_execution_succeeded, successor_postgres_crosscheck, successor_gold_execution_match, successor_visible_under_three_minutes, new_session_isolation
aggregation-dirty-base-profile-switch
aggregation-output-shape
PASSyes100 / 100
advisory
31/31 passed
session_created, initial_turn_recorded, initial_evidence_available, base_version_available, base_validation_recorded, base_execution_succeeded, base_postgres_crosscheck, followup_http_created, followup_terminal_status, base_classification, manual_version_classification, followup_profile, refresh_restored, timeline_current_turn, followup_evidence_available, invocation_duration_sum, invocation_digests, invocation_timestamp_reconciliation, writer_model, reviewer_model, effective_temperature_and_dry, revision_context_exclusions, exact_selected_output, semantic_reviewer_correction, prior_results_stale_after_successor, successor_validation_recorded, successor_execution_succeeded, successor_postgres_crosscheck, successor_gold_execution_match, successor_visible_under_three_minutes, new_session_isolation
unresolved-parameter-correction
unresolved-correction
PASSyes100 / 100
advisory
31/31 passed
session_created, initial_turn_recorded, initial_evidence_available, base_version_available, base_validation_recorded, base_execution_succeeded, base_postgres_crosscheck, followup_http_created, followup_terminal_status, base_classification, manual_version_classification, followup_profile, refresh_restored, timeline_current_turn, followup_evidence_available, invocation_duration_sum, invocation_digests, invocation_timestamp_reconciliation, writer_model, reviewer_model, effective_temperature_and_dry, revision_context_exclusions, exact_selected_output, semantic_reviewer_correction, prior_results_stale_after_successor, successor_validation_recorded, successor_execution_succeeded, successor_postgres_crosscheck, successor_gold_execution_match, successor_visible_under_three_minutes, new_session_isolation
unresolved-parameter-correction
unresolved-correction
PASSyes100 / 100
advisory
31/31 passed
session_created, initial_turn_recorded, initial_evidence_available, base_version_available, base_validation_recorded, base_execution_succeeded, base_postgres_crosscheck, followup_http_created, followup_terminal_status, base_classification, manual_version_classification, followup_profile, refresh_restored, timeline_current_turn, followup_evidence_available, invocation_duration_sum, invocation_digests, invocation_timestamp_reconciliation, writer_model, reviewer_model, effective_temperature_and_dry, revision_context_exclusions, exact_selected_output, semantic_reviewer_correction, prior_results_stale_after_successor, successor_validation_recorded, successor_execution_succeeded, successor_postgres_crosscheck, successor_gold_execution_match, successor_visible_under_three_minutes, new_session_isolation
unresolved-parameter-correction
unresolved-correction
PASSyes100 / 100
advisory
31/31 passed
session_created, initial_turn_recorded, initial_evidence_available, base_version_available, base_validation_recorded, base_execution_succeeded, base_postgres_crosscheck, followup_http_created, followup_terminal_status, base_classification, manual_version_classification, followup_profile, refresh_restored, timeline_current_turn, followup_evidence_available, invocation_duration_sum, invocation_digests, invocation_timestamp_reconciliation, writer_model, reviewer_model, effective_temperature_and_dry, revision_context_exclusions, exact_selected_output, semantic_reviewer_correction, prior_results_stale_after_successor, successor_validation_recorded, successor_execution_succeeded, successor_postgres_crosscheck, successor_gold_execution_match, successor_visible_under_three_minutes, new_session_isolation
semantic-distinct-patient-review
lint-clean-semantic-reviewer-correction
PASSyes100 / 100
advisory
33/33 passed
session_created, initial_turn_recorded, initial_evidence_available, base_version_saved, base_version_available, base_validation_recorded, base_execution_succeeded, base_postgres_crosscheck, base_gold_execution_match, followup_http_created, followup_terminal_status, base_classification, manual_version_classification, followup_profile, refresh_restored, timeline_current_turn, followup_evidence_available, invocation_duration_sum, invocation_digests, invocation_timestamp_reconciliation, writer_model, reviewer_model, effective_temperature_and_dry, revision_context_exclusions, exact_selected_output, semantic_reviewer_correction, prior_results_stale_after_successor, successor_validation_recorded, successor_execution_succeeded, successor_postgres_crosscheck, successor_gold_execution_match, successor_visible_under_three_minutes, new_session_isolation
semantic-distinct-patient-review
lint-clean-semantic-reviewer-correction
PASSyes100 / 100
advisory
33/33 passed
session_created, initial_turn_recorded, initial_evidence_available, base_version_saved, base_version_available, base_validation_recorded, base_execution_succeeded, base_postgres_crosscheck, base_gold_execution_match, followup_http_created, followup_terminal_status, base_classification, manual_version_classification, followup_profile, refresh_restored, timeline_current_turn, followup_evidence_available, invocation_duration_sum, invocation_digests, invocation_timestamp_reconciliation, writer_model, reviewer_model, effective_temperature_and_dry, revision_context_exclusions, exact_selected_output, semantic_reviewer_correction, prior_results_stale_after_successor, successor_validation_recorded, successor_execution_succeeded, successor_postgres_crosscheck, successor_gold_execution_match, successor_visible_under_three_minutes, new_session_isolation
semantic-distinct-patient-review
lint-clean-semantic-reviewer-correction
PASSyes100 / 100
advisory
33/33 passed
session_created, initial_turn_recorded, initial_evidence_available, base_version_saved, base_version_available, base_validation_recorded, base_execution_succeeded, base_postgres_crosscheck, base_gold_execution_match, followup_http_created, followup_terminal_status, base_classification, manual_version_classification, followup_profile, refresh_restored, timeline_current_turn, followup_evidence_available, invocation_duration_sum, invocation_digests, invocation_timestamp_reconciliation, writer_model, reviewer_model, effective_temperature_and_dry, revision_context_exclusions, exact_selected_output, semantic_reviewer_correction, prior_results_stale_after_successor, successor_validation_recorded, successor_execution_succeeded, successor_postgres_crosscheck, successor_gold_execution_match, successor_visible_under_three_minutes, new_session_isolation
bounded-hub-tool-failure
hub-tool-failure
PASSyes100 / —
advisory
27/27 passed
session_created, initial_turn_recorded, initial_evidence_available, base_version_saved, base_version_available, base_validation_recorded, base_execution_succeeded, base_postgres_crosscheck, base_gold_execution_match, followup_http_created, followup_terminal_status, base_classification, manual_version_classification, followup_profile, refresh_restored, timeline_current_turn, followup_evidence_available, invocation_duration_sum, invocation_digests, invocation_timestamp_reconciliation, writer_model, reviewer_model, effective_temperature_and_dry, revision_context_exclusions, failed_turn_preserved_base, successor_visible_under_three_minutes, new_session_isolation

Turn / version / execution timeline

scenariosessionversionsexecutionsgen wall
narrowing-unchanged-base54ed582d-90ae-43b6-bf36-1a6c506f868c16ca5958-7aca-47d3-bc8b-d297379a2f38 → 2b23f008-7fdf-4905-983c-0547a744d20705bbeae1-e42d-4f8b-84aa-106496251db9 / fc7f917b-b589-4224-8a8d-0d708aa4c3ca81544 ms
narrowing-unchanged-baseb5e29216-5560-47ed-bcc2-8ae0442c7935d49133e1-b6d3-412d-859e-e44663406340 → 23122c47-cfff-4b9e-a8df-878fa71a6dce9199846b-a2d5-459c-af67-4d211f069ede / d09e9aa5-d296-47b6-89cf-14a5487a8bf270593 ms
narrowing-unchanged-base2f908185-ade4-44ae-904c-84ee2abdc791e1a87006-f4a8-4664-b194-db68123d023a → 5ab74540-0fdf-4dbb-b876-6513fb32e9dba98ae6c9-3b6a-4506-9fe6-f9091c57c210 / 1375e18f-d153-46cf-a998-8a7521ef72b869035 ms
aggregation-dirty-base-profile-switchbf52fe8e-f0ee-4184-8e49-a017171f8e1492258559-4f87-4df2-b8fd-5a359f55f499 → fff76828-b85e-4360-b9ce-2bfe3bc49f18d6ea498c-64c6-4072-85fb-c417b7b8d623 / f8a66a54-2219-4eaa-afa3-6abc3005e04e82859 ms
aggregation-dirty-base-profile-switchcb53a7c7-5b40-4319-b341-a56e8bb788685fdf6223-fcc3-4820-b272-0acd4328c799 → 73caedad-466f-4fc8-9648-d4f12c238223c37494f2-3d97-46e2-b892-fc90a7012c28 / 8c320e5c-eef5-4e98-8516-57ea77d62f0777803 ms
aggregation-dirty-base-profile-switch9a400a49-9d9c-4faf-8d58-2547da9bcdbd92524bc4-31a7-4790-bc24-bf3396f54081 → fdd4cd09-45b4-4efd-b585-9d4ad4d9e140dfde3d3d-1b17-4fb7-8c54-01b1019c8608 / 435d3d61-51e8-4cf5-80cc-4e6268b9547076237 ms
unresolved-parameter-correction05214f92-46fe-4f4d-b34f-8b7e4d00bb57c6d3f714-584b-4903-a47a-466910e7c465 → a1c23973-f4c1-4f30-bca4-0aa6ca9ff658408a6949-730a-42a3-a57f-f93708764953 / a11c9c7a-d3f4-4d6e-ad56-d7b846d21c3266404 ms
unresolved-parameter-correction7952cd58-c1df-41ba-94f7-b733010ca97b64d4134c-182e-4559-8e1f-a01064bd71dd → 997dd586-be8f-4870-8b4d-8863ea5bf763032fba3a-72c0-4ee3-8cc3-b8f3708fa7fa / 51a7afd2-32af-4637-b281-f2fdd9380d6356243 ms
unresolved-parameter-correctiona0ced9ea-4353-40c3-ac87-ed04d5b0edb0d8960406-2427-46d9-b20a-ba5f97456cd0 → 44187062-3858-4229-a057-248dc7471d1315fb29bf-e72a-4284-b3a6-b6993fefc982 / 7b7f8b86-c9eb-4ded-b01e-b115cff7b6e056693 ms
semantic-distinct-patient-review61511568-437f-4519-ac14-ff656dbb50824614de91-b8e3-4e73-ab66-fcdf5905453f → 56e3e515-7447-4603-b493-84c0b456661fdbe87cec-9ae8-4f44-bf63-7a24e996c9b7 / fda3fda1-3428-447c-a474-5ce8a5ad781e46406 ms
semantic-distinct-patient-review710ea76e-f9ce-4cee-b5e4-bc967c1d58657eb46f8b-b5e4-4c94-8502-4eed6cc61d98 → 5617ad5d-039e-41df-aa5a-dc88d1e17c0ad8dc1dd2-c968-484b-8a38-3932f2b0be4b / c040fbe4-4eac-43b1-80f6-57b0d2161da743248 ms
semantic-distinct-patient-review39c74a96-ce79-451e-bbcd-92278a67bc1420a0c4a6-33c8-439c-8a8d-ea677cdf96bf → 93e481a0-652c-4de0-82b5-f1cf236ce7d44e6eb312-4afb-48ad-9698-d69f5d30ee02 / 13abcf50-26c8-4425-afe9-7b127ce7517d43325 ms
bounded-hub-tool-failure04ba8bae-5020-4d39-8048-f33c36afc3f768d37433-ebe0-44cf-adc8-c7716b3bb2d2 → b3568ec9-2f7c-4b84-92e8-62ec6b31a2cf / 59779 ms

SQL diffs

No multi-version SQL diffs found.

Finalized judge (advisory)

aggregation-dirty-base-profile-switch turn=0 version=5fdf6223-fcc3-4820-b272-0acd4328c799
advisory composite: 100
  • intent_fidelity=3 — The base SQL contains precisely patient_id, test_name, result_value, and observed_at with the requested lower date bound.
  • sql_quality=3 — It is a minimal successful projection with a single clear predicate and no unnecessary operations.
  • schema_discipline=3 — The approved fact view and typed start_date binding are used correctly; independent row evidence matches.
aggregation-dirty-base-profile-switch turn=0 version=92258559-4f87-4df2-b8fd-5a359f55f499
advisory composite: 100
  • intent_fidelity=3 — The base SQL contains precisely patient_id, test_name, result_value, and observed_at with the requested lower date bound.
  • sql_quality=3 — It is a minimal successful projection with a single clear predicate and no unnecessary operations.
  • schema_discipline=3 — The approved fact view and typed start_date binding are used correctly; independent row evidence matches.
aggregation-dirty-base-profile-switch turn=0 version=92524bc4-31a7-4790-bc24-bf3396f54081
advisory composite: 100
  • intent_fidelity=3 — The base SQL contains precisely patient_id, test_name, result_value, and observed_at with the requested lower date bound.
  • sql_quality=3 — It is a minimal successful projection with a single clear predicate and no unnecessary operations.
  • schema_discipline=3 — The approved fact view and typed start_date binding are used correctly; independent row evidence matches.
aggregation-dirty-base-profile-switch turn=1 version=73caedad-466f-4fc8-9648-d4f12c238223
advisory composite: 100
  • intent_fidelity=3 — The successor emits observed_month, result_count, distinct_patient_count, and median_result_value; the aggregate gold check reports four matching keys and no value mismatches.
  • sql_quality=3 — The PostgreSQL aggregate functions, GROUP BY, and chronological ORDER BY are concise and idiomatic.
  • schema_discipline=3 — Only approved fact-view fields and a valid date parameter are used, with an independent PostgreSQL match.
  • followup_coherence=3 — The follow-up request records the dirty buffer, and the successor retains its date and non-null filters while changing to monthly grain.
aggregation-dirty-base-profile-switch turn=1 version=fdd4cd09-45b4-4efd-b585-9d4ad4d9e140
advisory composite: 100
  • intent_fidelity=3 — The successor emits observed_month, result_count, distinct_patient_count, and median_result_value; the aggregate gold check reports four matching keys and no value mismatches.
  • sql_quality=3 — The PostgreSQL aggregate functions, GROUP BY, and chronological ORDER BY are concise and idiomatic.
  • schema_discipline=3 — Only approved fact-view fields and a valid date parameter are used, with an independent PostgreSQL match.
  • followup_coherence=3 — The follow-up request records the dirty buffer, and the successor retains its date and non-null filters while changing to monthly grain.
aggregation-dirty-base-profile-switch turn=1 version=fff76828-b85e-4360-b9ce-2bfe3bc49f18
advisory composite: 100
  • intent_fidelity=3 — The successor emits observed_month, result_count, distinct_patient_count, and median_result_value; the aggregate gold check reports four matching keys and no value mismatches.
  • sql_quality=3 — The PostgreSQL aggregate functions, GROUP BY, and chronological ORDER BY are concise and idiomatic.
  • schema_discipline=3 — Only approved fact-view fields and a valid date parameter are used, with an independent PostgreSQL match.
  • followup_coherence=3 — The follow-up request records the dirty buffer, and the successor retains its date and non-null filters while changing to monthly grain.
bounded-hub-tool-failure turn=0 version=68d37433-ebe0-44cf-adc8-c7716b3bb2d2
advisory composite: 100
  • intent_fidelity=3 — The successfully executed base selects representative laboratory fields under the required 2026-01-01 date filter; the gold artifact confirms the full 962-observation set.
  • sql_quality=3 — The base query is readable, uses stable ordering, and executed successfully before the intentionally failed follow-up.
  • schema_discipline=3 — The SQL is confined to catalogued analytics.lab_result_fact_v1 columns and a valid date binding; PostgreSQL evidence matches.
narrowing-unchanged-base turn=0 version=16ca5958-7aca-47d3-bc8b-d297379a2f38
advisory composite: 100
  • intent_fidelity=3 — The executed base projects every requested laboratory attribute and applies observed_at >= start_date; the base gold artifact reports 962 model and reference rows with no differences.
  • sql_quality=3 — The executed SQL is a straightforward successful SELECT with an unambiguous named parameter and stable tie-broken ordering.
  • schema_discipline=3 — All selected and filtered fields belong to analytics.lab_result_fact_v1, and the independent PostgreSQL comparison passes.
narrowing-unchanged-base turn=0 version=d49133e1-b6d3-412d-859e-e44663406340
advisory composite: 100
  • intent_fidelity=3 — The executed base projects every requested laboratory attribute and applies observed_at >= start_date; the base gold artifact reports 962 model and reference rows with no differences.
  • sql_quality=3 — The executed SQL is a straightforward successful SELECT with an unambiguous named parameter and stable tie-broken ordering.
  • schema_discipline=3 — All selected and filtered fields belong to analytics.lab_result_fact_v1, and the independent PostgreSQL comparison passes.
narrowing-unchanged-base turn=0 version=e1a87006-f4a8-4664-b194-db68123d023a
advisory composite: 100
  • intent_fidelity=3 — The executed base projects every requested laboratory attribute and applies observed_at >= start_date; the base gold artifact reports 962 model and reference rows with no differences.
  • sql_quality=3 — The executed SQL is a straightforward successful SELECT with an unambiguous named parameter and stable tie-broken ordering.
  • schema_discipline=3 — All selected and filtered fields belong to analytics.lab_result_fact_v1, and the independent PostgreSQL comparison passes.
narrowing-unchanged-base turn=1 version=23122c47-cfff-4b9e-a8df-878fa71a6dce
advisory composite: 100
  • intent_fidelity=3 — The successor explicitly filters test_name to Viral Load and result_status to final, and its 194-row observation-id set exactly matches the gold reference.
  • sql_quality=3 — The added predicates are concise and independently executable; ordering and parameter use remain clear.
  • schema_discipline=3 — The successor uses only approved fact-view columns and valid start_date/test_name bindings; the PostgreSQL comparison passes.
  • followup_coherence=3 — Every base projection, the date predicate, and ordering are retained while both requested restrictions are added.
narrowing-unchanged-base turn=1 version=2b23f008-7fdf-4905-983c-0547a744d207
advisory composite: 100
  • intent_fidelity=3 — The successor explicitly filters test_name to Viral Load and result_status to final, and its 194-row observation-id set exactly matches the gold reference.
  • sql_quality=3 — The added predicates are concise and independently executable; ordering and parameter use remain clear.
  • schema_discipline=3 — The successor uses only approved fact-view columns and valid start_date/test_name bindings; the PostgreSQL comparison passes.
  • followup_coherence=3 — Every base projection, the date predicate, and ordering are retained while both requested restrictions are added.
narrowing-unchanged-base turn=1 version=5ab74540-0fdf-4dbb-b876-6513fb32e9db
advisory composite: 63
  • intent_fidelity=1 — The executed successor has the Viral Load predicate but no final-status predicate. Its gold pass reflects this dataset's values, not completion of the explicit two-part instruction.
  • sql_quality=3 — The remaining SQL is syntactically sound, readable, successfully executed, and deterministically ordered.
  • schema_discipline=3 — All columns are approved and both named parameters are valid; the PostgreSQL replay agrees with the Gateway result.
  • followup_coherence=1 — Although the base shape, date filter, order, and test restriction survive, omitting the required final-status restriction is a material incomplete application of the follow-up.
semantic-distinct-patient-review turn=0 version=20a0c4a6-33c8-439c-8a8d-ea677cdf96bf
advisory composite: 100
  • intent_fidelity=3 — The base emits patient_id for every qualifying laboratory row since 2026-01-01, and the 962-row gold comparison has no missing or extra identifiers.
  • sql_quality=3 — The direct projection, date filter, and ordering are readable and execute successfully.
  • schema_discipline=3 — The SQL stays entirely in the approved fact view with a typed date parameter; independent PostgreSQL evidence agrees.
semantic-distinct-patient-review turn=0 version=4614de91-b8e3-4e73-ab66-fcdf5905453f
advisory composite: 100
  • intent_fidelity=3 — The base emits patient_id for every qualifying laboratory row since 2026-01-01, and the 962-row gold comparison has no missing or extra identifiers.
  • sql_quality=3 — The direct projection, date filter, and ordering are readable and execute successfully.
  • schema_discipline=3 — The SQL stays entirely in the approved fact view with a typed date parameter; independent PostgreSQL evidence agrees.
semantic-distinct-patient-review turn=0 version=7eb46f8b-b5e4-4c94-8502-4eed6cc61d98
advisory composite: 100
  • intent_fidelity=3 — The base emits patient_id for every qualifying laboratory row since 2026-01-01, and the 962-row gold comparison has no missing or extra identifiers.
  • sql_quality=3 — The direct projection, date filter, and ordering are readable and execute successfully.
  • schema_discipline=3 — The SQL stays entirely in the approved fact view with a typed date parameter; independent PostgreSQL evidence agrees.
semantic-distinct-patient-review turn=1 version=5617ad5d-039e-41df-aa5a-dc88d1e17c0a
advisory composite: 100
  • intent_fidelity=3 — COUNT(DISTINCT patient_id) is aliased patient_count exactly as requested, and the scalar gold comparison reports modelValue = referenceValue = 96.
  • sql_quality=3 — The aggregate is minimal and idiomatic, requiring neither GROUP BY nor extra subqueries.
  • schema_discipline=3 — Only approved patient_id and observed_at fields plus the valid date binding are used; the PostgreSQL cross-check passes.
  • followup_coherence=3 — The successor retains the date cohort from the editor and intentionally changes only the output grain from rows to one distinct-patient count.
semantic-distinct-patient-review turn=1 version=56e3e515-7447-4603-b493-84c0b456661f
advisory composite: 100
  • intent_fidelity=3 — COUNT(DISTINCT patient_id) is aliased patient_count exactly as requested, and the scalar gold comparison reports modelValue = referenceValue = 96.
  • sql_quality=3 — The aggregate is minimal and idiomatic, requiring neither GROUP BY nor extra subqueries.
  • schema_discipline=3 — Only approved patient_id and observed_at fields plus the valid date binding are used; the PostgreSQL cross-check passes.
  • followup_coherence=3 — The successor retains the date cohort from the editor and intentionally changes only the output grain from rows to one distinct-patient count.
semantic-distinct-patient-review turn=1 version=93e481a0-652c-4de0-82b5-f1cf236ce7d4
advisory composite: 100
  • intent_fidelity=3 — COUNT(DISTINCT patient_id) is aliased patient_count exactly as requested, and the scalar gold comparison reports modelValue = referenceValue = 96.
  • sql_quality=3 — The aggregate is minimal and idiomatic, requiring neither GROUP BY nor extra subqueries.
  • schema_discipline=3 — Only approved patient_id and observed_at fields plus the valid date binding are used; the PostgreSQL cross-check passes.
  • followup_coherence=3 — The successor retains the date cohort from the editor and intentionally changes only the output grain from rows to one distinct-patient count.
unresolved-parameter-correction turn=0 version=64d4134c-182e-4559-8e1f-a01064bd71dd
advisory composite: 100
  • intent_fidelity=3 — For the underspecified request, the base returns relevant laboratory columns sorted newest first and limits the output to the 100 most recent rows.
  • sql_quality=3 — The query is executable, compact, and uses ORDER BY plus LIMIT coherently for a recent-results request.
  • schema_discipline=3 — Every field is catalogued in analytics.lab_result_fact_v1, and the separate PostgreSQL result comparison passes.
unresolved-parameter-correction turn=0 version=c6d3f714-584b-4903-a47a-466910e7c465
advisory composite: 100
  • intent_fidelity=3 — For the underspecified request, the base returns relevant laboratory columns sorted newest first and limits the output to the 100 most recent rows.
  • sql_quality=3 — The query is executable, compact, and uses ORDER BY plus LIMIT coherently for a recent-results request.
  • schema_discipline=3 — Every field is catalogued in analytics.lab_result_fact_v1, and the separate PostgreSQL result comparison passes.
unresolved-parameter-correction turn=0 version=d8960406-2427-46d9-b20a-ba5f97456cd0
advisory composite: 100
  • intent_fidelity=3 — For the underspecified request, the base returns relevant laboratory columns sorted newest first and limits the output to the 100 most recent rows.
  • sql_quality=3 — The query is executable, compact, and uses ORDER BY plus LIMIT coherently for a recent-results request.
  • schema_discipline=3 — Every field is catalogued in analytics.lab_result_fact_v1, and the separate PostgreSQL result comparison passes.
unresolved-parameter-correction turn=1 version=44187062-3858-4229-a057-248dc7471d13
advisory composite: 100
  • intent_fidelity=3 — The successor resolves the empty binding to test_name without altering the editor query; its 384 observation IDs exactly match the Viral Load reference set.
  • sql_quality=3 — The result is a clean executable SELECT with one valid named parameter and stable ordering.
  • schema_discipline=3 — The approved fact view and string test_name binding are used correctly, and the independent PostgreSQL comparison passes.
  • followup_coherence=3 — Comparison with 08-create-followup.json shows the columns, table, predicate value, and ordering are unchanged apart from the repaired parameter name.
unresolved-parameter-correction turn=1 version=997dd586-be8f-4870-8b4d-8863ea5bf763
advisory composite: 100
  • intent_fidelity=3 — The successor resolves the empty binding to test_name without altering the editor query; its 384 observation IDs exactly match the Viral Load reference set.
  • sql_quality=3 — The result is a clean executable SELECT with one valid named parameter and stable ordering.
  • schema_discipline=3 — The approved fact view and string test_name binding are used correctly, and the independent PostgreSQL comparison passes.
  • followup_coherence=3 — Comparison with 08-create-followup.json shows the columns, table, predicate value, and ordering are unchanged apart from the repaired parameter name.
unresolved-parameter-correction turn=1 version=a1c23973-f4c1-4f30-bca4-0aa6ca9ff658
advisory composite: 100
  • intent_fidelity=3 — The successor resolves the empty binding to test_name without altering the editor query; its 384 observation IDs exactly match the Viral Load reference set.
  • sql_quality=3 — The result is a clean executable SELECT with one valid named parameter and stable ordering.
  • schema_discipline=3 — The approved fact view and string test_name binding are used correctly, and the independent PostgreSQL comparison passes.
  • followup_coherence=3 — Comparison with 08-create-followup.json shows the columns, table, predicate value, and ordering are unchanged apart from the repaired parameter name.