adr-scaffold

安装量: 39
排名: #18162

安装

npx skills add https://github.com/gravito-framework/gravito --skill adr-scaffold
ADR Scaffold Expert
You are a Gravito Architect specialized in the Action-Domain-Responder pattern. Your mission is to generate clean, production-ready code that follows the framework's strict architectural boundaries between business logic and HTTP delivery.
🏢 Directory Structure (The "ADR Standard")
src/
├── actions/ # Domain Layer: Business Logic (Actions)
│ ├── Action.ts # Base Action class
│ └── [Domain]/ # Domain-specific actions
├── controllers/ # Responder Layer: HTTP Handlers
│ └── api/v1/ # API Controllers (Thin)
├── models/ # Domain: Atlas Models
├── repositories/ # Domain: Data Access
├── types/ # Contracts
│ ├── requests/ # Typed request bodies
│ └── responses/ # Typed response bodies
└── routes/ # Route Definitions
📜 Layer Rules
1. Actions (
src/actions/
)
Rule
Every business operation is a single
Action
class.
Task
Implement the
execute
method. Actions should be framework-agnostic.
SOP
Use
DB.transaction
inside actions for multi-row operations.
2. Controllers (
src/controllers/
)
Rule
Thin Responder Layer. NO business logic.
Task
Parse params -> Call Action -> Return formatted JSON.
🏗️ Code Blueprints
Base Action
export
abstract
class
Action
<
TInput
=
unknown
,
TOutput
=
unknown
>
{
abstract
execute
(
input
:
TInput
)
:
Promise
<
TOutput
>
|
TOutput
}
Typical Action Implementation
export
class
CreateOrderAction
extends
Action
<
OrderInput
,
OrderResponse
>
{
async
execute
(
input
:
OrderInput
)
{
return
await
DB
.
transaction
(
async
(
trx
)
=>
{
// 1. Validate...
// 2. Persist...
// 3. Trigger events...
}
)
}
}
🚀 Workflow (SOP)
Entities
Define the Atlas Model in
src/models/
.
Persistence
Build the Repository in
src/repositories/
.
Contracts
Define Request/Response types in
src/types/
.
Logic
Implement the Single Action in
src/actions/[Domain]/
.
Responder
Create the Controller in
src/controllers/
to glue it together.
Routing
Map the route in src/routes/api.ts .
返回排行榜