Skip to content
Development
Skill

/dotnet-techne-inspect

Use when you need to inspect NuGet package APIs, list public types, or decompile method/property signatures. Keywords: inspect package API, list types, decompile type, method signatures, NuGet interface.

From plugin
dotnet-episteme-skills
1214 skills13 agents3 commands3 hooks
+1
Install
$ npx -y skills add Metalnib/dotnet-episteme-skills --skill dotnet-techne-inspect --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/dotnet-techne-inspect

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when you need to inspect NuGet package APIs, list public types, or decompile method/property signatures. Keywords: inspect package API, list types, decompile type, method signatures, NuGet interface.

SKILL.md

dotnet-techne-inspect.SKILL.md
name: dotnet-techne-inspect
description: "Use when you need to inspect NuGet package APIs, list public types, or decompile method/property signatures. Keywords: inspect package API, list types, decompile type, method signatures, NuGet interface."
disable-model-invocation: false
user-invocable: true
license: MIT
compatibility: Requires dotnet-inspect OR ilspycmd global tool. Works with bash (Linux/macOS) or PowerShell (Windows).
metadata:
  author: Metalnib
  version: "1.2.0"
  trigger_keywords:
    - inspect package api
    - list types
    - decompile type
    - method signatures
    - nuget interface

.NET NuGet Package Inspector

Inspect public APIs of .NET NuGet packages without writing throwaway C# code. Lists types (classes, interfaces, enums) and decompiles full type definitions with method signatures, properties, and attributes.

Requirements

One of these .NET global tools must be installed:

  • **`dotnet-inspect`** (preferred) — .NET 10+ SDK required
  dotnet tool install -g dotnet-inspect
  • **`ilspycmd`** (fallback) — .NET 8+ SDK required
  dotnet tool install -g ilspycmd

The NuGet package you want to inspect must be restored locally (present in `~/.nuget/packages/`). If not, run `dotnet restore` in a project that references it.

When to use this skill

Use when the user asks to:

  • Inspect a NuGet package's public API
  • List types/interfaces/classes in a .NET package
  • View method signatures or properties of a NuGet type
  • Understand what a .NET client library provides
  • "What does IFooApi look like?" for a referenced NuGet

Workflow

Step 0: Detect available tool

**Always run this first** to determine which backend to use.

**Bash (Linux/macOS):**

./scripts/detect-tool.sh

**PowerShell (Windows):**

.\scripts\detect-tool.ps1

Output: `dotnet-inspect` or `ilspycmd`. If neither is found, the script prints install instructions and exits with error.

Step 1: List public types in a package

**Bash:**

./scripts/list-types.sh <package-name> <version> [tfm]
# Example:
./scripts/list-types.sh PrimeLabs.Service.Assets.Client 1.1.1
./scripts/list-types.sh Refit 8.0.0 net8.0

**PowerShell:**

.\scripts\list-types.ps1 -PackageName <name> -Version <ver> [-Tfm <tfm>]
# Example:
.\scripts\list-types.ps1 -PackageName PrimeLabs.Service.Assets.Client -Version 1.1.1

The `tfm` parameter (target framework moniker) defaults to auto-detection (picks the highest available). Specify it explicitly if the package supports multiple frameworks (e.g., `net8.0`, `net6.0`, `netstandard2.0`).

Step 2: Inspect a specific type

**Bash:**

./scripts/inspect-type.sh <full-type-name> <package-name> <version> [tfm]
# Example:
./scripts/inspect-type.sh PrimeLabs.Service.Assets.Client.IAssetsApi PrimeLabs.Service.Assets.Client 1.1.1
./scripts/inspect-type.sh Refit.HttpMethodAttribute Refit 8.0.0

**PowerShell:**

.\scripts\inspect-type.ps1 -TypeName <full-type-name> -PackageName <name> -Version <ver> [-Tfm <tfm>]
# Example:
.\scripts\inspect-type.ps1 -TypeName PrimeLabs.Service.Assets.Client.IAssetsApi -PackageName PrimeLabs.Service.Assets.Client -Version 1.1.1

Helper: Find DLL path (ilspycmd only)

If you need the raw DLL path for manual ilspycmd usage:

**Bash:**

./scripts/find-dll.sh <package-name> <version> [tfm]

**PowerShell:**

.\scripts\find-dll.ps1 -PackageName <name> -Version <ver> [-Tfm <tfm>]

Quick Reference

# === Full inspection workflow (Bash) ===
./scripts/detect-tool.sh                                    # 1. Which tool?
./scripts/list-types.sh MyPackage 2.0.0                     # 2. What types?
./scripts/inspect-type.sh MyNamespace.IMyApi MyPackage 2.0.0 # 3. Full API

# === Quick one-liner examples ===
./scripts/list-types.sh Refit 8.0.0
./scripts/inspect-type.sh Refit.IRequestBuilder Refit 8.0.0
./scripts/find-dll.sh Newtonsoft.Json 13.0.3 net6.0
# === Full inspection workflow (PowerShell) ===
.\scripts\detect-tool.ps1
.\scripts\list-types.ps1 -PackageName MyPackage -Version 2.0.0
.\scripts\inspect-type.ps1 -TypeName MyNamespace.IMyApi -PackageName MyPackage -Version 2.0.0

Notes

  • **`dotnet-inspect`** works by package name directly — no DLL path resolution needed
  • **`ilspycmd`** requires the DLL path; the scripts resolve it automatically from the NuGet cache (`~/.nuget/packages/`)
  • If a package isn't in the local cache, run `dotnet restore` in a project that references it first
  • The `list-types` output includes the type kind (Class, Interface, Struct, Enum) for easy filtering
  • The `inspect-type` output is decompiled C# source — includes attributes, method signatures, properties, and inheritance
Read more
Ships withdotnet-episteme-skills

DotNet Episteme Skills - a curated, manual-first .NET AI skills library rooted in systematic knowledge (episteme) and shaped by disciplined craft (techne), designed for engineers who prioritise precision over hype.

Get the whole plugin

Other skills on dotnet-episteme-skills.