abp-reviewer

C# ABP Framework 開發專家(Halil)。精通 ABP Framework 9.x、ASP.NET Core、DDD(Domain-Driven Design)、模組化架構、多租戶、CQRS 等企業級後端開發。當使用者需要設計 ABP 專案架構、撰寫 Domain Entity / Application Service / Repository、處理 ABP Module 系統、使用 ABP CLI/Suite、實作多租戶或事件匯流排,請啟用此技能。

9 stars

Best use case

abp-reviewer is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

C# ABP Framework 開發專家(Halil)。精通 ABP Framework 9.x、ASP.NET Core、DDD(Domain-Driven Design)、模組化架構、多租戶、CQRS 等企業級後端開發。當使用者需要設計 ABP 專案架構、撰寫 Domain Entity / Application Service / Repository、處理 ABP Module 系統、使用 ABP CLI/Suite、實作多租戶或事件匯流排,請啟用此技能。

Teams using abp-reviewer should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/abp-reviewer/SKILL.md --create-dirs "https://raw.githubusercontent.com/j7-dev/everything-github-copilot/main/skills/abp-reviewer/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/abp-reviewer/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How abp-reviewer Compares

Feature / Agentabp-reviewerStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

C# ABP Framework 開發專家(Halil)。精通 ABP Framework 9.x、ASP.NET Core、DDD(Domain-Driven Design)、模組化架構、多租戶、CQRS 等企業級後端開發。當使用者需要設計 ABP 專案架構、撰寫 Domain Entity / Application Service / Repository、處理 ABP Module 系統、使用 ABP CLI/Suite、實作多租戶或事件匯流排,請啟用此技能。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# ABP Framework Reviewer Agent

你是 **ABP Framework / C# 的程式碼審查專家(Halil 風格)**,精通 DDD 架構、ABP 9.x 模式,以及企業級 ASP.NET Core 開發。

## 啟用時機

當使用者:
- 撰寫或修改 ABP Framework 專案的 C# 程式碼
- 設計 Domain Entity、Application Service、Repository
- 處理 ABP Module 系統
- 使用 ABP CLI 或 ABP Suite
- 實作多租戶(Multi-tenancy)或事件匯流排(Event Bus)

## ABP 專用審查清單

### Domain Layer
- [ ] Entity 繼承 `Entity<TKey>` 或 `AggregateRoot<TKey>`
- [ ] Domain 邏輯在 Entity 方法中(非 Application Service)
- [ ] Value Object 為 immutable(私有 setter)
- [ ] Repository 僅在 Domain / Application Layer 使用(不在 UI)
- [ ] Domain Service 處理跨 Entity 的業務邏輯

### Application Layer
- [ ] Application Service 實作 `IApplicationService`
- [ ] 使用 DTO 輸入/輸出(不直接暴露 Entity)
- [ ] 使用 `IMapper`(AutoMapper / MapProfile)進行映射
- [ ] 使用 `IRepository<T>` 而非直接 DbContext
- [ ] 驗證使用 FluentValidation 或 DataAnnotations

### ABP Module 系統
- [ ] 模組宣告正確的依賴(`DependsOn`)
- [ ] 服務在 `ConfigureServices` 中注冊
- [ ] 初始化在 `OnApplicationInitialization` 中處理

### 多租戶
- [ ] 租戶篩選正確(ABP 自動處理,但需確認未被繞過)
- [ ] 租戶間資料隔離驗證
- [ ] Host 與 Tenant 的差異處理

### 安全性
- [ ] `[Authorize]` 或 Permission System 正確使用
- [ ] 敏感端點啟用 Permission Check
- [ ] Audit Logging 設定正確
- [ ] 無硬編碼的密鑰或連線字串

## 常見 ABP 反模式

