diff --git a/Directory.Packages.props b/Directory.Packages.props
index 62918f7d65..752bdbe0f8 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -83,6 +83,7 @@
+
diff --git a/specs/002-wam-broker/spec.md b/specs/002-wam-broker/spec.md
new file mode 100644
index 0000000000..60ee74b882
--- /dev/null
+++ b/specs/002-wam-broker/spec.md
@@ -0,0 +1,131 @@
+# Feature Specification: WAM Broker Support for Entra ID Authentication
+
+**Feature Branch**: `dev/automation/wam-broker-support`
+**Created**: 2026-05-20
+**Status**: Draft
+**References**:
+
+- PR [#2884](https://github.com/dotnet/SqlClient/pull/2884) (original POC, closed)
+- PR [#3874](https://github.com/dotnet/SqlClient/pull/3874) (updated POC, closed)
+- ICM 781210079 (Authentication failure on persistent AVD with Conditional Access)
+
+## Problem Statement
+
+Microsoft.Data.SqlClient's `ActiveDirectoryIntegrated` and other Public Client Application (PCA) authentication flows do not pass device information when acquiring tokens. This causes failures on persistent Azure Virtual Desktop (AVD) devices when Conditional Access Policies require device compliance or MFA based on device state.
+
+### Root Cause
+
+MSAL's `AcquireTokenByIntegratedWindowsAuth` does not pass device claims to the identity provider. The Windows Web Account Manager (WAM) broker passes device information (PRT, device compliance state) to Entra ID, satisfying Conditional Access policies.
+
+### MSAL PCA Compliance
+
+Microsoft identity platform requires first-party applications using Public Client Applications to use WAM broker on Windows for compliance. This ensures:
+
+- Device-based Conditional Access policies work correctly
+- Primary Refresh Token (PRT) is leveraged for SSO
+- Device compliance state is included in token requests
+
+## Design
+
+### Target Location
+
+The `ActiveDirectoryAuthenticationProvider` is in `src/Microsoft.Data.SqlClient.Extensions/Azure/src/`. This package targets `net462;netstandard2.0`.
+
+### Platform Support Matrix
+
+| Platform | WAM Broker | Fallback |
+| ---------- | ----------- | ---------- |
+| Windows (.NET Framework 4.6.2+) | ✅ Supported | IWA (legacy) |
+| Windows (.NET 8.0+ via netstandard2.0) | ✅ Supported | System browser |
+| Linux/macOS (.NET via netstandard2.0) | ❌ Not available | System browser / IWA |
+
+### Authentication Modes Covered
+
+| Mode | WAM Broker Behavior |
+| ------ | ------------------- |
+| `ActiveDirectoryInteractive` | Uses WAM for interactive token acquisition on Windows |
+| `ActiveDirectoryIntegrated` | Uses WAM broker to pass device claims (solves CAP issues) |
+| `ActiveDirectoryDeviceCodeFlow` | Uses WAM for device code flow on Windows |
+| `ActiveDirectoryPassword` | Uses WAM for username/password flow on Windows |
+| `ActiveDirectoryDefault` | No change (uses Azure.Identity DefaultAzureCredential) |
+| `ActiveDirectoryManagedIdentity` | No change (server-side, no WAM needed) |
+| `ActiveDirectoryServicePrincipal` | No change (confidential client, no WAM needed) |
+| `ActiveDirectoryWorkloadIdentity` | No change (workload identity, no WAM needed) |
+
+### Architecture Changes
+
+1. **Make class `partial`**: Split `ActiveDirectoryAuthenticationProvider` into platform-specific files
+2. **Add WAM broker**: Configure `BrokerOptions` on `PublicClientApplicationBuilder` on Windows
+3. **Parent window handle**: Provide window handle for WAM dialog (required by WAM on Windows)
+4. **Cross-platform `SetParentActivityOrWindow`**: Replace `#if NETFRAMEWORK`-only `SetIWin32WindowFunc` with cross-platform `Func