{"case_id": "gap-weight-based-dosing-calc", "query": "Tinh lieu paracetamol duong uong cho tre 20kg", "status": "known_gap", "measured_2026_08_25": "decision=clarify, asks for age even after weight+route already given", "expected_if_fixed": "should compute a weight-based dose range using rag/calculators.py's body_surface_area_m2() or an mg/kg calculation, not re-ask for a field already unnecessary once weight is known", "code_pointer": "apps/ai-service/rag/calculators.py body_surface_area_m2() exists but is never called from agent.py's live routing path, only from its own unit test (confirmed by rag_pipeline_audit_2026-08-10 and re-verified live 2026-08-25)", "origin": "manual_gap_audit"} {"case_id": "gap-multi-drug-comparison", "query": "So sanh Paracetamol va Ibuprofen ve chi dinh", "status": "known_gap", "measured_2026_08_25": "no dedicated code path found for comparing 2+ drugs side by side; grep of rag/*.py for so_sanh/compare/multi_drug found no matching implementation (only unrelated 'compare' usages: entailment text-matching, did-you-mean candidate matching)", "expected_if_fixed": "a synthesis path that retrieves the same section from 2+ resolved drugs and presents them side by side, not just the existing 2-drug _interaction path (which only handles drug-drug interactions, not general attribute comparison)", "code_pointer": "apps/ai-service/rag/agent.py _interaction (2-drug interaction only, not general comparison); no comparison-specific turn_type exists in rag/understanding.py's QueryFrame", "origin": "manual_gap_audit"}