feat: implement KM-RAG methodology artifacts and core architectural standards with supporting query and service updates
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
---
|
||||
name: nexus-architecture-standards
|
||||
description: Guidelines and automated checks for maintaining Clean Architecture and SaaS standards in the NexusReader project.
|
||||
tags: [Architecture, CleanArchitecture, .NET, MediatR, SaaS, MultiTenancy]
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# NexusReader Architecture Standards
|
||||
|
||||
This skill defines the architectural guardrails for the NexusReader project to ensure consistency, scalability, and security.
|
||||
|
||||
## Core Rules
|
||||
|
||||
### 1. Clean Architecture Layers
|
||||
- **Domain**: Pure business logic, entities, and enums. Zero dependencies on other layers.
|
||||
- **Application**: Use cases, MediatR handlers, and interfaces. Depends ONLY on Domain.
|
||||
- **Infrastructure**: Implementation details (DB context, AI services, Auth). Depends on Application and Domain.
|
||||
- **Web/Mobile**: Presentation layer. Depends on Application (and Infrastructure for DI setup).
|
||||
|
||||
> [!CAUTION]
|
||||
> **Application MUST NOT depend on Infrastructure.** This is a common failure mode. Always use abstractions (interfaces) in Application and implement them in Infrastructure.
|
||||
|
||||
### 2. Multi-Tenancy (Tenant Isolation)
|
||||
- Every entity related to user data MUST have a `TenantId` property.
|
||||
- Every query MUST filter by `TenantId` to prevent data leakage.
|
||||
- Default `TenantId` is "global" for shared resources.
|
||||
|
||||
### 3. Error Handling
|
||||
- Use `FluentResults` (`Result<T>`) for all Application services and handlers.
|
||||
- Avoid throwing exceptions for expected business failures; use `Result.Fail()`.
|
||||
|
||||
### 4. MediatR Patterns
|
||||
- **Queries**: Read-only operations. Should return `Result<T>`. Use `AsNoTracking()` in EF Core.
|
||||
- **Commands**: State-changing operations. Should return `Result` or `Result<T>`.
|
||||
|
||||
## Audit Scripts
|
||||
- [ArchCheck.sh](scripts/arch_check.sh): A shell script to scan for illegal cross-layer imports.
|
||||
|
||||
## Reference Materials
|
||||
- [Layer Dependency Matrix](artifacts/layer_matrix.md)
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Simple script to check for Clean Architecture violations in NexusReader
|
||||
|
||||
APP_DIR="src/NexusReader.Application"
|
||||
VIOLATIONS=$(grep -r "using NexusReader.Infrastructure" "$APP_DIR")
|
||||
|
||||
if [ -n "$VIOLATIONS" ]; then
|
||||
echo "ERROR: Clean Architecture violations found in $APP_DIR:"
|
||||
echo "$VIOLATIONS"
|
||||
exit 1
|
||||
else
|
||||
echo "SUCCESS: No illegal Infrastructure dependencies found in Application layer."
|
||||
exit 0
|
||||
fi
|
||||
Reference in New Issue
Block a user