mcpField
A
adr-scaffold

adr-scaffold

github.com/gravito-framework开发240 次安装27 周前更新
代码仓库

关于 adr-scaffold

用于按 Action-Domain-Responder 模式搭建 Gravito 应用的编码技能。它指导代码组织,让业务操作由 Action 承担,HTTP 控制器负责请求与响应处理。

主要功能

  1. 01Action-Domain-Responder 结构
  2. 02每项业务操作对应一个 Action
  3. 03精简的 HTTP 控制器
  4. 04Repository 与 Model 组织方式
  5. 05分步实现工作流

适用场景

  1. 01规划 Gravito 应用结构
  2. 02分离业务逻辑与 HTTP 处理
  3. 03实现多行事务操作
  4. 04搭建 API 路由与控制器

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gravito-framework/gravito --skill adr-scaffold

安装后在 Claude Code 中输入/adr-scaffold确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
.keep
references/
.keep
adr-rules.md
scripts/
.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)

  1. 实体:在 src/models/ 中定义 Atlas Model。
  2. 持久化:在 src/repositories/ 中构建 Repository。
  3. 契约:在 src/types/ 中定义 Request/Response 类型。
  4. 逻辑:在 src/actions/[Domain]/ 中实现单一 Action。
  5. Responder:在 src/controllers/ 中创建 Controller,将各部分连接起来。
  6. 路由:在 src/routes/api.ts 中映射路由。

评论

支持 Markdown