# ADR 004: Select SMS Providers With Strategy ## Status Accepted. ## Context The project supports Kavenegar, SMS.ir, and local debug delivery. ## Decision Expose a stable `SmsClient` port and choose the concrete provider through a small factory based on `SMS_PROVIDER`. ## Consequences Adding a new SMS provider does not change the auth use case or worker flow. Tests can mock providers without network access.