Appearance
Metanaka .NET Architecture
Rule Levels
[Required]: 違反は必須修正として扱う。[Recommended]: 原則として採用する。合理的な理由がある逸脱は許容する。[Contextual]: 記載した条件が成立するときだけ適用する。根拠が不足する場合は違反ではなく確認事項として扱う。
レビュー判定に使う規則はlevel tag付きの箇条書きだけとする。tagのない文章とcode sampleは背景、理由、例を示す。 レビューでは[Required]違反を必須修正、[Recommended]からの理由なき逸脱を任意改善として扱う。[Contextual]は条件成立を確認できた場合にだけ適用し、規則内に重要度が明記されていなければ確認事項として扱う。
仕様判断は要件定義、設計判断は設計資料を正とし、このskillは.NET backendの責務境界と設計規約を定義する。
Routing
作業対象に該当するreferenceをすべて読む。一つの変更が複数領域へまたがる場合は、一つだけ選ばない。
- directory構造、Feature/Area境界、domain model、Infrastructure配置は
references/architecture.mdを読む。 - Minimal API、HTTP境界、DTO、認証filter、OpenAPIは
references/http.mdを読む。 - Handler、Command、application result、業務errorは
references/application.mdを読む。 - FluentValidation、Value Object factoryのHTTP境界での呼び出し、validation filter、problem mappingは
references/validation.mdを読む。Value Object化の要否と型設計はarchitecture.mdを正とする。 - Repository Port、Transaction/Scope、永続化境界は
references/persistence.mdを読む。 - EF Core、
DbContext、entity mapping、tracking、optimistic concurrency、relational transaction、migrationはreferences/ef-core.mdに加え、同じ作業対象に該当するarchitecture、persistence、runtimeなどの共通referenceを読む。 - Firestore SDK、Document DTO、path、transaction callbackは
references/firestore.mdに加え、同じ作業対象に該当するarchitecture、persistence、runtimeなどの共通referenceを読む。Firestore taskという理由だけで共通referenceを全件読む必要はない。 - TimeProvider、async、CancellationToken、DIは
references/runtime.mdを読む。 - 単一fileか複数fileかを問わず、複数のOwnership領域をまたぐレビューは
references/review.mdと、作業対象のreferenceを併読する。 - EndpointからHandler、portまでの責務分担を具体的な複数fileで確認する必要がある場合だけ
samples/room-create/README.mdと、そこから案内するsourceを読む。sampleは規則の正本ではなく、対象外の構造まで模倣しない。 - RFC 9457 Problem Details、FluentValidationの全体fail-fast、ErrorOr mapping、Endpoint Filterを一続きのcompile可能な例で確認する場合は
samples/rfc9457-errors/README.mdを読む。このsampleは既知のvalidation/application error経路だけを示し、API全体のexception pipelineやpersistence設計の代わりに使わない。
Ownership
[Required]architectureは配置、依存方向、Feature/Area境界の正本にする。[Required]Value Object化の判定条件と型設計はarchitectureを正本にする。[Required]httpはMinimal API、HTTP境界、DTO、認証filter、OpenAPIの正本にする。[Required]applicationはHandler、Command、application result、業務errorの正本にする。[Required]validationはHTTP入力からValue Objectへの変換と失敗の扱い、FluentValidation、validation filter、problem mappingの正本にする。[Required]persistenceはprovider非依存の永続化抽象、ef-coreはEF CoreとRDB固有差分、firestoreはFirestore固有差分の正本にする。[Required]runtimeは時刻、async、cancellation、DIの正本にする。[Required]reviewはレビュー範囲、根拠、重要度だけを定義し、技術規則を再掲しない。