Claude Code Plugin [wpf-dev-pack] 을 만들었습니다.

Claude Code 에서 사용할 수 있는 WPF Plugin 을 만들었습니다.

Claude MAX 구독하시면서 WPF 쓰시는 분들 한번씩 써보시고 피드백 주시면 감사드리겠습니다.

12개의 좋아요

1.3.0을 배포했습니다.

wpf-dev-pack은 아래 4개의 mcp를 사용하고 있습니다.

microsoftdocs, serena, context7, sequential-thinking

그 중에서 serena, context7, sequential-thinking mcp는 claude code 공식 mcp 라서 많이들 claude code에서 사용 중이실 것입니다. 저도 그렇고…

그래서 mcp가 2중으로 설치되어 토큰을 중복해서 먹을 수 있어서 microsoft docs mcp를 제외한 mcp를 제거했습니다.

혹시 사용하시는 분들은 update 부탁드립니다.

4개의 좋아요

1.4 버전을 배포했습니다.


● wpf-dev-pack v1.4.0 변경 요약

  1. 서드파티 라이브러리 스킬 5개 신규 추가 (57 → 62개)
  • integrating-wpfui-fluent — WPF-UI (Wpf.Ui) 4.2.x: Fluent Design, FluentWindow, NavigationView
  • integrating-livecharts2 — LiveCharts2 2.0: 실시간 차트, CartesianChart, PieChart
  • validating-with-fluentvalidation — FluentValidation 12.x: INotifyDataErrorInfo 브리지 패턴
  • handling-errors-with-erroror — ErrorOr 2.x: 서비스 계층 Result 패턴, Switch/Match
  • integrating-nodify — Nodify 7.2.x: 노드 기반 에디터 (MVVM 구조)
  1. 기존 스킬 개선
  • CommunityToolkit.Mvvm — .NET 8 호환을 위해 backing field 방식을 기본값으로 변경, partial property는 .NET 9+ 업그레이드 가이드로 분리
  • Prism — 9.0.537 대응 (DialogCloseListener, IEventAggregator Pub/Sub, 듀얼 라이선스 안내)
  1. 적응형 인터뷰 시스템

기존 고정 4단계 인터뷰를 경로 기반 적응형 인터뷰로 교체:

  • 경로 A: 새 프로젝트 생성 (7단계)
  • 경로 B: 분석/개선 (5단계)
  • 경로 C: 기능 구현 (5단계)
  • 경로 D: 디버깅/수정 (4단계)

자유 입력에서 키워드 분석 → 후속 단계 기본값 자동 설정. 예: “차트 대시보드” 입력 시 LiveCharts2, 성능 관련 스킬 자동 추천

  1. .NET 버전 정책 명확화
  • wpf-dev-pack 실행: .NET SDK 10.0+ 필수 (file-based app 훅)
  • 생성 프로젝트 대상: .NET 8 이상 선택 가능 (이전에는 .NET 10만 지원)
8개의 좋아요

v1.4.1

Prism 9 듀얼 프레임워크 지원

  • 13개 스킬에 PRISM.md 컴패니언 파일 추가
    • 기존 SKILL.md(CommunityToolkit.Mvvm)와 PRISM.md(Prism 9 Community License)가 상호 참조
    • ViewModel, DI, Navigation, Dialog, Validation 등 주요 MVVM 영역을 Prism 9 패턴으로 제공
  • 대상 스킬: implementing-communitytoolkit-mvvm, configuring-dependency-injection, structuring-wpf-projects, mapping-viewmodel-view-datatemplate, creating-wpf-dialogs, managing-wpf-application-lifecycle, binding-enum-command-parameters, handling-wpf-input-commands,
    implementing-wpf-validation, managing-wpf-collectionview-mvvm, validating-with-fluentvalidation, implementing-repository-pattern, displaying-slider-index
  • MVVM 프레임워크 자동 감지 시스템 (mvvm-framework.md) — csproj NuGet 패키지 또는 키워드로 Prism/CommunityToolkit 자동 판별
  • Command에서 Skill로 마이그레이션 (Claude Code 2.1.3 agent skill 2.0 대응)

v1.4.2

