diff --git a/.agents/skills/dotnet-inspect/SKILL.md b/.agents/skills/dotnet-inspect/SKILL.md index 2f9bef7..ec6fd2b 100644 --- a/.agents/skills/dotnet-inspect/SKILL.md +++ b/.agents/skills/dotnet-inspect/SKILL.md @@ -1,6 +1,6 @@ --- name: dotnet-inspect -version: 0.26.0 +version: 0.27.0 description: Find and share evidence instead of guessing about .NET packages, libraries, APIs, dependencies, source, performance, and version changes. --- @@ -18,6 +18,7 @@ target and let the router choose. Otherwise, enter the matching space directly. | Goal | Command | | ---- | ------- | +| Discover an installed capability | When you know the task but not the command, key, or section, run `explain ` to similarity-search installed capabilities. For example, run `explain literal`, copy the result's `Explain` path into `explain `, then follow its production binding: `package query Microsoft.Azure.SignalR --where "library-literal=https://" --tfm net8.0 -S "Literal Strings"`. Use `-D` or `-Q` directly when you already know the route. | | Discover or inspect a package | `package query Foo` discovers an exact package ID; use `package query 'Foo.*'` for a literal package-ID prefix. Then use `package ` to inspect the known package. | | Discover an API symbol | Without an explicit scope, `find` searches installed .NET Runtime, ASP.NET Core, and .NET Standard platform populations, including Microsoft.Extensions assemblies shipped in the framework populations. Try `find JsonSerializer -n 5 --table`, `find ControllerBase -n 5 --table`, or `find OptionsBuilder -n 5 --table`. Package APIs enter scope through explicit `--package Foo@version`, a restored `--project path/to/project`, or `--package-prefix PREFIX` with a type/member pattern: `find IChatClient --package Microsoft.Extensions.AI.Abstractions -n 5 --table` returns `Microsoft.Extensions.AI.IChatClient`. Use `package query Pattern` to discover package IDs; add `--members` for member names. Explicit Package or Platform searches with `--tfm` preserve Find's Markdown, tips, tables, root-array JSON, exact implementation asset, and compatible TFM. | | Inspect a type | `type Type --package Foo`; add `--all` for non-public/hidden members. Select `-S Source` for authored-first source with explicit fallback context; `PDB Source` and `Decompiled Source` remain provider-specific views. | @@ -30,7 +31,7 @@ target and let the router choose. Otherwise, enter the matching space directly. | Compare APIs or method bodies | `diff --package Foo@old..new --breaking` (`--additive` new APIs; `--alloc-regressions` for allocation regressions; `--implementation` for the exact `Implementation Diff` section). Single-Library API Diff supports complete Content with unprojected `--json` or the complete service value with `--envelope`; its Share is currently non-projectable. Use `type` or `member ... --match --envelope` when one API coordinate's complete correspondence outcome and diagnostics are the question; ordered match endpoints are also non-projectable. `match Type.MethodA Type.MethodB --package Foo --body` adds C#/IL body differences to the structural result; `match Type.Method --similar --package Foo` ranks structural candidates for discovery. | | Trace API evolution | `diff --history --package Foo@old..new --type Type --members --at all`; omit `--at` for full-population evaluation, repeat it for explicit checkpoints, use `--max-probes` for adaptive bisection, add `--sample-percent P` for a deterministic population-relative survey with an optional `--max-probes` cap, or use `--major-versions` for one representative per major. Major-version API history uses the first stable version, with the latest prerelease fallback for preview-only majors; Analysis history uses the latest admitted version per major. | | Inspect packages and ecosystems | `package Foo` inspects a known exact package ID; use `package Foo --version 1.2.3` to verify an exact version, `package Foo --versions -n 1` for the newest listed version row, or `package Foo@latest --versions` to force a fresh latest-version check. Use `-D` to discover sections, `-S "Package license files"` to list shipped license documents, and `-S "Signals,Audit: Findings"` to audit text-bearing files and SourceLink mappings. `package activity --ecosystem aspire` scans the named ecosystem's exact package set over the previous 42 days; add `--security-only`, paired exact `--from`/`--through` UTC timestamps, or complete Content `--json`; use `--envelope` for the full service value. Load `skill private-feeds` for custom/authenticated sources. | -| Query packages | `package query Foo` selects the latest eligible listed version; use `'Foo.*'` for a literal package-ID prefix. The closed nuspec license values are `any`, `MIT`, and `OSMF`; use them with `--where` and `--nuspec-only` to avoid opening archives. Add `--where "library-literal=TEXT" --tfm net10.0` to AND-compose exact decoded-`ldstr` qualification with ordinary terms, then select `-S "Literal Strings"` to itemize physical matches with their Library, Method Token, IL Offset, and complete decoded Literal. The Product planner authors `library-target` from `--tfm`; metadata-expensive queries admit at most five candidates. Final Results retain typed selected-library context, exact Root reopening, and complete occurrences. `-n` and `--rows` select package Results, not occurrences. `--envelope` retains complete `package-query` Content and diagnostics, but Package Query Share is currently non-projectable. | +| Query packages | `package query Foo` selects the latest eligible listed version; use `'Foo.*'` for a literal package-ID prefix. The closed nuspec license values are `any`, `MIT`, and `OSMF`; use them with `--where` and `--nuspec-only` to avoid opening archives. Use `explain ` to inspect a discovered facet's operators and relationships before composing it with `--where`. The Product planner authors `library-target` from `--tfm`; metadata-expensive queries admit at most five candidates. Final Results retain typed selected-library context, exact Root reopening, and complete occurrences. `-n` and `--rows` select package Results, not occurrences. `--envelope` retains complete `package-query` Content and diagnostics, but Package Query Share is currently non-projectable. | | Inspect a Workspace | `workspace --package Foo@version --tfm net10.0`; repeat `--package` to compose ordered Package occurrences, then add inert top-level intent with `--register-library PACKAGE@VERSION/ASSEMBLY@ASSEMBLY_VERSION`, `--register-package-prefix PREFIX`, or `--register-ecosystem ID`. Filter the typed inventory with repeatable `--kind`; `-n` and `--rows` select complete inventory entries after that filter, while `--lines` explicitly selects rendered lines. Restore a current-format canonical packet with `--packet PACKET`; Workspace Definitions realizes its complete context and retained Navigation state before inventory. Exact Package duplicates coalesce; packages without compile assemblies remain members. Use `--verbose` for Package producer/target details and `--share packet` or `--share url` only on top-level inventory. Add `--active-package N` on direct construction for structural hierarchy, Library asset IDs, Type/Member inventory, lenses, and diagnostics. Use `--root-request TOKEN` instead to reopen the exact Root a `package query --where "library-literal=..."` result names; it is refused rather than approximated by package id and version. | | Edit a portable Workspace | Use `workspace component list --packet "$w"` to obtain canonical paths. Then use `workspace package add PACKAGE@VERSION --packet "$w"`, `workspace package update packages/ID@VERSION/TFM/RID --packet "$w" --version NEW`, or `workspace package remove packages/ID@VERSION/TFM/RID --packet "$w"`. Edits emit a new packet by default; add and update can select a context or TFM as supported, and update can emit `--json --envelope`. Use `workspace packet encode` or `workspace packet decode` for packet conversion. | | Discover or inspect a library | `library Foo` or `library path/to.dll` inspects a known source; use `library query ./bin --where "references=System.Text.Json"` or `library query --platform runtime ...` for Library-grain discovery. Use `-D` to discover sections, `-D --details` to add structural format capabilities, `-S "Library Metrics"` for a whole-library structural report, and `-S "Unsafe Members"` for standalone unsafe evidence. Exact Library `--count` counts public Type declarations; `type Type --library path/to.dll --count` counts Members. Load `skill metadata` for raw ECMA-335 tables/heaps. | diff --git a/apm.lock.yaml b/apm.lock.yaml index e16b5e0..497b2e0 100644 --- a/apm.lock.yaml +++ b/apm.lock.yaml @@ -1,5 +1,5 @@ lockfile_version: '1' -generated_at: '2026-09-24T17:52:50.556546+00:00' +generated_at: '2026-09-28T20:09:04.625156+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: a2cecf7dcbf36f1f76f9549d244afa8ac808a5a6 + resolved_commit: 915a007588db791df1f0e8d4084d962dd5cf9ab0 virtual_path: skills/dotnet-inspect is_virtual: true package_type: claude_skill deployed_files: - .agents/skills/dotnet-inspect - content_hash: sha256:13bb04774bb58f4c31735cc1df0ebddd8b474630f56674819da2952563edb756 + content_hash: sha256:abaa7852df0d4ecd64d09938a45daad2c7f71a35e9b5ccba2431216297deddec