## MODIFIED Requirements ### Requirement: Telecom domain classification covers SIM and prepaid recharge scenarios The DomainClassifier SHALL classify complaints about SIM card purchase, SIM activation failure, prepaid mobile recharge not reflected, and mobile number portability as domain `telecom` with `low_confidence=False` when a trained checkpoint exists. The synthetic supplement dataset SHALL include at least 10 sentence templates specifically covering SIM activation failure and prepaid recharge failure scenarios in addition to the existing 20 templates. The `supplement_per_class` training parameter SHALL default to 5,000 (increased from 2,000) to reduce the imbalance ratio between CFPB-sourced banking rows and synthetic telecom rows. #### Scenario: BSNL SIM activation complaint classified as telecom - **GIVEN** the complaint text is "I bought a new sim card from BSNL for rs 450 on 11th january 2026. but sim card is not yet activated." - **WHEN** `classify(text)` is called with a retrained checkpoint - **THEN** `result.domain == "telecom"` and `result.low_confidence == False` #### Scenario: Airtel prepaid recharge not reflected - **GIVEN** the complaint text contains "recharged for 5450 rupee in airtel for 2 years" and "recharge was successful but it's not reflected" - **WHEN** `classify(text)` is called with a retrained checkpoint - **THEN** `result.domain == "telecom"` #### Scenario: Banking complaint still classified correctly - **GIVEN** the complaint text is "Axis bank charged 1000 rupee for late fee of not paying loan" - **WHEN** `classify(text)` is called - **THEN** `result.domain == "banking"` #### Scenario: Low-confidence result triggers agent clarification - **GIVEN** the classifier returns `low_confidence=True` for any domain - **WHEN** the agent processes the classification result - **THEN** the agent asks the user a clarifying domain question before proceeding with entity extraction