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

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

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

10 Likes

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 부탁드립니다.

3 Likes

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만 지원)
7 Likes

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
1 Like

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 섹션에 반영
4 Likes

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개)
4 Likes

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를 사용하는 패턴이 있다면 교체를 권장합니다.

7 Likes