codewithmukesh/dotnet-claude-kit

token-report

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.

Vedi sorgente

Come usare

  1. Copia il comando e controlla il pacchetto prima di installarlo nel tuo ambiente agente.
  2. Controlla strumenti, credenziali e ambienti richiesti nel documento originale.
  3. Descrivi input e risultato desiderato; confronta l’output con le fonti.
npx skills add https://github.com/codewithmukesh/dotnet-claude-kit --skill token-report

Prima di iniziare

  • L’installazione non include abbonamenti, quote API o accesso ai file.
  • Stelle e installazioni indicano attività, non un test indipendente di qualità o sicurezza.
Documento Skill originale

Contenuto dal repository con titoli, esempi, codice, tabelle, link e immagini preservati.

/token-report — Roslyn Navigator token savings

What

Reports what the Roslyn MCP server has actually saved, measured rather than asserted. Two surfaces:

ScopeSurfaceUse when
This repository, mid-sessionget_token_savings MCP tool"how are we doing here?"
All repositories, aggregateCWM.RoslynNavigator.Stats CLIproducing a public number

When

  • Deciding whether the MCP server earns its context cost
  • Finding tools nobody calls — a description problem, or a tool that should not exist
  • Backing a claim about token efficiency with something checkable

Prerequisite

Collection is opt-in and off by default. Nothing was recorded unless the server was started with it enabled:

bash
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.

How

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.

bash
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:

  • The divisor is uncalibrated. 3.5 bytes/token is an estimate, and it scales every

figure linearly. If DivisorCalibrated is false, the number is indicative, not precise.

  • The baseline understates. It counts only the files an answer came from, ignoring the

wrong files a text search would have opened first.

  • Adoption is biased upward. Its denominator counts only Read/Grep/Glob calls that

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.

Calibrating the divisor

Turns the one estimated input into a measurement. Free, manual, and never run by the server:

bash
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.

Example

  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.

Related

  • /verify — quality gates before a PR
  • /health-check — codebase health grades
dallo stesso repository

Altri Skills

Tutti gli Skills
codewithmukesh
Community

avalonia

Avalonia UI 12 for cross-platform .NET desktop apps: compiled bindings (x:DataType, on by default in 12), StyledProperty/DirectProperty, custom and templated controls, ControlThemes, DataTemplates/ViewLocator, Generic Host + DI, StorageProvider/Clipboard, Native AOT/trimming, and packaging. Load when the user mentions "Avalonia", "AXAML", "x:DataType", "compiled binding", "StyledProperty", "TemplatedControl", "ViewLocator", or "cross-platform desktop".

Installazioni / 1h
3
GitHub Stars
804
Aggiornato
4 nov
codewithmukesh
Community

console-cli

Console apps and CLI tools on .NET 10: System.CommandLine 2.x (RootCommand, Option , SetAction, InvokeAsync), Generic Host + DI in console apps, exit codes, stdout/stderr discipline, Ctrl+C cancellation, interactive vs piped use, dotnet tool packaging, and dotnet run app.cs file-based apps. Load when the user mentions "console app", "CLI", "command line", "System.CommandLine", "dotnet tool", "exit code", "stdin", "args parsing", or "file-based app".

Installazioni / 1h
3
GitHub Stars
804
Aggiornato
4 nov
codewithmukesh
Community

desktop-mvvm

MVVM for .NET desktop apps (WPF, Avalonia, WinForms, MAUI) with CommunityToolkit.Mvvm 8.4+ source generators: [ObservableProperty] partial properties, [RelayCommand] async commands, Generic Host + DI, UI-thread dispatching, navigation, messaging, and testable view models. Load when the user mentions "MVVM", "ViewModel", "WPF", "desktop app", "ObservableProperty", "RelayCommand", "ICommand", "INotifyPropertyChanged", "Dispatcher", or "UI thread".

Installazioni / 1h
3
GitHub Stars
804
Aggiornato
4 nov
codewithmukesh
Community

native-aot

Native AOT, trimming, and single-file publishing for .NET 10: PublishAot, IsAotCompatible analyzers, source-generated JSON/regex/logging/config binding, fixing IL2xxx/IL3xxx trim and AOT warnings, per-RID publishing, and when NOT to use AOT. Load when the user mentions "Native AOT", "PublishAot", "trimming", "PublishTrimmed", "single-file", "IL2026", "IL3050", "trim warning", "startup time", "self-contained", or "JsonSerializerContext".

Installazioni / 1h
3
GitHub Stars
804
Aggiornato
4 nov