Back to skills
SKILL.md
Devlab Contract Web Server
ASecurity前后端契约规范技能(contract 技能簇首个,定位介于 devlab-srv-* 与 devlab-web-* 之间)。约束大型前后端分离项目的接口/序列化契约、字段类型一致性、错误码与配置分层,提供契约校验与联调防错清单。Triggers on "前后端契约", "接口对不上", "序列化", "字段类型不一致", "contract", "api schema", "联调对齐".
- 21 stars
- 0 votes
- 0 copies
- 1 view
- Added September 1, 2026
Works with
Security analysis
100/100Pro scans all 4 files and shows the line behind each finding
npx -y skills add seed-forge/harness-ai-kit --skill devlab-contract-web-server --agent claude-codeAre you the author of Devlab Contract Web Server?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/seed-forge-devlab-contract-web-server)---
name: devlab-contract-web-server
description: 前后端契约规范技能(contract 技能簇首个,定位介于 devlab-srv-* 与 devlab-web-* 之间)。约束大型前后端分离项目的接口/序列化契约、字段类型一致性、错误码与配置分层,提供契约校验与联调防错清单。Triggers on "前后端契约", "接口对不上", "序列化", "字段类型不一致", "contract", "api schema", "联调对齐".
---
# devlab-contract-web-server
## 用途
为**大型前后端分离项目**建立并守护"契约层":前端与服务端就接口结构、字段类型、序列化形态、错误码、配置边界达成**显式契约**,避免靠口头约定导致的联调返工与线上事故。
**定位**:`devlab-contract-*` 技能簇的首个成员,处于 `devlab-srv-*`(服务端)与 `devlab-web-*`(前端)之间的**交界地带**。
## 适用场景
- 前后端分离、多人协作、接口频繁演进的中大型项目。
- 联调阶段反复出现"字段对不上/类型不匹配/序列化不一致"。
- 需要把接口从"约定俗成"升级为"可校验契约"。
## 不适用场景
- 单体、无独立前端的项目。
- 一次性脚本/内部工具(契约成本大于收益)。
## 输入
- 现有接口清单/文档(OpenAPI、代码里的 DTO/schema 等)。
- 前后端技术栈与序列化方式。
- 已发生的契约类问题(可选)。
## 输出
- 契约规范文档(字段命名/类型/可空性/枚举/时间格式约定)。
- 契约校验建议(schema 校验、契约测试落点)。
- 联调防错清单。
## 核心规范
### 1. 字段类型契约
- 每个字段显式定义:类型、可空性、枚举取值、单位、时间/数字格式。
- **类型一致性**:同一字段跨前后端类型必须一致(典型坑:`id` 服务端 int、前端传 string → 解析失败)。
- 数组元素结构显式声明(典型坑:`groupBy` 期望字符串数组,前端传对象数组 `[{field: x}]`)。
### 2. 序列化契约
- 统一约定 null/空值/缺省字段的语义(省略 vs null vs 空串)。
- 显式约定大整数/精度/日期的序列化(避免 JS number 精度、时区歧义)。
- MIME/编码显式声明(响应体类型不靠猜)。
### 3. 错误契约
- 统一错误码 + 错误体结构;区分业务错误与系统错误。
- 前端按错误码分支,不靠 message 文本判断。
### 4. 配置分层与"不过度"
- 配置分层:与某子系统强相关的配置归其命名空间(如 LLM 配置与排序配置分离),避免大杂烩。
- "既不过度也不缺失":每个真实可变项可配,不为不存在的需求预埋开关。
- 敏感配置(密钥)**不进前端**,前端只按构建工具约定前缀暴露非敏感变量。
### 5. 契约校验落点
- 服务端入参用 schema 校验(类型/必填/枚举),错误要可读(不是裸 500)。
- 有条件时用 OpenAPI/JSON Schema 作单一事实源,前后端各自生成/校验。
- 契约变更 → 契约测试先失败 → 双方同步 → 再合入(破坏性变更同步调用侧)。
## 工作流
```
Phase 1: 盘点接口与现存契约问题
Phase 2: 定义契约规范(字段/序列化/错误/配置)
Phase 3: 落地校验(schema 校验 + 契约测试落点)
Phase 4: 防错清单 + 变更流程(破坏性变更同步调用侧)
```
## 联调防错清单
- [ ] 关键字段类型前后端一致(尤其 id/数字/布尔/枚举)。
- [ ] 数组元素结构一致(对象数组 vs 标量数组)。
- [ ] null/缺省/空值语义已约定。
- [ ] 时间/时区/数字精度格式已约定。
- [ ] 错误码结构统一,前端按码分支。
- [ ] 敏感配置未进前端;环境变量前缀正确。
- [ ] 契约变更走"契约测试先行 + 同步调用侧"。
## 与其他 devlab-* Skill 的关系
| Skill | 关系 | 说明 |
|-------|------|------|
| `devlab-srv-*` | **邻接(服务端侧)** | 服务端接口实现与入参校验 |
| `devlab-web-*` | **邻接(前端侧)** | 前端接口调用与类型定义 |
| `devlab-contract-*`(簇) | **同簇** | 未来可扩展 contract-service-service、contract-event 等 |
| `devlab-ai-agent-engineering` | **调用方** | AI 应用前后端交互契约引用本技能 |
## 约束
- 契约是**双方共识**,任何一方单改必须走"契约测试先行 + 同步对侧"。
- 不硬编码具体 URL/端口/凭据;示例字段不含真实隐私数据。
- 规范要可校验,避免只写文档不落校验。
## 推荐触发方式
```text
用 devlab-contract-web-server 帮我把这几个接口的前后端契约固化并加校验
```
```text
联调老是字段对不上,帮我建一份契约规范 + 防错清单
```
Files in this skill
- CHANGELOG.md
- SKILL.md
- USAGE.md
- skill.json
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.