source: update Base rule Agent

This commit is contained in:
2026-03-09 18:01:01 +07:00
parent 3003a0ff0b
commit fd9f558fa1
22 changed files with 501 additions and 1426 deletions

View File

@@ -1,40 +1,40 @@
---
name: GenerateNTierFeature
description: Hướng dẫn to một feature theo chuẩn N-Tier (bao gồm Entity, Interface, Service, Controller và cấu hình Dependency Injection).
description: Guide to generating an N-Tier architecture feature (including Entity, Interface, Service, Controller, and Dependency Injection configuration).
---
# GenerateNTierFeature Skill
Khi user yêu cầu to một feature theo luồng **N-Tier** với đầu vào là **Tên Feature** (VD: `Category`), bạn **BẮT BUỘC** phải thực hiện các bước sau để sinh ra code file tương ứng:
When a user requests to create a feature using the **N-Tier** flow, providing the **Feature Name** (e.g., `Category`), you **MUST** follow these steps to generate the corresponding code and files:
## 1. Đầu ra thư mục và file (Outputs)
## 1. Directory and File Outputs
Hãy tạo các file sau với nội dung phù hợp cho {FeatureName}:
Create the following files with appropriate content for the {FeatureName}:
1. **Domain Entity**
- **Đường dẫn**: `Domain/Entities/{FeatureName}.cs`
- **Nội dung**: Lớp Entity cơ bản định nghĩa các thuộc tính.
- **Path**: `Domain/Entities/{FeatureName}.cs`
- **Content**: A basic Entity class defining the properties.
2. **Service Interface**
- **Đường dẫn**: `Application/Interfaces/I{FeatureName}Service.cs`
- **Nội dung**: Các interface định nghĩa hợp đồng hàm cho {FeatureName}.
- **Path**: `Application/Interfaces/I{FeatureName}Service.cs`
- **Content**: Interfaces defining the method contracts for {FeatureName}.
3. **Service Implementation**
- **Đường dẫn**: `Application/Services/{FeatureName}Service.cs`
- **Nội dung**: Lớp kế thừa từ `I{FeatureName}Service`. **Yêu cầu:** Nhận Dependency Injection (DI) thông qua constructor (ví dụ: `IRepository<{FeatureName}>`).
- **Path**: `Application/Services/{FeatureName}Service.cs`
- **Content**: A class that inherits from `I{FeatureName}Service`. **Requirement:** Use constructor Dependency Injection (DI) to receive instances (e.g., `IRepository<{FeatureName}>`).
4. **WebAPI Controller**
- **Đường dẫn**: `WebAPI/Controllers/{FeatureName}sController.cs` (Lưu ý thêm số nhiều cho tên Controller).
- **Nội dung**: Lớp Controller. **Yêu cầu:** Phải nhận DI `I{FeatureName}Service` thông qua constructor và định nghĩa các endpoint tương ứng.
- **Path**: `WebAPI/Controllers/{FeatureName}sController.cs` (Remember to pluralize the Controller name).
- **Content**: The Controller class. **Requirement:** Must receive `I{FeatureName}Service` via constructor DI and define the corresponding endpoints.
## 2. Cấu hình Dependency Injection (BƯỚC BẮT BUỘC THỰC HIỆN)
## 2. Dependency Injection Configuration (MANDATORY STEP)
⚠️ **Quan trọng:** Không giống như CQRS với MediatR ở trên, luồng N-Tier **đòi hỏi** bạn phải chèn thủ công service mới tạo vào Container IoC.
⚠️ **Important:** Unlike CQRS with MediatR mentioned above, the N-Tier flow **REQUIRES** you to manually register the newly created service into the IoC Container.
Bạn **BẮT BUỘC** phải sử dụng tool để mở file cấu hình DI của project (có thể là `DependencyInjection.cs` hoặc `ServiceCollectionExtensions.cs` tùy cấu trúc thư mục) và chèn đoạn mã sau vào hàm cấu hình service liên quan:
You **MUST** use the appropriate tool to open the project's DI configuration file (could be `DependencyInjection.cs` or `ServiceCollectionExtensions.cs` depending on the directory structure) and inject the following code block into the relevant service configuration method:
```csharp
services.AddScoped<I{FeatureName}Service, {FeatureName}Service>();
```
Hãy đảm bảo bạn dùng công cụ sửa file chính xác (`replace_file_content` hoặc `multi_replace_file_content`) để không làm hỏng cú pháp của file DI.
Make sure to use an accurate file editing tool (`replace_file_content` or `multi_replace_file_content`) to avoid breaking the DI file's syntax.