feat: implement KM-RAG methodology artifacts and core architectural standards with supporting query and service updates

This commit is contained in:
2026-05-03 16:12:07 +02:00
parent 1f187b5125
commit afdfc31d1a
11 changed files with 823 additions and 11 deletions
@@ -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