What problem does it solve?
Migrating serializers (e.g., Newtonsoft to System.Text.Json) or changing naming policies can silently break backwards compatibility in JSON APIs. This Skill detects behavioral differences by snapshotting the full pipeline—API submission, queue processing, Elasticsearch storage, and API responses—on two branches and diffing the results.
Core Features & Use Cases
- Branch Comparison Audits: Runs a PowerShell script against a locally running Exceptionless instance on each branch, capturing request.json, elastic.json, and response.json per scenario for diffing.
- Casing and Edge-Case Scenarios: Submits events with snake_case, camelCase, PascalCase, and mixed casing, plus special characters, numeric edge cases, null/empty values, and varied date formats.
- Difference Categorization and Fixes: Classifies diffs by severity (casing binding failures, date parsing expansion, numeric precision) and guides writing targeted unit tests and serializer fixes.
- Use Case: When migrating from Newtonsoft to System.Text.Json, run the audit on main and the feature branch, diff the outputs, and verify that payloads like PascalCase ReferenceId still bind correctly end-to-end.
Quick Start
Run the serialization audit on both the main and feature branches with the audit-api-surface.ps1 script, then diff the audit-output directories to find serialization differences.