/ Каталог / Песочница / .NET Skills
● Сообщество Aaronontheweb ⚡ Сразу

.NET Skills

автор Aaronontheweb · Aaronontheweb/dotnet-skills

Идиоматичный .NET 8/9 в Claude — скиллы для xUnit-тестирования, BenchmarkDotNet производительности, NuGet-упаковки, корректности async/await и стиля C#.

Скиллы .NET от Aaron Stannard — это battle-tested набор для серьёзных .NET-разработчиков. Помимо простой генерации кода, охватывают части, которые модель привычно делает неправильно: async cancellation, использование ConfigureAwait, IDisposable, компромиссы struct vs class, паттерны BenchmarkDotNet, метаданные NuGet-пакетов и современный стиль xUnit + FluentAssertions.

Зачем использовать

Ключевые функции

Живое демо

Как выглядит на практике

готово

Установка

Репозиторий автора · Официальная документация Claude Skills

Сценарии использования

Реальные сценарии: .NET Skills

Проверить сервис на корректность async/await

👤 Backend .NET-команды ⏱ ~45 min advanced

Когда использовать: Достался в наследство сервис с нестабильными дедлоками и подозрение на async-проблемы.

Поток
  1. Сканировать
    dotnet-skills async audit на src/. Отметь: отсутствующий ConfigureAwait(false) в библиотеках, .Result/.Wait, async void (не обработчик событий), отсутствующее распространение CancellationToken.✓ Скопировано
    → Конкретный список file:line с уровнями серьёзности
  2. Исправить один кластер
    Возьми кластер с наибольшей серьёзностью (риск дедлока). Предложи патчи, файл за файлом. Покажи дифы.✓ Скопировано
    → Точечные патчи, а не переписывание целых файлов

Итог: Улучшена async-гигиена; один источник нестабильных дедлоков устранён.

Подводные камни
  • Фикс ConfigureAwait ломает UI-thread код — Скилл различает lib vs app код; соблюдай эту границу
Сочетать с: filesystem

Бенчмарк горячего пути с BenchmarkDotNet

👤 Разработчики .NET, интересующиеся производительностью ⏱ ~60 min advanced

Когда использовать: Профайлер указывает на метод; нужны строгие измерения.

Поток
  1. Создать бенчмарк
    Скилл: создай BenchmarkDotNet-проект для OrderCalc.Compute. Несколько размеров входных данных. Memory diagnoser включён. Markdown exporter.✓ Скопировано
    → Бенчмарк-проект компилируется; запускается в Release
  2. Запустить + интерпретировать
    Запусти бенчмарк. Сообщи mean, allocated, gen0. Что является основным источником выделения памяти?✓ Скопировано
    → Конкретная атрибуция источнику (вероятно string concat или LINQ)
  3. Запатчить + перезапустить
    Замени LINQ на ручной цикл. Перезапусти. Покажи до/после.✓ Скопировано
    → Выделение памяти измеримо снижается

Итог: Количественно измеренное улучшение производительности, а не ощущения.

Подводные камни
  • Запуск Debug-сборок — BenchmarkDotNet отказывает в Debug; убедись что Release

Подготовить библиотеку к публикации на NuGet

👤 Авторы OSS ⏱ ~30 min intermediate

Когда использовать: Первый NuGet-релиз библиотеки; нужно чтобы выглядело полированно.

Поток
  1. Аудит упаковки
    dotnet-skills: проверь MyLib.csproj на готовность к NuGet. Проверь Description, Authors, License, RepositoryUrl, source-link, multi-targeting.✓ Скопировано
    → Конкретный список недостающих полей
  2. Ревью поверхности API
    Сгенерируй публичную поверхность API; отметь утечки внутренних типов или странно именованные публичные элементы.✓ Скопировано
    → Вывод поверхности API с обозначенными проблемами

Итог: Чистый пакет готовый к публикации.

Подводные камни
  • Несоответствие лицензий (файл LICENSE vs <PackageLicenseExpression>) — Скилл это обнаружит; приведи к единому виду

Комбинации

Сочетайте с другими MCP — эффект x10

dotnet-skills-aaronontheweb + filesystem

Применять патчи по всему проекту

Применяй async_audit патчи по src/. Один коммит на файл.✓ Скопировано
dotnet-skills-aaronontheweb + github

PR с результатами бенчмарка

Открой PR с патчем производительности + бенчмарком до/после в описании.✓ Скопировано

Инструменты

Что предоставляет этот MCP

ИнструментВходные данныеКогда вызыватьСтоимость
async_audit path Проверка состояния кодовой базы 0
scaffold_benchmark target_method Работа над производительностью 0
interpret_bench bench_md После запуска бенчмарка 0
nuget_audit csproj До релиза 0
api_surface assembly_or_proj Ревью API 0
test_conventions_check test_path PR-ревью 0

Стоимость и лимиты

Во что обходится

Квота API
Н/П
Токенов на вызов
Аудиты сканируют код = более высокое потребление токенов; 5k–30k за проход
Деньги
Бесплатно
Совет
Проверяй по одному проекту за раз; не фанаутируй по всему монорепозиторию сразу

Безопасность

Права, секреты, радиус поражения

Минимальные скоупы: filesystem-read filesystem-write
Хранение учётных данных: Нет
Исходящий трафик: Нет

Устранение неполадок

Частые ошибки и исправления

Аудит слишком шумный

Укажи порог серьёзности; скилл по умолчанию выводит все

Бенчмарк не запускается

Нужна Release-сборка; BenchmarkDotNet отказывает в Debug

Проверить: dotnet build -c Release
Поверхность API включает internal типы

Убедись что InternalsVisibleTo настроен правильно; скилл выводит как сконфигурировано

Альтернативы

.NET Skills в сравнении

АльтернативаКогда использоватьКомпромисс
Roslyn analyzers в репозиторииНужна CI-time проверкаБольше настройки; менее интерактивно
ReSharper / RiderНужны IDE-time исправленияПлатно; не управляется LLM
Aspire / .NET Cloud Native skillsФокус на cloud-nativeДругая область

Ещё

Ресурсы

📖 Читать официальный README на GitHub

🐙 Открытые задачи

🔍 Все 400+ MCP-серверов и Skills