Skip to content

api-design 技能评估报告

评估框架: skill-creator A/B 实测对比法 评估日期: 2026-04-18 评估对象: skills/api-design/(REST API 合约设计与审查技能)


api-design 技能的评估呈现出明显的场景分化规律:标准多缺陷审查和最小上下文降级场景中基线表现接近完美,但破坏性变更评估场景(公共 API + 12 个合作方集成)中基线质量仅 66.7%,是本次已评估技能中跌幅最大的单一场景。Gate 3 STOP 机制和 §8.7 兼容性评估框架是技能对于该场景的核心差异化来源。


1. Skill 概述

核心组件

文件 行数 职责
SKILL.md ~380 行 主框架:4 Gate、3 深度、16 项 Checklist、12 项 Scorecard、9 节输出合约
references/error-model-patterns.md ~180 行 Standard/Deep:标准错误信封、幂等键实现、ETag 并发控制、IDOR-safe 404
references/compatibility-rules.md ~200 行 Deep/破坏性变更:向后兼容矩阵、Sunset 协议、版本共存、合约测试 CI
references/api-anti-examples.md ~140 行 扩展反例 AE-7 至 AE-13

技能核心安全规范: - AE-1: URL 中含动词(/createUser)→ 破坏 REST 语义和工具链 - AE-2: HTTP 200 用于错误 → 欺骗 CDN/客户端/监控 - AE-3: 无 machine-parseable 错误码 → 客户端只能字符串匹配 - AE-5: 无对象级授权(IDOR)→ OWASP API Security Top 1 - Breaking Change GUARDRAIL: 公共 API 任何字段删除/重命名/类型变更必须触发 Gate 3 STOP,强制 migration plan


2. 测试设计

2.1 场景定义

# 场景名称 背景 核心挑战 期望结果
1 多缺陷 REST API 审查 内部订单管理 API,React/iOS 消费者 verb URL + 200 for errors + IDOR + 无幂等键 Critical 0/3,Scorecard FAIL
2 公共 API 破坏性变更 v1 公共 API,12 合作方集成 4 项破坏性变更无版本规划 Gate 3 STOP,v2 + deprecation 90 天
3 最小上下文(降级模式) 版本/消费者/public-internal 全部未知 支付 API,无任何架构背景 Minimal 模式,consumer type unknown

2.2 断言矩阵(24 项)

场景 1 — 多缺陷 REST API 审查(9 项)