FlaUI 크로스 프로세스 입력 보정 스킬 추가 (77번째 스킬)

  • 새 스킬: flaui-cross-process-input
    • FlaUI로 WPF 앱을 UI 자동화할 때 발생하는 크로스 프로세스 입력 전달 문제 해결 가이드
  • 다루는 문제:
    a. Stuck Keys — Keyboard.Press() 후 key-up이 처리되기 전 마우스 이벤트가 전달되어 WPF 제스처 매칭이 무시되는 현상 → ReleaseAllKeys() 패턴 제공
    b. SetCursorPos vs SendInput — Mouse.MoveTo()가 WM_MOUSEMOVE를 주입하지 않아 WPF 히트 테스트가 갱신되지 않는 현상 → SendInput(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE) 해결법 제공
    c. Adorner 깜빡임 — 드래그 중 보간 포인트가 다른 인터랙티브 존을 통과하며 발생하는 플리커 → 스텝 수/딜레이 조절 및 경로 우회 전략
  • 진단 체크리스트 (Keyboard state → Mouse.Captured → ClickCount → Hit test → Binary 확인) 포함
  • 키워드 자동 트리거: flaui, cross-process, sendinput, keybd_event, stuck key
2개의 좋아요

v1.4.5

Hook 출력 개선 및 3rd Party 키워드 확장

  • WpfKeywordDetector 출력 포맷 재설계 — 트리거된 스킬의 가시성 향상
  • 3rd Party 라이브러리 키워드 30개 이상 추가
    • FlaUI, Nodify, WPF-UI, LiveCharts2, FluentValidation, ErrorOr 관련 키워드
    • 해당 라이브러리 언급 시 관련 스킬 자동 트리거
  • flaui-cross-process-input 스킬 강화
    • xUnit 병렬 테스트 비활성화(xunit.runner.json) 전제조건 추가
    • 스킬 설명 및 평가 데이터에 xUnit 관련 트리거 키워드 반영

v1.4.6

HandMirrorMcp 통합 (.NET API 검증용 MCP 서버)

  • HandMirrorMcp를 MCP 서버로 추가 — MCP 서버 수 1개 → 2개 (MicrosoftDocs + HandMirrorMcp)
    • .NET 어셈블리 및 NuGet 패키지의 실제 컴파일된 API를 검사하여 네임스페이스, 메서드 시그니처, 확장 메서드 위치를 정확히 확인
    • Context7, MicrosoftDocs와 병행 사용하여 NuGet/API 할루시네이션 감소
  • PreToolUse Hook 추가: HandMirrorReminder.cs
    • Context7 또는 MicrosoftDocs MCP 호출 전 .NET/NuGet 관련 질의를 감지 (58개 .NET 지표 기반)
    • 해당 시 HandMirrorMcp 우선 사용을 자동 리마인드
  • 버전 릴리즈 검증 Hook: VersionReleaseChecker.cs
    • git push 시 자동 실행 — GitHub 릴리즈 존재 여부, README 수치(Skills/Agents/MCP), GitHub 프로필 수치 동기화를 검증
  • README 스킬 수 보정: 77개 → 78개
    • 카테고리 테이블에 누락된 9개 스킬 추가, flaui-wpf-element-discovery를 3rd Party 섹션에 반영
5개의 좋아요

v1.5.0

View First MVVM 공식 채택, 자동화 Hook 강화, 신규 스킬 3종, Progressive Disclosure 적용

View First MVVM을 공식 MVVM 방식으로 선언

  • View가 먼저 생성되고, View가 자신의 ViewModel을 결정하는 방식
  • View-ViewModel 연결 규칙을 CommunityToolkit.Mvvm / Prism 9 별도 rules 파일로 정의
  • ViewModelLocator, ViewModel First Navigation을 금지 규칙(prohibitions.md)으로 명시

신규 Hook 2종 추가

  • BuildErrorDiagnoser — dotnet build 실패 시 에러코드(CS0234, CS0246, NU1101 등)를 파싱하여 HandMirror MCP 도구 자동 안내
  • MvvmViolationDetector — ViewModel 파일에서 System.Windows.* 참조 감지 시 MVVM 위반 경고 (System.Windows.Input.ICommand는 예외)

XamlValidator 규칙 확장 (5개 → 8개)

  • TextBox에 UpdateSourceTrigger=PropertyChanged 누락 감지
  • ElementName=“self” 사용 시 RelativeSource Self 안내
  • TextBlock에 Mode=TwoWay 바인딩 감지

신규 스킬 3종 추가 — 스킬 수 79개 → 81개

  • make-wpf-viewmodel — ViewModel + View + DI 등록 + DataTemplate 매핑을 한 번에 생성 (Prism 9 PRISM.md 포함)
  • make-wpf-service — 서비스 인터페이스 + 구현 클래스 + DI 등록 자동 생성
  • testing-wpf-viewmodels — xUnit + NSubstitute 기반 ViewModel 단위 테스트 패턴 (Prism 9 PRISM.md 포함)

