agentsclimarketplace

Neo clean architecture

Skill Benknightdark/neo-skills/skills/neo-clean-architecture

Neo Skills 是專為現代 AI Agent 設計的全方位能力擴充套件。本專案透過標準化的通訊架構,為 AI 代理安裝可插拔的「技能模組 (Skills)」,使其不僅僅是一個聊天機器人,而是能轉化為具備「感知-推理-行動」能力的多領域專家。

Install
npx -y skills add Benknightdark/neo-skills --skill neo-clean-architecture

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use this skill when the user wants to design, implement, review, or refactor software systems conforming to Clean Architecture principles. It structures code into Domain, Application, Infrastructure, and Presentation/API layers, enforcing inward-only dependencies. It advocates rich domain models, CQRS, and the Result pattern, operating on technology-neutral concepts without database or framework bindings.

SKILL.md

5.4 KB, as published. Nobody here has run it

Clean Architecture

Design and review software systems using Clean Architecture. The core objective is separating concerns based on their rate of change, directing all source code dependencies inward toward the Domain core.

Gotchas

  • Anemic Models: Entities that are mere data containers (only getters/setters) leak business logic. Entities must protect their invariants. State changes must go through explicit, business-oriented methods.
  • Pointless Value Objects: Avoid wrapping primitives (e.g., string, number) unless they encapsulate validation (e.g., email format) or behavior (e.g., auto-slug generation).
  • Deep Object Graphs: Do not nest full entities for associations. Loading a parent entity will trigger database performance issues. Reference other aggregates using IDs instead.
  • Dependency Leakage: Repository interfaces must reside in the Application layer, with implementations in Infrastructure. Never return query streams (e.g., IQueryable) to Application, as it leaks database concerns.
  • Exception Control Flow: Do not throw runtime exceptions for expected business failures (e.g., duplicate title, user not found). Use the Result pattern for flow control.

Workflow Checklist

Progress:

  • Step 1: Analyze Core & Boundaries (See references/design_principles.md).
  • Step 2: Design Domain Layer (Build entities and value objects; protect invariants).
  • Step 3: Design Application Layer (Define use case handlers, CQRS inputs, and repository interfaces).
  • Step 4: Implement Outer Layers (Implement database mapping, external services, and API controllers).
  • Step 5: Audit Architecture Health (Use assets/review_checklist.md to scan code).

Detailed Guidelines

Step 1 — Analyze Core & Boundaries

  1. Categorize business rules:
    • Domain Layer: Core rules that would exist even without a computer system.
    • Application Layer: System orchestration, workflows, and protocols.
    • Outer Layers (Infrastructure/Presentation): Delivery mechanisms and persistence details.
  2. Read design_principles.md for architectural details.

Step 2 — Design Domain Layer

  1. Entities: Keep setters private or read-only.
  2. Domain Methods: Expose semantic operations (e.g., updateContent(), addTag()) that validate rules inside the entity.
  3. Associations: Keep aggregates decoupled by referencing other aggregate roots via ID only.

Step 3 — Design Application Layer

  1. Separate write operations (Commands) from read operations (Queries) using CQRS.
  2. Define technology-neutral interfaces (e.g., IUserRepository), keeping database or network specifics out of Application.
  3. Wrap use case outcomes in a Result type containing success/failure status, value, error type, and message. Refer to layer_specifications.md for concepts mapping.

Step 4 — Implement Infrastructure & Presentation

  1. Infrastructure: Implement interfaces defined in Application. Configure ORM/database mappings, value conversions, and call external services.
  2. Presentation/API: Handle transmission protocols (e.g., HTTP, gRPC). Map request payload to Command/Query, dispatch it to Application, and translate the Result into appropriate responses (e.g., HTTP 200, 201, 400, 404, 409).

Output Templates

1. Architecture Blueprint Template

# [System Name] Clean Architecture Blueprint

## 1. Domain Layer
* **Entities & Aggregate Roots**:
  - `EntityName` (ID-association explanation)
* **Value Objects**:
  - `ValueObjectName` (Validation and behavior description)

## 2. Application Layer
* **Use Cases (CQRS / Handlers)**:
  - `CreateSomethingCommand` & Handler
  - `GetSomethingQuery` & Handler
* **External Interfaces (Gateways / Repositories)**:
  - `ISomethingRepository` (Interface methods)

## 3. Infrastructure Layer
* **Persistence Configurations**:
  - `SomethingRepository` implementation notes
  - Value Object persistence mapping rules

## 4. Presentation / API Layer
* **Contracts (Request/Response)**:
  - `CreateSomethingRequest` -> `SomethingResponse`
* **Route & Status Code Mappings**:
  - `POST /api/something` -> `201 Created` / `400 Bad Request` / `409 Conflict`

2. Architecture Review Template

# Clean Architecture Review — [Project Name]

## Health Score: [Score]/10
[Brief architectural health assessment]

## Findings & Recommendations
### 🔴 Critical (Dependency Violation / Invariant Leakage)
* **Location**: `path/to/file.ext#L12-30`
* **Problem**: [Description of the clean architecture violation]
* **Remediation**:
  ```[language]
  // Corrected code snippet

🟡 Warning (Anemic Model / Pointless Wrapping)

  • Location: path/to/file.ext
  • Problem: [Issue description]
  • Remediation: [Code or prose description]

🟢 Info (Structural / Pipeline Enhancements)

  • Location: path/to/file.ext
  • Remediation: [Suggestion details]

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.