Skip to content
cccskills
FreePublished on GitHub

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.

The English summary is being prepared. Showing the original description.

See how to install

Files included (9)

  • SKILL.md4.7 KB
  • scripts/detect-tool.ps1626 B
  • scripts/detect-tool.sh631 B
  • scripts/find-dll.ps11.7 KB
  • scripts/find-dll.sh1.7 KB
  • scripts/inspect-type.ps11.1 KB
  • scripts/inspect-type.sh1.3 KB
  • scripts/list-types.ps1989 B
  • scripts/list-types.sh1.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

.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

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use when reviewing PRs/diffs/branches/documents for .NET quality, correctness, performance, security, data access, messaging, and observability. Includes adversarial critical-thinking mode for skeptical/cynical review requests. Keywords: code review, review PR, review diff, critical review, cynical review, adversarial review, production readiness, low GC, AOT, security review.

The English summary is being prepared. Showing the original description.

Metalnib/dotnet-episteme-skills12Updated Sep 9, 2026

Use when you need CRAP score and coverage risk analysis to find high-risk code before refactoring or release. Keywords: CRAP score, risk hotspots, cyclomatic complexity, test coverage gaps, coverage threshold.

The English summary is being prepared. Showing the original description.

Metalnib/dotnet-episteme-skills12Updated Sep 9, 2026

Use when reviewing a .NET pull request for breaking changes that may affect other microservice repositories. Detects cross-repo API, DTO, endpoint, EF entity, and NuGet-package breaks, and checks whether a compatible downstream PR already exists. Keywords: cross-repo impact, breaking change, microservice compatibility, downstream break, compatible PR, blast radius review, api compatibility, contract break, dto shape change, endpoint break.

The English summary is being prepared. Showing the original description.

Metalnib/dotnet-episteme-skills12Updated Sep 9, 2026

Use when designing or changing public C#/.NET APIs with compatibility and versioning constraints. Keywords: breaking change, API design, backward compatibility, binary compatibility, deprecation strategy, versioning.

The English summary is being prepared. Showing the original description.

Metalnib/dotnet-episteme-skills12Updated Sep 9, 2026

Use when writing or refactoring modern C# with maintainability and performance standards. Keywords: coding standards, C# best practices, refactor C#, records, pattern matching, async best practices.

The English summary is being prepared. Showing the original description.

Metalnib/dotnet-episteme-skills12Updated Sep 9, 2026

Use when choosing .NET concurrency patterns for async I/O, queues, pipelines, or thread safety. Keywords: async/await, channels, dataflow, Rx, lock contention, producer consumer, parallel processing.

The English summary is being prepared. Showing the original description.

Metalnib/dotnet-episteme-skills12Updated Sep 9, 2026

See all skills by Metalnib

Report a problem with this skill