기능 의도 키워드 감지 추가 — 라이브러리 이름을 몰라도 원하는 기능만 말하면 스킬 자동 추천

  • “차트/그래프/대시보드” → integrating-livecharts2
  • “입력 검증/폼 검증” → validating-with-fluentvalidation
  • “모던 UI/플루언트 디자인” → integrating-wpfui-fluent
  • “느려/렉/대용량 데이터” → rendering-wpf-high-performance, virtualizing-wpf-ui
  • “다국어 지원” → localizing-wpf-applications 외 다수

Progressive Disclosure 적용 — 대형 스킬 8개에서 고급 패턴을 ADVANCED.md로 분리 (평균 47% 축소)

  • creating-wpf-animations, routing-wpf-events, implementing-wpf-automation, understanding-wpf-content-model, structuring-wpf-projects, rendering-with-drawingcontext, managing-wpf-collectionview-mvvm, handling-wpf-input-commands

플러그인 품질 개선

  • 11개 에이전트 전부 color 필드 추가 (Claude Code UI 시각적 구분)
  • 7개 scaffolding 스킬 description에 “Use when” 트리거 구문 추가
  • 삭제된 스킬에 대한 4개 에이전트 참조 수정
  • scottplot 스킬 description 중복 수정 및 누락 evals 생성

Others

  • mapping-viewmodel-view-datatemplate 스킬 삭제 → rules로 이전 (스킬 수 -1)
  • 내장 MicrosoftDocs MCP 제거 — claude official marketplace의 microsoft-docs 플러그인으로 분리 (MCP 서버 수 2개 → 1개)
5개의 좋아요

microsoft-docs plugin의 업데이트

microsoft-docs mcp가 microsoft-docs claude code plugin이 되면서 지속적으로 개선되고 있습니다. 기본적으로 microsoft docs를 검색하는 mcp기능은 microsoft-learn 이라는 mcp로 이름이 변경되었고, 아래 3개의 skill이 추가되었습니다.

microsoft-docs:microsoft-docs

  • Microsoft 기술 개념/튜토리얼/설정/제한/모범 사례 이해 (Azure, .NET, M365, Windows 등) — 공식 문서 질의

microsoft-docs:microsoft-code-reference

  • Microsoft SDK/API 코드 작성·디버깅·리뷰 시 동작 샘플 검색, API 시그니처 검증, 환각·오타·deprecated 패턴 교정

microsoft-docs:microsoft-skill-creator

  • Microsoft 기술용 에이전트 스킬 생성 (공식 문서로 조사 후 로컬 필수 지식 + 동적 조회를 결합한 하이브리드 스킬 생성)

원래는 context7과 ms docs에서 가져올 수 있었던 정보를 굳이 skill로 생성한 다음 그 skill들을 AI를 통해 깎아서 최적화해서 사용하려는 의도였는데 microsoft-docs:microsoft-skill-creator 와 같은 스킬의 등장으로 직접 만들어서 사용할 수 있게되어 많은 스킬을 아카이브 했습니다.


wpf-dev-pack v1.6.0 업데이트

GitHub 릴리스 링크

Microsoft 공식 문서와 중복되는 스킬을 정리하여 Claude Code의 컨텍스트 사용을 최적화한 메이저 릴리스입니다. microsoft-docs MCP 플러그인이 관련 주제를 동적으로 제공하게 되면서 34개의 doc-mirror 스킬을 archive-skills/로 이동했고, 큐레이션 가치가 높은 49개의 스킬만 활성 상태로 유지합니다.

주요 변경사항

:file_cabinet: 34개 doc-mirror 스킬을 archive-skills/로 이동

WPF 개념 (26개): DependencyProperty, ControlTemplate, Storyboard/Animation, Brushes, Dialogs, FlowDocument, Adorners, UI Automation, DragDrop, RoutedCommand, Behaviors/Triggers, Converter MarkupExtension, XAML Property Element Syntax, Content Model, Clipboard, MediaElement, Visual Tree navigation, 2D Graphics, Localization, RTL 지원, Culture-aware formatting, .NET migration 등

.NET 공통 (8개): async/await, Span<T>/ArrayPool, Parallel/PLINQ, HashSet/FrozenSet, System.IO.Pipelines, Pub/Sub, GeneratedRegex 등

