diff --git a/.agents/skills/dotnet-inspect/SKILL.md b/.agents/skills/dotnet-inspect/SKILL.md index 85c8009..7a622c1 100644 --- a/.agents/skills/dotnet-inspect/SKILL.md +++ b/.agents/skills/dotnet-inspect/SKILL.md @@ -1,6 +1,6 @@ --- name: dotnet-inspect -version: 0.10.2 +version: 0.10.3 description: Find evidence instead of guessing for .NET packages, platform libraries, local assemblies, APIs, dependencies, SourceLink/symbol provenance, and version-to-version API changes. --- @@ -19,8 +19,8 @@ dnx dotnet-inspect -y -- | Goal | Start with | Drill in | | ---- | ---------- | -------- | | Find the right API | `find Pattern` | `type Type --package Foo`, then `member Type --package Foo`. | -| Inspect a package | `package Foo` | Add `-S Signals`, `-S Manifest`, or `-S "Library Files"`. | -| Inspect a library or assembly | `library Foo` or `library path/to.dll` | Add `--platform`, `--package`, or `-S Signals` when source matters. | +| Inspect a package | `package Foo` | Add `-S Signals`, `-S Manifest`, `-S "Library Files"`, or `--library` to inspect the package DLL. | +| Inspect a library or assembly | `library Foo` or `library path/to.dll` | Add `--platform`, `--package`, `-S Signals` when source matters, or `-S Integrations` when ecosystem support matters. | | Inspect a type | `type Type --package Foo` | Add `--all` for non-public, hidden, and extra members. | | Inspect members and overloads | `member Type --package Foo -m Name --show-index` | Use `Name:N` selectors for a specific overload. | | Compare API versions | `diff --package Foo@old..new --breaking` | Use `--additive` for new APIs or `-t Type` to narrow. | @@ -57,7 +57,7 @@ dnx dotnet-inspect -y -- library System.Text.Json -S "Async*" --count dnx dotnet-inspect -y -- library System.Text.Json -S "Async*" --rows -n 10 ``` -Bare `-S` renders a curated high-density view; `-S All` renders an exhaustive document. Sections marked opt-in must be selected explicitly with `-S`. Focused library/member `-S Section` output keeps a compact context row before the selected section. +Bare `-S` renders `@Default`, a curated high-density view; `-S @All` renders an exhaustive document. Categories such as `@Integrations` expand to related sections. Sections marked opt-in must be selected explicitly with `-S`. Focused library/member `-S Section` output keeps a compact context row before the selected section. ## General tips @@ -83,7 +83,7 @@ dnx dotnet-inspect -y -- extensions HttpClient --reachable dnx dotnet-inspect -y -- implements IJsonTypeInfoResolver --package System.Text.Json ``` -Default type output is a compact type shape with inheritance, interfaces, logical member groups, and overload counts. Narrow member-name views render overload rows with full signatures and stable `Name:N` selectors. Relationship scopes include installed platform libraries by default, `--package Foo`, curated `--aspnetcore`/`--extensions`, and `--project ./App.csproj`. The `extensions` command reports extension methods and C# extension properties. Add `--mermaid` to `depends` when a diagram is more useful than a table. +Default type output is a compact type shape with inheritance, interfaces, logical member groups, and overload counts. For single-type output, `-v:n` and `-v:d` grow the tree to show overload leaves; use `--markdown -v:q` for compact Markdown section output. Narrow member-name views render overload rows with full signatures and stable `Name:N` selectors. Relationship scopes include installed platform libraries by default, `--package Foo`, curated `--aspnetcore`/`--extensions`, and `--project ./App.csproj`. The `extensions` command reports extension methods and C# extension properties. Add `--mermaid` to `depends` when a diagram is more useful than a table. ## Upgrade and compatibility workflow @@ -123,11 +123,16 @@ Use `package` for NuGet package structure and registry-backed signals. Use `libr ```bash dnx dotnet-inspect -y -- package System.Text.Json -S Signals dnx dotnet-inspect -y -- package System.Text.Json -S "Library Files" +dnx dotnet-inspect -y -- package Microsoft.Extensions.Logging.Abstractions --library -S Integrations dnx dotnet-inspect -y -- library System.Text.Json -S Signals +dnx dotnet-inspect -y -- library Microsoft.Extensions.Logging.Abstractions -S Integrations +dnx dotnet-inspect -y -- library System.Diagnostics.DiagnosticSource -S OpenTelemetry ``` `Signals` reports observations, not a safety or trust verdict. Library Signals include SourceLink presence, SourceLink availability, determinism, trim/AOT markers, async kind (`Runtime`, `State machine`, `Mixed`, or `None`), memory-safety metadata, unsafe/PInvoke observations, and direct references. Package Signals include TFMs, manifest, readme/license, dependencies, package signature, local provenance, vulnerabilities, package age, dependency vulnerability/deprecation counts, and dependency age. +Use `package Foo --library` to inspect the package's primary DLL when it is unambiguous; add a DLL name when a package contains multiple libraries. Use the `Integrations` library section as a roll-up of detected ecosystem support, then select a focused integration section by name. Integration sections currently include AI, Aspire, Dependency Injection, Logging, Options, Hosting, Health Checks, HTTP Client, and OpenTelemetry. Focused integration sections list package-owned actionable types or starter APIs, not raw assembly references. Use the `OpenTelemetry` library section for detailed OpenTelemetry types such as `ActivitySource`, `DiagnosticSource`, and `System.Diagnostics.Metrics` types. + `library X -S Signals` resolves SourceLink by acquiring a missing PDB. Per-source-file reachability is opt-in: add `-S "SourceLink Availability"` and `-S "SourceLink Missing Files"` for HTTP HEAD checks, or `-S "SourceLink Integrity"` to download source files and compare checksums. For .NET tool packages, inspect the tool DLL through the package context, for example `library dotnet-inspect.dll --package dotnet-inspect@ -S "SourceLink Integrity"`. Tool v2 pointer/RID packages resolve to their inspectable framework-dependent payload. For BCL/runtime-pack assemblies that are misleading as standalone packages, prefer `library --platform Lib --version ` or a direct DLL path. diff --git a/apm.lock.yaml b/apm.lock.yaml index a84f2d1..22cec0d 100644 --- a/apm.lock.yaml +++ b/apm.lock.yaml @@ -1,5 +1,5 @@ lockfile_version: '1' -generated_at: '2026-06-10T16:37:19.151326+00:00' +generated_at: '2026-06-11T16:57:10.174720+00:00' apm_version: 0.14.0 dependencies: - repo_url: Faithlife/RepoConventions @@ -13,10 +13,10 @@ dependencies: content_hash: sha256:6e4dc45d96d7adc8f1d3e3300d9ee90eef9c2d0231ea83ad86fed64fca105034 - repo_url: richlander/dotnet-inspect host: github.com - resolved_commit: 4e5803dcb12c98f45f1818115406bf911aa23006 + resolved_commit: 07f5afd4cf4bd804267421c140fafac1bea6c6f2 virtual_path: skills/dotnet-inspect is_virtual: true package_type: claude_skill deployed_files: - .agents/skills/dotnet-inspect - content_hash: sha256:b3710897b28dce3bb6bbb1bb153bd64e9ff1ee67ee946feeabfdb9e59a77f77a + content_hash: sha256:a7fe1be8c0573d30774ce15908804e8cf8823747b43d9598de4fc4890a18072c