feat(skill): REQ-20260406-0004 技能三层分离重构(7主线+16插件)

批次1: req-prd 瘦身 + req-design 重定位 + dev-coding 聚焦
批次2: dev-review 新建 + review-checklist 插件
批次3: dev-integration 新建 + req-compare 拆出
批次4: 插件完善 (req-research/db-migration/dev-scaffold/deploy-rollback)
批次5: 平台拆分 (dev-ios/dev-android/dev-mcp/dev-pda) + dev 分组更新
批次6: marketplace.json 32→44 plugins

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-06 17:43:30 +09:30
parent 31c2d5a474
commit 3706d7f32d
35 changed files with 2178 additions and 623 deletions

View File

@@ -0,0 +1,8 @@
{
"name": "dev-integration-plugin",
"description": "前后端联调技能。API 契约验证、联调报告、纯后端需求自动跳过。对应 req 流程 integration 阶段。",
"version": "1.0.0",
"author": {
"name": "qiudl"
}
}

View File

@@ -0,0 +1,154 @@
---
name: dev-integration
description: 前后端联调技能。API 契约验证、接口对接、联调报告生成。对应 req 流程 integration 阶段。纯后端需求自动跳过。
---
# 前后端联调 Skill (dev-integration)
## 概述
本技能用于前后端联调阶段,确保实际实现与 API 契约一致。
**核心价值**:发现契约偏差(字段名不一致、类型不匹配、缺少错误码处理)比测试阶段更早、修复成本更低。
---
## 技能间契约
| 上游 | 本技能输入 | 本技能输出 | 下游 |
|------|-----------|-----------|------|
| dev-coding | 已实现的前后端代码 + API 契约(来自 req-design | 联调报告(通过/不通过 + 问题列表) | dev-test |
---
## 自动跳过条件
以下情况 integration 阶段**自动通过**,无需执行联调:
| 条件 | 原因 |
|------|------|
| 需求只有后端 implementation 任务(无前端任务) | 没有前端对接,无需联调 |
| 需求只有前端 implementation 任务(无后端任务) | 使用已有 API无需联调 |
| 需求无 implementation 任务(纯 skill/ops/doc | 非代码需求 |
**检测方法**
```
get_requirement_tasks → 检查 linkRole=implementation 的任务标题
含【开发-后端】和【开发-前端】→ 需要联调
仅含一端 → 自动跳过
```
---
## 工作流程
```
1. 检查是否需要联调
├── 获取 implementation 任务列表
├── 判断是否有前后端双端任务
└── 仅单端 → 自动跳过,生成跳过说明
2. 获取 API 契约
├── 从 req-design 文档中提取 API 契约
└── 无契约 → 从代码反推接口定义
3. 契约验证
├── 后端实际接口 vs 契约定义
│ ├── URL 路径是否一致
│ ├── 请求/响应字段名是否一致
│ ├── 字段类型是否匹配
│ └── 错误码是否完整
├── 前端调用 vs 契约定义
│ ├── API service 调用路径是否正确
│ ├── 请求参数是否完整
│ └── 响应处理是否覆盖所有错误码
└── 前端 ↔ 后端一致性
├── 字段命名一致camelCase vs snake_case 转换)
└── 分页参数格式一致
4. 功能对接验证
├── 前端表单字段 vs 后端 binding 规则
├── 前端列表列 vs 后端响应字段
└── 前端状态流转 vs 后端状态机
5. 生成联调报告
├── 契约一致性结果
├── 发现的偏差列表
└── 结论:通过/不通过
```
---
## 联调报告模板
```markdown
## 联调报告 — {需求标题}
**日期**: YYYY-MM-DD
**API 契约来源**: {req-design 文档 / 代码反推}
### 契约验证结果
| # | 接口 | 契约 | 后端实际 | 前端调用 | 结果 |
|---|------|------|---------|---------|------|
| 1 | POST /api/v1/xxx | ✅ 已定义 | ✅ 一致 | ✅ 一致 | PASS |
| 2 | GET /api/v1/xxx | ✅ 已定义 | ⚠️ 字段名不一致 | ✅ 一致 | FAIL |
### 发现的偏差
| # | 类型 | 接口 | 描述 | 影响 | 建议 |
|---|------|------|------|------|------|
| 1 | 字段名不一致 | GET /api/v1/xxx | 契约定义 `created_at`,后端返回 `createTime` | 前端解析失败 | 统一为 `created_at` |
### 结论
**{通过 / 不通过}**
{如不通过,列出必须修复的偏差编号}
```
---
## 插件支持
| 插件 | 触发条件 | 说明 |
|------|---------|------|
| `api-contract-verify` | 有 API 变更 | 自动化契约验证(未来) |
---
## 与 ai-proj 集成
### req 流程内
```typescript
// 创建联调任务(如需要)
mcp__ai-proj__create_task({ title: "【联调】前后端对接: {需求标题}" })
mcp__ai-proj__link_tasks_to_requirement({
requirementId, taskIds: [taskId], linkRole: "implementation"
})
// 附加联调报告
mcp__ai-proj__create-and-attach({
taskId, title: "联调报告", content: "<报告内容>"
})
```
### 自动跳过时
```typescript
// 记录跳过原因
mcp__ai-proj__create-and-attach({
taskId: <设计任务ID>,
content: "## 联调阶段\n\n自动跳过仅后端变更无前端对接。"
})
```
---
## 最佳实践
1. **契约先行** — API 契约是联调的基准,没有契约就先补
2. **字段级验证** — 不只检查接口是否通,要检查每个字段名、类型、格式
3. **错误码覆盖** — 前端必须处理契约中定义的所有错误码
4. **snake_case 转换** — Go 后端用 snake_case前端用 camelCase确认自动转换正确