:broom: 참조 정리

  • Hooks: WpfKeywordDetector.cs에서 키워드 매핑 158개 제거, 5개 배열 트리밍. BuildErrorDiagnoser.cs의 아카이브된 스킬 참조 삭제.
  • Agents: 9개 에이전트 파일의 frontmatter에서 아카이브 스킬 19개 제거. 본문 참조는 ~~strikethrough~~ (archived) 표기로 보존하여 에이전트 추론 컨텍스트를 유지.
  • Cross-skill refs: implementing-wpf-validation, make-wpf-converterarchive-skills/ 경로와 룰 파일을 참조하도록 업데이트.
  • 플러그인 문서: README.md, README.ko.md, skills/README.md, skills/.claude/CLAUDE.md의 카테고리 테이블·카운트 갱신, 빈 섹션 제거.

:sparkles: v1.5.3 이후 추가 사항

  • managing-unit-tests 스킬 + WPF 단위 테스트 원칙 추가
  • WPF 키보드/포커스 라우팅 룰 3종 추가 (wpf-button-keyboard-behavior.md, wpf-dialog-focus-timing.md, wpf-helixtoolkit-escape-routing.md)

:light_bulb: 활성 스킬 (49개 유지)

의견·워크플로우·3rd-party 통합·사용자 노하우 스킬은 그대로 유지됩니다:

  • 3rd-party 통합: FlaUI, ScottPlot, Nodify, WPF-UI, LiveCharts2, FluentValidation, ErrorOr
  • 프로젝트 스캐폴딩: make-wpf-project, make-wpf-custom-control, make-wpf-viewmodel 외 4종
  • MVVM 워크플로우: CommunityToolkit.Mvvm, Prism 9 (듀얼 프레임워크 지원)
  • 성능 진단: DrawingContext 최적화, 가상화 트러블슈팅, 메모리 누수 패턴
  • 버그 회피 노하우: Popup 포커스, Slider 인덱스, enum 바인딩, 아이콘 폰트 상속

통계

  • Skills: 49 (82에서 감소, 34개 아카이브)
  • Agents: 10
  • MCP Servers: 1 (HandMirrorMcp)

설치 / 업데이트

/plugin install wpf-dev-pack@dotnet-claude-plugins

마이그레이션 안내

아카이브된 스킬은 저장소의 archive-skills/ 경로에서 그대로 접근 가능합니다. 이전에 해당 스킬이 다루던 WPF·.NET 개념은 microsoft-docs 플러그인에 관련 키워드(DependencyProperty, Span<T>, Storyboard 등)로 조회하시면 공식 문서 기반의 최신 정보를 얻을 수 있습니다.

함께 설치 권장: microsoft-docs claude code plugin


wpf-dev-pack v1.6.1 업데이트

GitHub 릴리스 링크

v1.6.0 출시 직후 plugin-dev:plugin-validator 에이전트로 플러그인 가이드라인 점검을 수행하여 발견된 이슈를 수정한 패치 릴리스입니다. 잘못 아카이브된 스킬 3개를 되살리고, 문서와 에이전트 참조를 정리했으며, Nodify 소켓 하이라이트 노하우 스킬 1개가 추가되었습니다.

주요 변경사항

:adhesive_bandage: Critical 수정

  • README MVVM 방식 설명 문구 수정 (README.md, README.ko.md 24번째 줄)
    • 기존: “DataTemplate 매핑 또는 ViewModelLocator”
    • 수정: “DataTemplate 매핑 또는 DI 컨테이너 직접 resolve”
    • .claude/rules/prohibitions.md의 ViewModelLocator 금지 규칙과 일치하도록 교정

:package: 잘못 아카이브된 스킬 3개 복구

v1.6.0에서 아카이브했으나 활성 스킬·에이전트가 여전히 참조하고 있던(dead link) 스킬입니다.

  • advanced-data-binding — MultiBinding, PriorityBinding, 고급 바인딩 패턴. make-wpf-converter, wpf-data-binding-expert 에이전트가 참조.
  • using-converter-markup-extension — IValueConverter를 MarkupExtension으로 구현하는 패턴. make-wpf-converter, code-formatter, wpf-data-binding-expert, wpf-code-reviewer가 참조.
  • using-xaml-property-element-syntax — XAML Property Element Syntax 패턴. code-formatter의 Silent Trigger로 사용.

:sparkles: 신규 스킬

  • highlighting-nodify-connections — Nodify 소켓↔연결선 네온 글로우 하이라이트 패턴. ConnectorItemConnectionItem 사이 weak-event 구독, NodeInput/NodeOutput ControlTemplate 내부의 IsMouseOver 함정, 1:N fan-out 상황의 peer-count 전파, 그리고 IsMouseOver를 데이터 기반 IsHighlighted 트리거로 교체하는 로컬 ControlTemplate 오버라이드를 다룹니다.

:wrench: 참조 복원

