面向多智能体团队的OpenAPI契约驱动开发工作流,解决“前端自行发明接口,后端忘记实现”的系统性缺陷。
一句话:让前端 agent 连犯错的机会都没有。
text
pm-agent 漏需求 → 架构漏设计 → 前端自造端点 → 后端没实现 → 用户看到 500
↓ 本 Skill 在此切断
OpenAPI YAML 是唯一契约 → 代码生成 → 前端只能调生成的函数 → 编译期暴露缺口
防线机制拦截什么① 契约层check-api-rules.sh 7条规则operationId缺失、ApiResponse未包裹、ErrorResponse缺失② 代码生成apiClient.ts 从前端唯一入口手写 fetch/axios、自造端点③ 运行时ops-agent 逐端口 curl路由错误、服务宕机、端口不匹配④ 设计审计coordinator 前后端期望对照架构漏设计、需求未覆盖
bash
openclaw skills install openapi-contract-driven
# 可选:openapi-typescript(TypeScript 类型生成)
npm install -D openapi-typescript
bash
cp references/openapi-template.yaml standards/{project}-openapi.yaml
# 编辑 YAML,定义你的端点
bash
bash references/check-api-rules.sh standards/{project}-openapi.yaml
# 期望:✅ 6/7 通过
bash
# 🆕 v1.1:一条命令从 YAML 生成完整 apiClient.ts
bash references/generate-api-client.sh standards/{project}-openapi.yaml \
> frontend/src/api/generated/apiClient.ts
不用再手写端点函数。 generate-api-client.sh 从 YAML 自动提取所有 path + method → operationId,生成类型安全的 export const xxx = { ... }。
bash
# 🆕 v1.1:复制 GitHub Actions 工作流
cp references/ci-github-actions.yml .github/workflows/openapi-check.yml
之后每次 PR 都会自动运行 check-api-rules.sh,契约违规直接阻断合并。
将 references/agent-templates/ 下的规则片段合并到对应角色的 Agent 配置中:
模板文件合并到architecture-agent.mdarch-agent / saas-arch-agent 的 AGENTS.mdbackend-agent.mdbackend-agent / legal-backend-agent 的 AGENTS.mdfrontend-agent.mdfrontend-agent / legal-frontend-agent 的 AGENTS.mdops-agent.mdops-agent / saas-ops-agent 的 AGENTS.mdcoordinator.md小雨(main agent)的 coordinator-spawn-template.md
→ 看 references/migration-guide.md,四阶段渐进式迁移,不改现有代码一行业务逻辑。
text
┌─────────────────────────────┐
│ pm-agent: 产品需求 │
└──────────────┬──────────────┘
▼
┌─────────────────────────────┐
│ arch-agent: 架构设计 │
│ → 输出 OpenAPI YAML (强制) │
└──────────────┬──────────────┘
▼
┌─────────────────────────────┐
│ coordinator: 对照审计 │
│ 前端期望 vs YAML 定义 │
└──────────────┬──────────────┘
┌───────┴───────┐
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ frontend-agent │ │ backend-agent │
│ 只 import 生成的 │ │ 对照 YAML 实现 │
│ apiClient │ │ Controller │
└────────┬─────────┘ └────────┬─────────┘
│ │
└────────┬───────────┘
▼
┌─────────────────────────────┐
│ ops-agent: 部署后验证 │
│ ① check-api-rules.sh │
│ ② curl 逐端口逐端点 │
└─────────────────────────────┘
.spectral.yaml 规则集(不与 Spectral CLI 耦合,bash 脚本可独立运行):
format: date-time(warn)text
openapi-contract-driven/
├── SKILL.md
├── README.md
└── references/
├── openapi-template.yaml 新项目起始模板
├── .spectral.yaml 7 条核心规则
├── check-api-rules.sh 规则检查脚本(bash only)
├── generate-api-client.sh 🆕 YAML → TypeScript 自动生成
├── apiClient-template.ts 前端 apiClient 手动模板
├── ci-github-actions.yml 🆕 GitHub Actions CI 模板
├── migration-guide.md 🆕 存量项目迁移指南
└── agent-templates/
├── architecture-agent.md
├── backend-agent.md
├── frontend-agent.md
├── ops-agent.md
└── coordinator.md
已在两个项目上跑通:
项目端点规则检查apiClientLexGuard(法律合同审查)306/7 ✅11KB寓居智联(资产管理)466/7 ✅17KB
新增/修复说明generate-api-client.sh从 YAML 自动生成 TypeScript apiClient,682行纯 bash/awk,零依赖ci-github-actions.ymlPR 时自动运行契约检查,违规阻断合并migration-guide.md存量项目四阶段渐进迁移,含 MVP 最小可行路径check-api-rules.sh 修复不再因 YAML 缩进风格差异误报;$ref 和注释引用同时匹配英文 description触达国际 DevOps 用户路径修正scripts/ → references/