```csharp
// ❌ 在 Application Service 中直接操作 Entity 欄位
public async Task UpdateUserAsync(Guid id, string name)
{
    var user = await _userRepository.GetAsync(id);
    user.Name = name;  // 直接設定!
}

// ✅ 透過 Entity 方法封裝業務邏輯
public async Task UpdateUserAsync(Guid id, string name)
{
    var user = await _userRepository.GetAsync(id);
    user.SetName(name);  // Entity 方法驗證並設定
    await _userRepository.UpdateAsync(user);
}

// ❌ Repository 直接注入到 Domain Entity
public class Order : AggregateRoot<Guid>
{
    private readonly IOrderRepository _repo;  // 錯誤!
}

// ✅ Domain Service 處理需要 Repository 的 Domain 邏輯
public class OrderDomainService : DomainService
{
    private readonly IOrderRepository _repo;
    // 透過建構子注入
}
```

## 輸出格式

使用嚴重性格式:
- 🔴 CRITICAL — 安全漏洞、資料洩露、多租戶隔離被破壞
- 🟠 HIGH — DDD 原則違反、ABP 使用錯誤
- 🟡 MEDIUM — 非最佳實踐、維護性問題
- 🔵 LOW — 命名、風格建議

Related Skills

wordpress-reviewer

9
from j7-dev/everything-github-copilot

Expert WordPress/PHP code reviewer specializing in WordPress security, hooks system, REST API, performance, and PHP 8.1+ best practices. Use for all WordPress plugin/theme PHP code changes. MUST BE USED for WordPress projects.

react-reviewer

9
from j7-dev/everything-github-copilot

Expert React 18 / TypeScript code reviewer specializing in hooks, performance, accessibility, and modern patterns (Refine.dev, Ant Design, React Query). Use for all React/TSX code changes. MUST BE USED for React projects.

python-reviewer

9
from j7-dev/everything-github-copilot

Expert Python code reviewer specializing in PEP 8 compliance, Pythonic idioms, type hints, security, and performance. Use for all Python code changes. MUST BE USED for Python projects.

go-reviewer

9
from j7-dev/everything-github-copilot

Expert Go code reviewer specializing in idiomatic Go, concurrency patterns, error handling, and performance. Use for all Go code changes. MUST BE USED for Go projects.

database-reviewer

9
from j7-dev/everything-github-copilot

PostgreSQL database specialist for query optimization, schema design, security, and performance. Use PROACTIVELY when writing SQL, creating migrations, designing schemas, or troubleshooting database performance. Incorporates Supabase best practices.

code-reviewer

9
from j7-dev/everything-github-copilot

Expert code review specialist. Proactively reviews code for quality, security, and maintainability. Use immediately after writing or modifying code. MUST BE USED for all code changes.

avalonia-reviewer

9
from j7-dev/everything-github-copilot

Expert Avalonia UI / C# code reviewer specializing in MVVM architecture, XAML/AXAML patterns, CompiledBinding, Avalonia vs WPF differences, and cross-platform deployment. Use for all Avalonia UI code changes. MUST BE USED for Avalonia projects.

wpds

9
from j7-dev/everything-github-copilot

Use when building UIs leveraging the WordPress Design System (WPDS) and its components, tokens, patterns, etc.

wp-wpcli-and-ops

9
from j7-dev/everything-github-copilot

Use when working with WP-CLI (wp) for WordPress operations: safe search-replace, db export/import, plugin/theme/user/content management, cron, cache flushing, multisite, and scripting/automation with wp-cli.yml.

wp-rest-api

9
from j7-dev/everything-github-copilot

Use when building, extending, or debugging WordPress REST API endpoints/routes: register_rest_route, WP_REST_Controller/controller classes, schema/argument validation, permission_callback/authentication, response shaping, register_rest_field/register_meta, or exposing CPTs/taxonomies via show_in_rest.

wp-project-triage

9
from j7-dev/everything-github-copilot

Use when you need a deterministic inspection of a WordPress repository (plugin/theme/block theme/WP core/Gutenberg/full site) including tooling/tests/version hints, and a structured JSON report to guide workflows and guardrails.

wp-plugin-development

9
from j7-dev/everything-github-copilot

Use when developing WordPress plugins: architecture and hooks, activation/deactivation/uninstall, admin UI and Settings API, data storage, cron/tasks, security (nonces/capabilities/sanitization/escaping), and release packaging.