복구된 3개 스킬에 대한 모든 참조가 다시 연결되었습니다:

  • hooks/WpfKeywordDetector.cs: binding, multibinding, converter, markupextension, property element 키워드 매핑 복원
  • 에이전트 frontmatter: code-formatter, wpf-data-binding-expert, wpf-code-reviewer 업데이트
  • skills/.claude/CLAUDE.md, skills/README.md, skills/README.ko.md: 카테고리 테이블·키워드 인덱스 갱신
  • 플러그인 README 카운트: 49 → 53 Skills

통계

  • Skills: 53 (v1.6.0 대비 +4 — 복구 3개 + 신규 1개)
  • Agents: 10
  • MCP Servers: 1 (HandMirrorMcp)

설치 / 업데이트

/plugin install wpf-dev-pack@dotnet-claude-plugins

wpf-dev-pack v1.6.2 업데이트

GitHub 릴리스 링크

이번 릴리스는 WPF 애플리케이션의 가장 흔한 런타임 버그 중 하나인 Dispatcher 데드락비동기 종료 처리를 체계적으로 다루는 두 개의 신규 skill을 추가했습니다. 기존 skill 트리거 매핑을 전반적으로 정비하여 자동 활성화 정확도도 함께 개선했습니다.

주요 변경사항

신규 Skill

  • preventing-dispatcher-deadlock — Foundation skill. WPF의 DispatcherSynchronizationContextawait 시 캡처되는 메커니즘과 .GetAwaiter().GetResult(), .Wait(), .Result가 UI 스레드를 교착시키는 과정을 단계별로 설명합니다. 이벤트 핸들러에서 유일하게 안전한 패턴인 async void + try/catch를 강제하고, Task.Run 래핑·ConfigureAwait(false)가 왜 근본 해결책이 아닌지, 재진입 가드와 CommunityToolkit.Mvvm [RelayCommand] / Prism 9 AsyncDelegateCommand 대안까지 다룹니다.

  • shutting-down-wpf-gracefully — Application skill. 위 foundation을 종료 시나리오에 적용합니다. OnExit 오버라이드는 시그니처 고정 탓에 async void로 바꿀 수 없다는 제약을 설명하고, 두 가지 검증된 전략을 제시합니다:

    • Strategy A: ShutdownMode=OnMainWindowClose + Window.OnClosing에서 e.Cancel = trueawait cleanup → Close() 재호출
    • Strategy B: ShutdownMode=OnExplicitShutdown + MainWindow.Closed 이벤트(async void) → cleanup 완료 후 Application.Current.Shutdown()

    추가로 CancellationTokenSource 타임아웃 가드, CommunityToolkit.Mvvm의 IHost.StopAsync teardown, Prism 9 컨테이너 정리 예시를 포함합니다.

개선사항

  • managing-wpf-application-lifecycle의 §3 Shutdown Handling 상단에 두 신규 skill로의 cross-link 추가
  • skills/.claude/CLAUDE.md의 keyword 매핑과 Skill Category Index 대폭 정비 — 신규 2개 + 기존에 트리거 누락되어 있던 skill 8개(managing-wpf-popup-focus, implementing-repository-pattern, configuring-console-app-di, rendering-wpf-architecture, flaui-wpf-element-discovery, flaui-prism-dialog-discovery, implementing-hit-testing, managing-wpf-application-lifecycle)의 키워드·카테고리 등록
  • wpf-dev-pack/.claude/CLAUDE.mdAdding a New Skill — Required Co-updates 섹션 추가. 향후 skill 추가 시 동반 업데이트 지점(keyword 매핑, cross-link, PRISM.md 컴패니언, foundation+application 쌍 패턴)을 체크리스트화
  • wpf-dev-pack/agents/.claude/CLAUDE.md 중복 제거 — 부모 CLAUDE.md와 동일하던 Requirements Interview 사본(49줄)을 포인터로 교체

통계

  • Skills: 55
  • Agents: 10
  • MCP Servers: 1

설치 / 업데이트

/plugin install wpf-dev-pack@dotnet-claude-plugins

참고

이번에 추가된 두 skill은 원문 토론(닷넷데브 포럼 글)의 내용을 체계화한 것입니다. 기존 코드베이스에 OnExit 또는 이벤트 핸들러에서 .GetAwaiter().GetResult(), .Wait(), .Result를 사용하는 패턴이 있다면 교체를 권장합니다.

9개의 좋아요

제가 바이브코딩으로 만들었던 프로젝트에 적용하니까 최적화 할게 많이 나오네요. 감사합니다. 많은 도움이 되고 있습니다.

3개의 좋아요

이용해 주셔서 정말 감사드립니다..!

3개의 좋아요