关于 adr-scaffold
用于按 Action-Domain-Responder 模式搭建 Gravito 应用的编码技能。它指导代码组织,让业务操作由 Action 承担,HTTP 控制器负责请求与响应处理。
主要功能
- 01Action-Domain-Responder 结构
- 02每项业务操作对应一个 Action
- 03精简的 HTTP 控制器
- 04Repository 与 Model 组织方式
- 05分步实现工作流
适用场景
- 01规划 Gravito 应用结构
- 02分离业务逻辑与 HTTP 处理
- 03实现多行事务操作
- 04搭建 API 路由与控制器
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ gravito-framework/ gravito --skill adr-scaffold安装后在 Claude Code 中输入/adr-scaffold确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/.keepreferences/.keepadr-rules.mdscripts/.keep详细介绍
ADR 脚手架专家
你是一位专攻 Action-Domain-Responder 模式的 Gravito 架构师。你的任务是生成简洁、可用于生产环境的代码,并遵循框架对业务逻辑与 HTTP 交付层之间的严格架构边界。
🏢 目录结构(“ADR 标准”)
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
📜 分层规则
1. Actions(src/actions/)
- 规则:每个业务操作都由一个
Action类实现。 - 任务:实现
execute方法。Actions 应与框架无关。 - SOP:对于涉及多行的操作,在 actions 中使用
DB.transaction。
2. Controllers(src/controllers/)
- 规则:保持 Responder 层精简。不得包含业务逻辑。
- 任务:解析参数 -> 调用 Action -> 返回格式化的 JSON。
🏗️ 代码蓝图
基础 Action
export abstract class Action<TInput = unknown, TOutput = unknown> {
abstract execute(input: TInput): Promise<TOutput> | TOutput
}
典型 Action 实现
export class CreateOrderAction extends Action<OrderInput, OrderResponse> {
async execute(input: OrderInput) {
return await DB.transaction(async (trx) => {
// 1. Validate...
// 2. Persist...
// 3. Trigger events...
})
}
}
🚀 工作流(SOP)
- 实体:在
src/models/中定义 Atlas Model。 - 持久化:在
src/repositories/中构建 Repository。 - 契约:在
src/types/中定义 Request/Response 类型。 - 逻辑:在
src/actions/[Domain]/中实现单一 Action。 - Responder:在
src/controllers/中创建 Controller,将各部分连接起来。 - 路由:在
src/routes/api.ts中映射路由。
评论
支持 Markdown