# Nuget Diff Analyzer

> Post-processes dotnet-inspect@0.7.8 -- diff output into a categorised report (breaking / additive / newly-obsolete) with each finding cross-referenced to the MAF obsolete-API registry.

- **Type:** Skill
- **Install:** `agentstack add skill-joslat-maf-doctor-nuget-diff-analyzer`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [joslat](https://agentstack.voostack.com/s/joslat)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [joslat](https://github.com/joslat)
- **Source:** https://github.com/joslat/maf-doctor/tree/main/.github/skills/nuget-diff-analyzer

## Install

```sh
agentstack add skill-joslat-maf-doctor-nuget-diff-analyzer
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# nuget-diff-analyzer — structured NuGet version-diff reports

> **⚡ Prefer the MCP tool.** The `maf-autopilot` MCP server exposes **`MafDiffPackage(packageId, oldVersion, newVersion)`** — it wraps `dotnet-inspect@0.7.8 -- diff`, parses the markdown output into a structured `DiffParseResult` (Breaking / Additive / NewlyObsolete lists), and cross-references each finding against the obsolete-API registry. The procedural walkthrough below is preserved for when you need to run the steps manually.

## Why this exists

Raw `dotnet-inspect diff` output is markdown-pretty but unstructured — the LLM has to re-parse it on every call. The MCP tool does the parsing once and returns structured findings that downstream tools (best-practice reviewer, migration auditor) can consume directly.

## Manual fallback workflow

```bash
# Step 1: emit the raw diff
dnx dotnet-inspect@0.7.8 -y --source https://api.nuget.org/v3/index.json -- diff \
  --package Microsoft.Agents.AI@1.2.0..1.3.0 --source https://api.nuget.org/v3/index.json

# Step 2: read the output. It has the shape:
#   # API Diff: 
#   | Versions | **1.2.0** -> **1.3.0** |
#   | Summary  | N breaking, M additive across K types |
#
#   ## Breaking Changes
#   ### 
#   - Member '...' signature changed: `oldSig` -> `newSig`
#   - Member '...' was removed
#
#   ## Additive Changes
#   ### 
#   - Type '...' was added
#   - Member '...' was added

# Step 3: for each breaking change, look up the registry:
#   MafApiSafety("")
# or browse .github/skills/maf-obsolete-api-registry/registry.yaml
```

## Output categories (what `MafDiffPackage` produces)

| Category         | Origin in diff output                              | Action                              |
|------------------|----------------------------------------------------|-------------------------------------|
| Breaking         | `## Breaking Changes` section                      | Add to migration plan; high risk    |
| Additive         | `## Additive Changes` section                      | Inform future patterns; not urgent  |
| NewlyObsolete    | Any entry whose body contains `[Obsolete...]`      | Inspect; likely a deprecation flag  |

## Pin reminder

**Use `dotnet-inspect@0.7.8` or later.** Earlier versions miss `[Obsolete]` at the overload level — see issue [#316](https://github.com/richlander/dotnet-inspect/issues/316). The pinned dnx invocation in the manual fallback above already reflects this.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [joslat](https://github.com/joslat)
- **Source:** [joslat/maf-doctor](https://github.com/joslat/maf-doctor)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-joslat-maf-doctor-nuget-diff-analyzer
- Seller: https://agentstack.voostack.com/s/joslat
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
