/ 디렉터리 / 플레이그라운드 / .NET Skills
● 커뮤니티 Aaronontheweb ⚡ 바로 사용

.NET Skills

제작: Aaronontheweb · Aaronontheweb/dotnet-skills

Claude의 관용적인 .NET 8/9 — xUnit 테스트, BenchmarkDotNet 성능, NuGet 패키징, async/await 정확성, C# 스타일을 위한 스킬.

Aaron Stannard의 .NET Skills는 진지한 .NET 개발자를 위한 실전 검증된 번들입니다. 단순한 코드 생성을 넘어 모델이 습관적으로 틀리는 부분을 커버합니다: 비동기 취소, ConfigureAwait 사용, IDisposable, struct vs class 트레이드오프, BenchmarkDotNet 패턴, NuGet 패키징 메타데이터, 현대적인 xUnit + FluentAssertions 스타일.

왜 쓰나요

핵심 기능

라이브 데모

실제 사용 모습

준비됨

설치

작성자 저장소 · Claude Skills 공식 문서

사용 사례

실전 활용법: .NET Skills

async/await 정확성을 위한 서비스 감사

👤 백엔드 .NET 팀 ⏱ ~45 min advanced

언제 쓸까: 간헐적으로 데드락이 발생하는 서비스를 상속받았고 비동기 문제가 의심될 때.

흐름
  1. 스캔
    src/에 대한 dotnet-skills 비동기 감사를 실행하세요. 다음을 표시: 라이브러리에서 ConfigureAwait(false) 누락, .Result/.Wait, async void (이벤트가 아닌), CancellationToken 전파 누락.✓ 복사됨
    → 심각도가 있는 구체적인 file:line 목록
  2. 한 클러스터 수정
    가장 높은 심각도 클러스터(데드락 위험)를 선택하세요. 파일별로 패치를 제안하세요. 차이를 보여주세요.✓ 복사됨
    → 전체 파일 다시 쓰기가 아닌 수술적 패치

결과: 비동기 위생 개선; 간헐적 데드락의 한 원인 해결

함정
  • ConfigureAwait 수정이 UI 스레드 코드를 깨뜨림 — 스킬이 lib vs 앱 코드를 구분; 그 경계를 존중
함께 쓰기: filesystem

BenchmarkDotNet으로 핫 패스 벤치마크

👤 성능에 관심 있는 .NET 개발자 ⏱ ~60 min advanced

언제 쓸까: 프로파일러가 메서드를 가리킬 때; 엄격한 숫자가 필요할 때.

흐름
  1. 벤치마크 스캐폴딩
    스킬: OrderCalc.Compute를 위한 BenchmarkDotNet 프로젝트를 스캐폴딩하세요. 여러 입력 크기. 메모리 진단기 켜기. Markdown 내보내기.✓ 복사됨
    → 벤치마크 프로젝트가 컴파일됨; Release에서 실행됨
  2. 실행 + 해석
    벤치마크를 실행하세요. 평균, 할당, gen0을 보고하세요. 주요 할당이 무엇인가요?✓ 복사됨
    → 할당자(아마 문자열 연결 또는 LINQ)에 대한 구체적인 귀인
  3. 패치 + 재벤치마크
    LINQ를 손으로 작성한 루프로 교체하세요. 다시 실행하세요. 이전/이후를 보여주세요.✓ 복사됨
    → 할당이 측정 가능하게 감소

결과: 느낌이 아닌 정량화된 성능 개선

함정
  • Debug 빌드 실행 — BenchmarkDotNet은 Debug를 거부; Release 확인

NuGet 릴리스를 위한 라이브러리 준비

👤 OSS 저자 ⏱ ~30 min intermediate

언제 쓸까: 라이브러리의 첫 NuGet 릴리스; 폴리시하게 만들고 싶을 때.

흐름
  1. 패키징 감사
    dotnet-skills: NuGet 준비를 위해 MyLib.csproj를 감사하세요. Description, Authors, License, RepositoryUrl, source-link, 멀티 타겟팅을 확인하세요.✓ 복사됨
    → 구체적인 누락 필드 목록
  2. API 표면 검토
    공개 API 표면을 생성하세요; 유출된 내부 타입이나 이상하게 명명된 공개 항목을 표시하세요.✓ 복사됨
    → 우려 사항이 표시된 API 표면 덤프

결과: 푸시할 준비가 된 깨끗한 패키지

함정
  • 라이선스 불일치 (LICENSE 파일 vs <PackageLicenseExpression>) — 스킬이 이를 잡음; 정렬하세요

조합

다른 MCP와 조합해 10배 효율

dotnet-skills-aaronontheweb + filesystem

프로젝트 전체에 패치 적용

src/ 전체에 async_audit 패치를 적용하세요. 파일별로 하나의 커밋.✓ 복사됨
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 표면에 내부 타입이 포함됨

InternalsVisibleTo가 올바르게 설정되었는지 확인; 스킬은 설정된 대로 보고

대안

.NET Skills 다른 것과 비교

대안언제 쓰나단점/장점
레포지토리의 Roslyn 분석기CI 시점 적용을 원할 때더 많은 설정; 인터랙티브가 아님
ReSharper / RiderIDE 시점 수정을 원할 때유료; LLM 기반 아님
Aspire / .NET Cloud Native skills클라우드 네이티브 포커스다른 범위

더 보기

리소스

📖 GitHub에서 공식 README 읽기

🐙 열린 이슈 보기

🔍 400+ MCP 서버 및 Skills 전체 보기