api-versioning
API versioning strategies for ASP.NET Core. Covers Asp.Versioning library, URL segment, header, and query string strategies,…
Report how many tokens the Roslyn Navigator MCP server has saved, across one repository or all of them, with a per-tool leaderboard, adoption rate, and the methodology behind the number. Use when: "token report", "token savings", "how many tokens saved", "is the MCP worth it",
Claude Code
$ npx -y skills add codewithmukesh/dotnet-claude-kit --skill token-report --agent claude-code
Codex
$ npx skills add codewithmukesh/dotnet-claude-kit --skill token-report -a codex -y
Cursor
$ npx skills add codewithmukesh/dotnet-claude-kit --skill token-report -a cursor -y
Gemini CLI
$ npx skills add codewithmukesh/dotnet-claude-kit --skill token-report -a gemini-cli -y
GitHub Copilot
$ npx skills add codewithmukesh/dotnet-claude-kit --skill token-report -a github-copilot -y
OpenCode
$ npx skills add codewithmukesh/dotnet-claude-kit --skill token-report -a opencode -y
Windsurf
$ npx skills add codewithmukesh/dotnet-claude-kit --skill token-report -a windsurf -y
name: token-report description: > Report how many tokens the Roslyn Navigator MCP server has saved, across one repository or all of them, with a per-tool leaderboard, adoption rate, and the methodology behind the number. Use when: "token report", "token savings", "how many tokens saved", "is the MCP worth it", "MCP usage", "tool leaderboard", "adoption rate", "which MCP tools are used", "prove the savings".
Reports what the Roslyn MCP server has actually saved, measured rather than asserted. Two surfaces:
| Scope | Surface | Use when | |---|---|---| | This repository, mid-session | `get_token_savings` MCP tool | "how are we doing here?" | | All repositories, aggregate | `CWM.RoslynNavigator.Stats` CLI | producing a public number |
**Collection is opt-in and off by default.** Nothing was recorded unless the server was started with it enabled:
CWM_ROSLYN_TELEMETRY=on cwm-roslyn-navigator --solution MySolution.sln
Nothing is transmitted. Records are written under `%LOCALAPPDATA%/cwm-roslyn-navigator/` (or the XDG equivalent), outside the repository. Delete that directory to erase everything.
Adoption rate is read from Claude Code transcripts and needs no opt-in, so it is available even when telemetry was never enabled.
**1 — This repository, mid-session.** Call the `get_token_savings` MCP tool. Returns totals, a per-tool leaderboard, separate zero-result / not-ready / error counts, and the methodology. If it reports `Enabled: false`, telemetry was never turned on — say so rather than reporting zero as if it were a measurement.
**2 — All repositories.**
cd mcp/CWM.RoslynNavigator dotnet run --project stats/CWM.RoslynNavigator.Stats.csproj # table dotnet run --project stats/CWM.RoslynNavigator.Stats.csproj -- --markdown dotnet run --project stats/CWM.RoslynNavigator.Stats.csproj -- --json dotnet run --project stats/CWM.RoslynNavigator.Stats.csproj -- --repo myapp
**3 — Interpret it honestly.** Three things must be said whenever a number is quoted:
figure linearly. If `DivisorCalibrated` is false, the number is indicative, not precise.
wrong files a text search would have opened first.
demonstrably targeted C#; ambiguous searches are excluded.
**4 — Act on the leaderboard.** A tool with no calls is the actionable finding. Low adoption in a configured repository usually means a tool description is not attracting the work it should — more useful than the savings figure itself.
Turns the one estimated input into a measurement. Free, manual, and never run by the server:
dotnet run --project stats/CWM.RoslynNavigator.Stats.csproj -- calibrate \ --api-key $ANTHROPIC_API_KEY --path /path/to/dotnet/repo --sample 200
Samples C# files, gets exact counts from the Anthropic `count_tokens` endpoint, and regresses bytes against tokens. Apply the result to `TokenEstimator` in the server and record the sample size and R² next to the constant so the figure stays checkable.
Repositories 3 (1 with telemetry) Tool calls 412 Tokens saved 1,284,000 Adoption 68% Tool leaderboard tool calls saved p50 ms 0-result find_references 180 612,000 84 4% find_symbol 150 431,000 22 2% Never called (2): get_nuget_packages, resolve_stack_trace Divisor: 3.5 bytes/token — UNCALIBRATED estimate.
When the server was never invoked, the report says so plainly instead of printing zeros — "no calls" and "no savings" are different findings.
API versioning strategies for ASP.NET Core. Covers Asp.Versioning library, URL segment, header, and query string strategies,…
Architecture conformance check: verifies an existing codebase against its declared architecture (VSA, Clean Architecture, DDD,…
Architecture selection advisor for .NET applications. Asks structured questions about domain complexity, team size, system…
.NET Aspire for cloud-native orchestration. Covers AppHost configuration, service defaults, resource configuration, service…
Authentication and authorization for ASP.NET Core. Covers JWT bearer tokens, OpenID Connect, ASP.NET Identity, authorization…
Avalonia UI 12 for cross-platform .NET desktop apps: compiled bindings (x:DataType, on by default in 12),…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.