ID 断言 With-Skill Without-Skill
A1 识别 /createOrder/cancelOrder URL 含动词为 Critical 缺陷(AE-1) PASS PASS
A2 识别 HTTP 200 用于错误响应为 Critical 缺陷(AE-2) PASS PASS
A3 识别 GET /orders/{id} 无 IDOR 授权检查为 Critical 缺陷(OWASP #1) PASS PASS
A4 识别缺少 Idempotency-Key 为 Standard 缺陷(移动端重试导致重复订单) PASS PASS
A5 建议标准错误信封格式 {error: {code, message, details[], trace_id}} PASS PASS
A6 建议 cursor-based pagination(替代 offset,避免高并发数据漂移) PASS PASS
A7 原始 API Scorecard: Critical 0/3(URL 命名/错误模型/IDOR 全部 FAIL) PASS PASS
A8 §8.9 使用规定 4 列表格(Area | Reason | Impact | Follow-up) PASS PASS
A9 明确引用 Anti-example 编号(AE-1、AE-2、AE-5)交叉参照 PASS PARTIAL

场景 1 小结:With-Skill 9/9,Without-Skill 8.5/9(PARTIAL: AE 编号仅随机提及 AE-5,未系统引用)


场景 2 — 公共 API 破坏性变更(9 项)

ID 断言 With-Skill Without-Skill
B1 识别删除 phone_number 为 breaking change(字段删除) PASS PASS
B2 识别添加 required billing_address 为 CRITICAL breaking(现有客户端全部 4xx 失败) PASS PASS
B3 识别错误格式从 string → object 结构变更为 breaking(所有 error path 受影响) PASS PASS
B4 识别 order_statusstatus 字段重命名为 breaking change PASS PASS
B5 建议创建 /api/v2/ 版本(path versioning),v1 保持不变 PASS PASS
B6 建议 Deprecation + Sunset headers 协议(最少 90 天窗口) PASS PASS
B7 Gate 3 STOP 条件显式触发(UNSAFE,需要 migration plan 方可继续) PASS FAIL
B8 §8.9 使用规定 4 列表格(Area | Reason | Impact | Follow-up) PASS FAIL
B9 Data basis: 标注(full context / degraded / minimal) PASS FAIL

场景 2 小结:With-Skill 9/9,Without-Skill 6/9(3 项 FAIL:Gate 框架、§8.9 格式、Data basis 标注)


场景 3 — 最小上下文降级模式(6 项)

ID 断言 With-Skill Without-Skill
C1 声明 Minimal/Degraded Mode 并标注 PASS PASS
C2 §8.9 包含 "consumer type unknown" 风险项 PASS PASS
C3 §8.9 包含 "public vs internal unknown" 风险项 PASS PASS
C4 §8.9 使用规定 4 列表格(Area | Reason | Impact | Follow-up) PASS PASS
C5 识别 POST /payments 缺少 Idempotency-Key(金融交易,重试即重复扣款) PASS PASS
C6 Data basis: minimal 标注 PASS PASS

场景 3 小结:With-Skill 6/6,Without-Skill 6/6(场景 3 无差距)


3. 通过率对比

3.1 总体断言通过率

配置 PASS PARTIAL FAIL 通过率(严格)
With Skill 24/24 0 0 100%
Without Skill 20/24 1 3 83.3% + 2.1% partial

Delta:+14.6 percentage points(严格 PASS 口径)

3.2 按场景通过率

场景 With-Skill Without-Skill 失分项
S1 多缺陷审查 9/9 (100%) 8.5/9 (94.4%) A9: AE 编号引用
S2 破坏性变更 9/9 (100%) 6/9 (66.7%) B7/B8/B9: Gate STOP + §8.9格式 + Data basis
S3 最小上下文 6/6 (100%) 6/6 (100%) 无差距

3.3 场景差距分析

S2 是所有已评估技能场景中基线质量最低的单场景(66.7%)

原因:公共 API 破坏性变更场景需要技能框架的三项特定能力: 1. Gate 3 STOP 机制:无 Skill 组直接给出叙述性建议,未触发 STOP/PROCEED 框架 2. §8.9 Uncovered Risks 表格:无 Skill 组使用"Compatibility Summary"和"What Must Be Done"等自由格式,未使用 4 列表格 3. Data basis 标注:无 Skill 组的输出末尾无此标注

S1 基线高(94.4%)是因为多缺陷识别(AE-1/AE-2/AE-5)是基础模型的强项——REST 设计反模式属于普遍知识。S3 基线满分(100%)原因与之前评估相同。


4. 关键差异分析

4.1 With-Skill 专有行为

行为 出现场景 依据
Gate 3 STOP 显式声明(UNSAFE + 要求 migration plan) S2 §2 Mandatory Gates 框架
§8.1–§8.9 规范节编号(含 §8.7 Compatibility Assessment) S1、S2、S3 §8 Output Contract
AE 编号系统引用(AE-1、AE-2、AE-5) S1 §6 Anti-Examples 交叉参照
每项变更独立的 breaking/non-breaking 分类 + 迁移方案 S2 §5.4/references/compatibility-rules.md
Data basis 在 Scorecard 后强制标注 S1、S2、S3 §8 Scorecard 合约

4.2 S2 的无 Skill 基线失分分析

无 Skill 组(14,053 tokens)在 S2 场景中产生了本次评估中最小的 token 消耗,同时产生了最低的质量分。这揭示了一个重要规律:

当基线 LLM 不跟随框架时,它倾向于用更少 token 给出更直觉性的建议,而非系统性的逐项分析。在简单场景下这是正确行为;在需要结构化分析的复杂场景(如公共 API 破坏性变更评估)中,这导致关键框架要素(Gate STOP、§8.9 格式、Data basis)缺失。

4.3 技术知识对比

检查点 With-Skill Without-Skill
4 类 breaking change 识别 PASS PASS
Sunset 协议(90 天警告) PASS PASS
v1/v2 版本共存策略 PASS PASS
IDOR 返回 404 而非 403 PASS PASS
Idempotency-Key 金融交易 PASS PASS
Gate 3 STOP 框架显式触发 PASS FAIL
§8.7 Compatibility Assessment 分项表格 PASS FAIL

5. Token 效费比分析

5.1 Skill 上下文 Token 成本

组件 行数 估算 Token 数 加载时机
SKILL.md ~380 ~5,000 每次
error-model-patterns.md ~180 ~2,300 Standard/Deep
compatibility-rules.md ~200 ~2,600 Deep/breaking change

5.2 实际运行 Token 消耗

代理 场景 Total Tokens Tool Calls 输出质量
Without Skill S1 36,546 2 探索式,全部缺陷均找到
With Skill S1 18,229 0 结构化,AE 引用
Without Skill S2 14,053 0 叙述性,漏 Gate/§8.9/Data basis
With Skill S2 18,577 0 完整 §8.x 结构,Gate STOP
Without Skill S3 36,028 2 探索式,质量与技能相当
With Skill S3 16,420 0 结构化,Minimal 模式

5.3 效费比计算

指标 S1 S2(异常) S3 均值
无 Skill Token 33,536 14,053 32,257 26,615
有 Skill Token 18,229 18,577 16,420 17,742
Token 变化 −45.7% +32.2% −49.1% −33.3%
质量提升 +5.6 pp +33.3 pp 0 pp +14.6 pp

S2 Token-质量倒置是本次评估最独特的发现

  • 无 Skill 组(14,053 tokens)更便宜但质量更差:叙述性分析,跳过 §8.x 框架
  • 有 Skill 组(18,577 tokens)更贵但质量更好:完整 §8.1–§8.9 + Gate 分析 + 兼容性矩阵

结论:当结构化输出本身就是价值所在时(公共 API 破坏性变更需要可追溯的逐项分析),Token 成本的增加是可接受的。S2 中多付出的 ~4,500 tokens 换来的是 +33.3 pp 质量提升,效率最高。

相比之下,S1/S3 场景中技能节省约 47% Token 同时维持或提升质量。


6. 综合评分

6.1 分维度评分(5 分制)

维度 With Skill Without Skill 差值
Critical 缺陷识别(URL/错误/IDOR) 5.0 4.8 +0.2
API 合约输出结构(§8.x 规范完整性) 5.0 3.5 +1.5
破坏性变更评估框架(Gate + §8.7) 5.0 3.0 +2.0
错误模型设计(信封/状态码/IDOR-safe 404) 5.0 4.5 +0.5
降级模式处理(Minimal context) 5.0 4.5 +0.5
Anti-Pattern 框架引用(AE 编号/Gate) 5.0 3.5 +1.5

6.2 加权总分(满分 10 分)

维度 权重 With-Skill Without-Skill 评分理由
Critical 缺陷识别 25% 10.0/10 9.5/10 两者均正确识别 IDOR/AE-1/AE-2;无 Skill 在 IDOR 说明深度上略浅
API 合约输出结构 20% 10.0/10 7.0/10 §8.x 规范格式:有 Skill 100% 合规;无 Skill 在 S2 完全未使用 §8.9 表格
破坏性变更框架 20% 10.0/10 6.0/10 Gate 3 STOP + §8.7 分项矩阵:无 Skill 仅给叙述性建议,未触发框架
错误模型设计 15% 10.0/10 9.0/10 两者均建议标准信封;有 Skill 含 metric/audit 可观测性字段
降级模式处理 10% 10.0/10 9.0/10 S3 两者均满分;有 Skill 的 §8.9 风险列更完整(12 vs 8 条)
Anti-Pattern 引用 10% 10.0/10 7.0/10 AE 编号引用:有 Skill 系统交叉引用;无 Skill 偶发提及
加权总分 100% 10.00/10 7.95/10

7. 核心发现与建议

发现 1:破坏性变更评估是 api-design 技能最大差异化来源

与 pg/mongo/redis 迁移/缓存技能不同,api-design 的差异不均匀分布在各场景:

场景类型 基线质量 技能价值来源
标准多缺陷审查(S1) 94.4% 框架引用规范性(微小差距)
公共 API 破坏性变更(S2) 66.7% Gate 3 STOP + §8.7 兼容性矩阵(最大差距)
最小上下文降级(S3) 100% 无差距

对于团队管理公共 API + 外部合作方集成的场景,技能的 ROI 远高于标准内部 API 审查。

发现 2:S2 Token-质量倒置揭示"框架开销即价值"规律

当基线选择省略结构化框架时(S2 无 Skill: 14,053 tokens),它产生了更便宜但质量更差的输出。这揭示了一个关键规律:

框架(§8.x 输出合约)本身不仅是格式要求,它强制触发思考过程。Gate 3 STOP 机制迫使评审者逐项分类 breaking/non-breaking,而叙述性分析很容易跳过这一步直接给建议。

发现 3:与同类技能横向对比

技能 基线质量 Delta S2 等价场景质量
mysql-migration 52% +48 pp
pg-migration 87% +13 pp
mongo-migration 87.5% +12.5 pp S3 异常 −15% Token
redis-cache-strategy 89.6% +10.4 pp 无异常
api-design 85.4% +14.6 pp S2 最大场景差距(33.3 pp)

api-design 是迄今场景差距最不均匀的技能,这反映了 REST API 设计知识的异质性:CRUD 基础规范已普遍训练,但公共 API 破坏性变更的结构化分析框架尚未内化。

改进建议

  1. §8.7 Compatibility Assessment 应成为独立触发条件:当用户请求含"breaking"、"版本"、"deprecation"时,即使是 Lite 深度也应加载 compatibility-rules.md,而非仅限 Deep depth。

  2. 增加 webhook API golden fixture(COVERAGE.md 已记录为 Medium 优先级缺口):webhook 是 partner API 的常见模式,目前无专用场景测试。

  3. 增加 S2 类场景的 golden fixture:当前 11 个 fixture 中无专门测试"多项 breaking change 同时触发 Gate 3 STOP"的场景。API-006 只测试单一 breaking change,覆盖不足。


8. 结论

api-design 技能评定:生产就绪,推荐优先用于公共 API 和合作方集成场景。

核心价值点: 1. Breaking Change 评估框架:Gate 3 STOP + §8.7 兼容性矩阵对公共 API 场景带来 +33.3 pp 质量提升,是已评估技能中单场景最大 ROI 2. 结构化输出可审计性:§8.1–§8.9 规范节格式使 API 变更评估结果可追溯、可审计,尤其适合需要合规记录的 partner API 场景 3. Token 效率分化明显:S1/S3 节省约 47% Token;S2 因框架开销增加 32%,但对应质量提升最大

推荐使用场景优先级: 1. 最高 ROI:公共/合作方 API 破坏性变更评估(S2 类场景) 2. 标准推荐:内部 API 全表面多缺陷审查(S1 类场景) 3. 可选使用:最小上下文场景(S3 类场景,基线已能满足,技能主要贡献结构规范性)