Expert knows the full eras2_production schema cold: - All PKs, FKs, column names verified from DESCRIBE - Junction tables: objektkunde (kunden↔objekte), objektadressen, kundenadressen - Exact JOIN patterns baked into prompt - No DESCRIBE/SHOW at runtime — plan once, execute - Domain language responses (not SQL dumps) Simplified ExpertNode.execute(): - Removed iterative DESCRIBE→re-plan loop - Single plan+execute pass (schema is known) - Faster: 1 LLM call for plan instead of 2-3 Domain mastery test (eras_domain.md): 38/38 - Customer overview, junction table JOINs, full hierarchy traversal - Address lookup, Verbrauchsdaten, domain language, no DESCRIBE check Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.3 KiB
2.3 KiB
Eras Domain Mastery
Tests that the expert knows the schema cold — no DESCRIBE at runtime, no SQL errors, domain-correct responses. The expert is a Heizkostenabrechnung specialist, not a SQL explorer.
Setup
- clear history
Steps
1. Customer overview
- send: zeig mir die ersten 5 Kunden
- expect_trace: has tool_call
- expect_response: not contains "Unknown column" or "1054" or "error" or "Error"
- expect_response: length > 20
2. Objekte per Kunde (junction table)
- send: welcher Kunde hat die meisten Objekte?
- expect_trace: has tool_call
- expect_response: not contains "Unknown column" or "1054" or "error" or "Error"
- expect_response: length > 20
3. Nutzeinheiten in an Objekt
- send: wie viele Nutzeinheiten hat Objekt 4?
- expect_trace: has tool_call
- expect_response: not contains "Unknown column" or "1054" or "error" or "Error"
- expect_response: length > 5
4. Geraete count per Objekt
- send: welches Objekt hat die meisten Geraete?
- expect_trace: has tool_call
- expect_response: not contains "Unknown column" or "1054" or "error" or "Error"
- expect_response: length > 20
5. Full hierarchy traversal (4 tables)
- send: zeig mir alle Nutzer von Kunde 2
- expect_trace: has tool_call
- expect_response: not contains "Unknown column" or "1054" or "error" or "Error"
- expect_response: length > 10
6. Address lookup via junction
- send: was ist die Adresse von Objekt 4?
- expect_trace: has tool_call
- expect_response: not contains "Unknown column" or "1054" or "error" or "Error"
- expect_response: length > 10
7. Verbrauchsdaten query
- send: zeig mir die letzten 5 Verbrauchswerte von Geraet 100
- expect_trace: has tool_call
- expect_response: not contains "Unknown column" or "1054" or "error" or "Error"
- expect_response: length > 10
8. Domain language response (not SQL dump)
- send: gib mir eine Zusammenfassung von Kunde 103
- expect_trace: has tool_call
- expect_response: not contains "SELECT" or "JOIN" or "FROM"
- expect_response: length > 30
9. Expert does NOT describe at runtime
- send: wie viele Geraete hat Kunde 63?
- expect_trace: has tool_call
- expect_response: not contains "Unknown column" or "1054" or "error" or "Error"
- expect_response: not contains "DESCRIBE" or "describe"
- expect_response: length > 5