Migrates .NET projects from Newtonsoft.Json to System.Text.Json, updating package references, code files, and handling API differences. Use when asked to "migrate Newtonsoft", "switch to System.Text.Json", "replace Newtonsoft.Json", or "upgrade JSON library". Triggers for .csproj/.vbproj files referencing Newtonsoft.Json and .cs/.vb files using Newtonsoft.Json namespaces.
Install
npx skills add microsoft/upgrade-agent-plugins --skill migrating-newtonsoft-to-system-text-jsonnpx skills add microsoft/upgrade-agent-plugins --skill migrating-newtonsoft-to-system-text-json -a claude-code -gnpx skills add microsoft/upgrade-agent-plugins --skill migrating-newtonsoft-to-system-text-json -a codex -ggemini skills install https://github.com/microsoft/upgrade-agent-plugins.git --path plugins/upgrade-agent/upgrade/dotnet/skills/lazy/libraries/migrating-newtonsoft-to-system-text-jsongh skill install microsoft/upgrade-agent-plugins migrating-newtonsoft-to-system-text-jsongit clone --depth 1 https://github.com/microsoft/upgrade-agent-plugins /tmp/microsoft__upgrade-agent-plugins
mkdir -p ~/.claude/skills ~/.agents/skills
cp -R /tmp/microsoft__upgrade-agent-plugins/plugins/upgrade-agent/upgrade/dotnet/skills/lazy/libraries/migrating-newtonsoft-to-system-text-json ~/.claude/skills/migrating-newtonsoft-to-system-text-json # Claude Code
cp -R /tmp/microsoft__upgrade-agent-plugins/plugins/upgrade-agent/upgrade/dotnet/skills/lazy/libraries/migrating-newtonsoft-to-system-text-json ~/.agents/skills/migrating-newtonsoft-to-system-text-json # Codex, Cursor, Gemini CLI, Copilot, OpenCode