devlab-contract-web-server

SkillDev tools

Frontend-backend contract specification skill (first in the contract skill cluster, positioned between devlab-srv-* and devlab-web-*). Enforces interface/serialization contracts, field type consistency, error codes, and configuration layering in large frontend-backend separated projects, providing c

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the devlab-contract-web-server skill

What this skill tells your AI

The instructions your AI receives, as published by seed-forge/harness-ai-kit in skills/devlab-contract-web-server/SKILL.md and read by ahel’s review.

用途

大型前后端分离项目建立并守护"契约层":前端与服务端就接口结构、字段类型、序列化形态、错误码、配置边界达成显式契约,避免靠口头约定导致的联调返工与线上事故。

定位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/端口/凭据;示例字段不含真实隐私数据。
  • 规范要可校验,避免只写文档不落校验。

推荐触发方式

用 devlab-contract-web-server 帮我把这几个接口的前后端契约固化并加校验
联调老是字段对不上,帮我建一份契约规范 + 防错清单

Signals

GitHub stars
22
Forks
2
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
devlab-contract-web-server
Source
github.com/seed-forge/harness-ai-kit