Perform strict lab-only parity validation between a Microsoft Sentinel Analytic Rule and its migrated Defender XDR Custom Detection.
81%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Use this skill only in a non-production lab after conversion, structural validation, deployment, and mock-data review have succeeded.
Parity is strict. For every selected rule, require:
Any mismatch fails migration validation. Do not silently accept differences caused by schedule, lookback, grouping, suppression, thresholds, or entity mapping. Align those settings or report an explicit platform limitation.
complete-alert-parity or abort-alert-parity; both force every
test rule back to disabled.For internal solution qualification, deploy every reviewed AR/CD pair in the current approved package selection disabled, then prepare one fixture per selected detection. A partial package's selected list is authoritative; do not add excluded detections or let their failures block parity for selected pairs. Retain the plan hash and selected paths with parity evidence, and describe the result as selected-subset parity only. Full-inventory parity is not proven by a partial run.
{
"fixtures": [
{
"detection": "Detection.yaml",
"contract": "contracts/stream.json",
"payload": "mocks/detection.json",
"scenarioMarker": "unique-detection-marker",
"expectedMatchKeys": ["expected-malicious-key"]
}
]
}Paths are resolved relative to the batch-plan file. The plan must cover every selected converted detection exactly once.
Start the batch:
sentinel-xdr-migration start-alert-parity-batch `
--solution "<solution-path>" `
--workspace-resource-id "<workspace-arm-id>" `
--plan "<qualification-plan.json>"The command verifies all ARs and CDs are disabled, enables all reviewed pairs, ingests every fixture, and emits a separate capture plan and expected-key set for each detection. If enablement or any ingestion fails, it disables all rules before returning the failure.
sentinel-xdr-migration start-alert-parity `
--solution "<solution-path>" `
--workspace-resource-id "<workspace-arm-id>" `
--contract "<ingestion-contract>" `
--payload "<reviewed-mock-json>" `
--scenario-marker "<unique-marker>" `
--expected-match-key "<expected-malicious-key>" `
--detection "<Detection.yaml>"Use the targeted command for troubleshooting a subset or rerunning one detection. It:
azure-monitor-logs-ingestion;Solutions/<solution>/Logs/sentinel-xdr-migration/<run-id>/alert-parity-state.json; andPrefer suitable tools advertised by the official Sentinel Triage MCP for both
capture queries. Fall back to Log Analytics CLI/API for SecurityAlert and
Microsoft Graph for AlertInfo/AlertEvidence only for provider-level
failures. A genuine KQL error is not a reason to change providers.
Normalize each platform result into:
{
"results": [
{
"detection": "Detection.yaml",
"analyticRule": {
"alerts": [
{
"matchKey": "stable-event-or-correlation-key",
"severity": "high",
"tactics": ["Exfiltration"],
"entities": {},
"evidence": {}
}
]
},
"customDetection": {
"alerts": []
}
}
]
}Platform alert IDs are not comparable. matchKey must be derived from stable
mock-event or aggregation keys. Normalize entity names and evidence fields to
the same semantic shape before comparison; never remove a differing value to
manufacture parity.
The declared expected match-key set is authoritative. If both platforms alert
on the same benign control key, parity still fails. Repeat
--expected-match-key when multiple malicious alerts are expected; when it is
omitted, the scenario marker is the sole expected key.
sentinel-xdr-migration complete-alert-parity `
--solution "<solution-path>" `
--results "<normalized-results.json>"This writes alert-parity-report.json and disables all selected rules even
when parsing or comparison fails.
If capture cannot be completed:
sentinel-xdr-migration abort-alert-parity --solution "<solution-path>"Azure/Azure-Sentinel
2985095
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.