← Back to list

csharp-architect
by ShortArrow
dotfiles of shortarrow
⭐ 2🍴 0📅 Jan 21, 2026
SKILL.md
name: csharp-architect description: | C# software development with MVVM, Clean Architecture, TDD, CQRS, and DDD. Use for: linter warnings, build errors, refactoring, feature implementation, code review. Triggers: C#, .NET, MVVM, Clean Architecture, DDD, CQRS, TDD, リファクタリング, コードレビュー allowed-tools: Read, Edit, Write, Bash, Grep, Glob, Task
C# Architect Skill
MVVM × Clean Architecture × TDD × CQRS × DDD に基づくC#ソフトウェア開発スキル。
Core Principles
Clean Architecture Layers
┌─────────────────────────────────────────┐
│ Presentation (MVVM) │ ← ViewModels, Views
├─────────────────────────────────────────┤
│ Application (CQRS) │ ← Commands, Queries, Handlers
├─────────────────────────────────────────┤
│ Domain (DDD) │ ← Entities, ValueObjects, Services
├─────────────────────────────────────────┤
│ Infrastructure │ ← Repositories, External Services
└─────────────────────────────────────────┘
依存関係の方向: 外側 → 内側(Domain は何にも依存しない)
MVVM Guidelines
- View: XAML/Razor のみ、コードビハインドは最小限
- ViewModel:
INotifyPropertyChanged,ICommand実装 - Model: Domain 層のエンティティを使用
CQRS Guidelines
- Command: 状態を変更、戻り値なし or ID のみ
- Query: 状態を変更しない、DTOを返す
- Handler: 単一責任、1ハンドラー1操作
DDD Guidelines
- Entity: 一意の識別子を持つ
- Value Object: 不変、等価性は値で判断
- Aggregate Root: トランザクション境界
- Domain Service: エンティティに属さないビジネスロジック
- Repository: Aggregate Root 単位でのみ定義
TDD Workflow
- Red: 失敗するテストを書く
- Green: 最小限のコードでテストを通す
- Refactor: コードを改善(テストは緑のまま)
Task-Specific Instructions
Linter Warning Resolution
- 警告メッセージを正確に読む
- 根本原因を特定(表面的な修正を避ける)
- アーキテクチャ原則に従って修正
- 修正後、関連するテストを実行
よくある警告と対応:
CA1062: null チェック追加 or nullable 参照型を使用CA1822: インスタンス状態を使わないなら static にCS8618: nullable 参照型を有効化、または初期化を保証
Build Error Resolution
- エラーメッセージ全体を読む
- 依存関係の問題か、コードの問題かを判別
- 依存関係 → NuGet/プロジェクト参照を確認
- コード → 型、名前空間、アクセス修飾子を確認
- 修正後、クリーンビルドで確認
Refactoring
実施前チェックリスト:
- 既存テストがすべて通る
- リファクタリングの目的が明確
- 小さなステップで進める
よく行うリファクタリング:
- Extract Method/Class
- Move to appropriate layer
- Introduce Value Object
- Replace conditional with polymorphism
実施後:
- すべてのテストを実行
- 新しい警告がないか確認
Feature Implementation
- 要件を明確化: 何を実現するか
- 影響範囲を特定: 変更が必要なレイヤー
- テストを先に書く (TDD)
- Domain から実装: 内側のレイヤーから外側へ
- インテグレーションテスト追加
実装順序:
Domain Entity/VO → Domain Service → Repository Interface
→ Application Command/Query → Handler
→ Infrastructure Repository → ViewModel → View
Code Review
レビュー観点:
-
アーキテクチャ準拠
- レイヤー間の依存関係は正しいか
- 適切なレイヤーに配置されているか
-
DDD 準拠
- ドメインロジックが Domain 層にあるか
- Aggregate の境界は適切か
-
CQRS 準拠
- Command と Query が分離されているか
- Handler は単一責任か
-
テスト品質
- 十分なカバレッジか
- テスト名は意図を表しているか
-
コード品質
- SOLID 原則に従っているか
- 命名は明確か
File Naming Conventions
Domain/
Entities/ {Name}.cs
ValueObjects/ {Name}.cs
Services/ {Name}Service.cs
Events/ {Name}Event.cs
Application/
Commands/ {Action}{Entity}Command.cs
Queries/ Get{Entity}Query.cs
Handlers/ {Command/Query}Handler.cs
DTOs/ {Name}Dto.cs
Infrastructure/
Repositories/ {Entity}Repository.cs
Services/ {External}Service.cs
Presentation/
ViewModels/ {View}ViewModel.cs
Views/ {Name}View.xaml
Common Patterns Reference
詳細なパターンと実装例は以下を参照:
- architecture.md - レイヤー詳細設計
- patterns.md - 実装パターン集
- examples.md - コード例
Quality Checklist
実装完了時に確認:
- すべてのテストが通る
- 新しい警告がない
- ビルドが成功する
- 依存関係の方向が正しい
- 命名規則に従っている
- 適切なレイヤーに配置されている
Score
Total Score
65/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
✓最近の活動
1ヶ月以内に更新
+10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
✓タグ
1つ以上のタグが設定されている
+5
Reviews
💬
Reviews coming soon


