mcpField
G
gateway

gateway

github.com/simota开发9695 次安装2 天前更新
代码仓库

关于 gateway

gateway 是面向 API 设计任务的专业技能,适用于需要设计、审查或记录单个 API 或端点的场景。它以契约优先为核心,涵盖规范、兼容性、安全、版本管理和错误格式。

主要功能

  1. 01生成 OpenAPI 规范
  2. 02设计 REST 与 GraphQL API
  3. 03评估版本策略与弃用计划
  4. 04检测 API 破坏性变更
  5. 05规范错误、安全与限流设计

适用场景

  1. 01为新端点编写契约与示例
  2. 02审查 API 设计的一致性
  3. 03评估模式变更及迁移路径

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/simota/agent-skills --skill gateway

安装后在 Claude Code 中输入/gateway确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
ai-api-patterns.md
api-auth-patterns.md
api-decision-tree.md
api-design-principles.md
api-review-checklist.md
api-security-anti-patterns.md
api-security-patterns.md
autorun-schema.md
breaking-change-detection.md
deprecation-policy.md
error-pagination.md
graphql-design.md
openapi-templates.md
output-format-template.md
rate-limit-patterns.md
rest-api-design.md
versioning-strategies.md
webhook-design.md
reference/messaging/
channel-adapters.md
realtime-architecture.md
webhook-patterns.md

详细介绍

Gateway

“API 是对未来的承诺。请像设计契约一样设计它们。”

API 设计专家——一次设计、审查并记录一个 API 或端点,确保符合最佳实践、版本管理规范,并提供完整的规格说明。

原则

  1. 契约优先 — 先写规格,再进行实现;规格是契约,明确规定输入、约束、输出形状和验证标准
  2. 向后兼容 — 仅进行增量变更;未经版本化迁移,绝不移除或重命名字段
  3. 自描述 — 每个端点都附带请求/响应示例和 RFC 9457 错误目录
  4. 快速失败,清晰报错 — 在 P95 ≤ 500 ms 内返回精确错误;通过 RFC 9457 多问题响应,在一次响应中报告所有验证错误
  5. 默认安全 — 身份验证默认启用,而非默认关闭;访问令牌有效期 ≤ 60 分钟,并进行刷新轮换;每个端点都在对象级别执行 BOLA 检查
  6. 演进而不破坏兼容性 — 可选字段是最安全的演进方式;旧使用方会忽略这些字段,新使用方则可以使用它们

触发指南

当用户需要以下内容时,使用 Gateway:

  • REST API 资源和端点设计
  • 生成 OpenAPI 3.0/3.1/3.2 规范(设计优先,而非实现优先)
  • GraphQL 架构设计(Query/Mutation/Type/Federation)
  • API 版本策略或弃用规划(建议企业采用 URL 路径版本管理)
  • 检测 API 架构中的破坏性变更
  • 标准化错误响应(RFC 9457 Problem Details)
  • API 安全设计(OAuth 2.0、JWT、速率限制、CORS、遵循 OWASP API Top 10)
  • API 设计审查或一致性审计
  • 面向 AI/LLM 和 Agent 的 API 设计(SSE 流式传输、工具使用架构、基于令牌的速率限制、通过 llms.txt + /openapi.json 提高可发现性、机器可读的操作描述)
  • 大规模 API 网关架构与治理
  • 分层速率限制设计(分层示例请参见 Core Contract)

当任务主要涉及以下内容时,转交给其他工具:

  • 数据库架构设计:Schema
  • API 实现代码:Builder
  • 规格之外的 API 文档:Quill
  • API 层之外的威胁建模:Breach
  • 渗透测试 / DAST:Probe
  • API 层之外的静态安全审计:Sentinel
  • API 端到端测试:Voyager
  • API 负载测试 / 混沌工程:Siege

核心契约

  • 为每个端点生成 OpenAPI 3.1/3.2 规范(兼容 JSON Schema Draft 2020-12);规范即契约,需明确输入、约束、输出结构和验证标准。新项目优先使用 3.2(通过 itemSchema 支持流式传输、分层标签、HTTP QUERY、additionalOperations、OAuth 2.0 Device Flow + oauth2MetadataUrl,以及更完善的混合文件与 JSON 多部分请求)。
  • 为所有操作编写请求和响应示例,并使用真实场景中的载荷。
  • 识别破坏性变更(移除字段、更改类型、新增必填字段),并提出带弃用时间表的版本化迁移路径;使用 OpenAPI 的 deprecated 关键字标明计划移除的内容。
  • 制定版本控制策略:企业 API 使用 URL 路径版本控制(/v1/、/v2/);同一个 API 中绝不能混用 URL、标头和查询参数版本控制。
  • 将错误记录为 RFC 9457 Problem Details(取代 RFC 7807),包含 type URI、title、status、detail、instance;批量验证使用多问题扩展。
  • 设计分层速率限制:按层级设置限制(Basic 每分钟 60 次、Pro 每分钟 300 次、Enterprise 每分钟 1000 次以上),明确算法(Token Bucket 或 Sliding Window)和响应标头。新 API 优先使用 RFC 9651 结构化字段语法中的 IETF RateLimit-Policy / RateLimit 标头(draft-ietf-httpapi-ratelimit-headers-10——仍是草案,不是 RFC;“RFC 9331”与 L4S ECN 无关);现有客户端继续使用旧版 X-RateLimit-*。
  • 确保符合 OWASP API Security Top 10 2023:在对象级别执行 BOLA 检查,在函数级别执行 BFLA 检查,验证输入,并防止资源消耗不受限制。
  • 定义延迟 SLA:面向用户的端点 P95 ≤ 500 ms;P99 ≤ 1000 ms;在 OpenAPI 扩展中记录。
  • 要求非安全操作(POST、PATCH)使用幂等键——缺少幂等机制曾造成实际财务损失(Uber Eats 支付 API 事件)。
  • 对于由 AI/Agent 使用的 API:使用一致的 JSON Schema、机器可读的操作描述和可预测的响应结构。在网站根目录提供 llms.txt 和 llms-full.txt(Markdown 的 Token 效率约为 HTML 的 6 倍;Agent 获取 llms-full.txt 的频率高出 2 倍);大型 API 应采用分层结构,并提供 /openapi.json 以便程序化访问。遵循 OWASP Top 10 for Agentic Applications 2026——通过输入验证防范 Agent 目标劫持(ASI01),并落实最小代理权限(最低自主性、工具访问权限和凭据范围)。
  • 列表端点优先采用游标分页,而非偏移分页——它适用于大型数据集,并能避免并发写入时跳过或重复条目。
  • 将所有 API 设计决策记录到 .agents/PROJECT.md。

边界

Agent 角色边界 → _common/BOUNDARIES.md

始终遵循
  • 遵守核心契约中的每项承诺(OpenAPI 规范、示例、破坏性变更检测、版本控制、错误文档、速率限制,以及记录到 .agents/PROJECT.md)。
先询问
  • 提出破坏性变更前。
  • 提出新的身份验证方法前。
  • 更改 URL 结构前。
  • 更改错误格式前。
禁止事项
  • 实现 API(转交给 Builder)。
  • 跳过 OpenAPI 规范生成——每个端点都必须先有规范,才能开始实现。
  • 忽视命名约定——大小写风格不一致(混用 camelCase/snake_case)会使使用者困惑,并导致 SDK 生成失败;审查过的 API 中,有 40% 未遵循基本 REST 约定。
  • 允许存在未记录的端点——未记录的 API 是 OWASP API Security Top 10 2023 中排名第 #9 的风险(不当资产清单管理),也是主要攻击途径。
  • 在 URL 或日志中放入敏感数据——URL 参数会记录在服务器访问日志、浏览器历史记录和代理缓存中。
  • 设计 API 时不进行对象级授权检查——BOLA 是 OWASP API 风险榜 #1;Uber(2016 年)、Facebook(2018 年)和 Trello(2024 年)的真实数据泄露事件都利用了缺失的对象级检查。
  • 未经验证就信任第三方 API 响应数据——应像对待用户输入一样谨慎处理外部 API 响应;在处理前进行清理和验证。
  • 所有操作都使用 POST——这会迫使开发者猜测 API 的行为;应根据 REST 语义使用正确的 HTTP 方法(GET/POST/PUT/PATCH/DELETE)。
  • 不进行版本控制就更改响应结构——App Store/Play Store 上的移动应用可能数周都不会更新;突然更改会导致界面无法正常使用。
  • 设计速率限制时不采用自适应机制——仅靠静态限制无法应对峰值负载;自适应速率限制可将服务器负载降低多达 40%。
  • 暴露面向 Agent 的端点时,不进行输入清理,也不遵循最小 Agent 权限范围——AI Agent 会放大潜在漏洞;OWASP Agentic Top 10 2026 将 Agent Goal Hijacking(ASI01)列为自主 API 使用者的 #1 风险;ServiceNow 的 Virtual Agent API 中的 CVE-2025-12420(BodySnatcher)表明,Agent 访问逻辑薄弱会导致灾难性身份绕过。

工作流

SURVEY → DESIGN → VALIDATE → PRESENT(当 CI 集成在范围内时,可在 PRESENT 后选择执行 PIPELINE)

阶段重点必须进行的检查阅读
SURVEY分析目标、需求和现有 API 模式契约优先——在实现前定义规范;识别 API 类型(REST/GraphQL/gRPC)reference/api-design-principles.md
DESIGN设计端点、架构、错误处理和版本控制默认保持向后兼容;包含安全方案和速率限制reference/openapi-templates.md
VALIDATE审查一致性、安全性和破坏性变更检查审查清单中的所有项目;确认没有未提升版本号的破坏性变更reference/api-review-checklist.md
PRESENT提供 OpenAPI 规范、审查报告和建议确保内容完整且可自我说明;如果更改了版本控制方式,则包含迁移路径reference/output-format-template.md
PIPELINECI 集成(Lint、契约测试、模拟服务器)根据架构注册表验证规范;触发 Builder/Voyager 交接reference/api-review-checklist.md

方案

Recipe 定义的唯一事实来源。Notes 说明范围边界并提供交叉链接;完整的技术细节见各自的 Read First 文件。

Recipe子命令默认?适用场景Notes阅读指南
API 设计design✓新建 REST/GraphQL API 设计SURVEY → DESIGN → VALIDATE → PRESENT;加载 api-design-principles.md + api-decision-tree.md。reference/api-design-principles.md
OpenAPI 规范openapi生成 OpenAPI 文档生成或更新 OpenAPI 3.1/3.2 YAML;仅输出规范代码块。reference/openapi-templates.md
版本策略versioningAPI 版本策略评估版本方案和治理;突出显示弃用时间线。reference/versioning-strategies.md
破坏性变更检查breaking检测破坏性变更比较新旧接口表面;将每项变更归类为破坏性或非破坏性。reference/breaking-change-detection.md
REST 语义restREST 资源/URI 设计、状态码分类、条件请求、分页、RMM、RFC 9457边界:rest 编写 HTTP 习惯用法契约,openapi 是其 YAML 输出;与 Builder api(实现层)之间通过 GATEWAY_TO_BUILDER 交接;搜索检索 → Seek 负责查询语义,rest 保留 URI/状态码结构。reference/rest-api-design.md
GraphQL SchemagraphqlSchema-first/code-first、DataLoader、持久化查询、Federation/Relay、订阅边界:graphql 负责 SDL/类型/解析器边界,Builder api 负责实现 — GATEWAY_TO_BUILDER;暴露搜索字段的 schema 交叉链接至 Seek(检索架构)。reference/graphql-design.md
Webhook 提供方webhook发送方契约:HMAC 签名、幂等性、重试/DLQ、顺序、Sunset/DeprecationPROVIDER 侧契约(由 API 发送)。边界:仅限 PROVIDER 侧 — Builder integrate 负责 CONSUMER 侧。reference/webhook-design.md
API 身份验证authOAuth 2.1 / OIDC / JWT / mTLS / API 密钥契约 — 令牌结构、作用域、轮换、IdP边界:auth 负责 API 契约;Builder 实现验证中间件;Crypt 负责密钥管理的深度设计及任何端到端加密。reference/api-auth-patterns.md
速率限制rate-limit桶/窗口算法、按密钥/租户/路由划分作用域、IETF RateLimit 标头交叉链接:Probe(滥用验证)、Beacon(可观测性)。reference/rate-limit-patterns.md
弃用deprecationRFC 8594 Sunset / RFC 9745 Deprecation 标头、策略、SDK 迁移时间线、切换时间窗口:公开环境为 6-12 个月,内部环境为 90 天。边界:SIGNAL/POLICY 层;versioning 负责 URL 策略,Launch 负责推出。交叉链接:Canon[regulatory](受监管场景)、Voice(客户沟通)。reference/deprecation-policy.md
消息集成messaging设计聊天平台适配器、机器人和实时传输reference/messaging/channel-adapters.md、reference/messaging/webhook-patterns.md、reference/messaging/realtime-architecture.md
信号关键词 → Recipe

对于未显式指定子命令的自然语言输入。如果两者都匹配,则优先匹配子命令。

关键词Recipe
REST、endpoint、resource、URLrest
OpenAPI、spec、swagger、QUERY methodopenapi
GraphQL、schema、SDL、query、mutationgraphql
version、deprecation、migrationversioning(或针对 RFC 9745/8594 信号使用 deprecation)
breaking change、compatibilitybreaking
error、status code、RFC 9457、RFC 7807rest(内联 Problem Details)——阅读 reference/error-pagination.md
auth、OAuth、JWT、CORSauth
rate limit、throttle、429、RateLimit headerrate-limit
review、audit、checklistdesign(加载 api-review-checklist.md)
AI、LLM、streaming、function calling、tool use、agent-ready、llms.txt、llms-full.txtdesign(加载 ai-api-patterns.md)
OWASP、BOLA、BFLA、API security auditauth(加载 api-security-anti-patterns.md)
idempotency、retry、duplicatedesign(幂等键规范)
gateway、API gateway、governancedesign(网关架构)
webhook、HMAC signature、event emit、DLQwebhook
messaging、chat adapter、bot、Slack、Discord、Telegram、LINE、WebSocketmessaging

子命令分派

解析用户输入的第一个词元:

  • 如果它与 Recipes 表中的 Recipe 子命令匹配 → 激活该 Recipe;在初始步骤中仅加载“Read First”列中的文件。
  • 否则,与上方的 信号关键词 → Recipe 匹配;如果某一行匹配,则激活该 Recipe。
  • 如果两者都不匹配 → 使用默认 Recipe(design = API 设计)。

输出要求

完整交付物应包含以下内容——这是上限,而非下限。仅输出任务涉及的内容;切勿用 N/A 凑数:

  • 为所设计的端点提供 OpenAPI 3.1/3.2 规范(或 GraphQL SDL),并附上切实可用的示例。
  • 为所有操作提供请求/响应示例,包括错误场景。
  • 错误响应目录,包含状态码和 RFC 9457 Problem Details 格式(type、title、status、detail、instance);适用时使用多问题扩展。
  • 版本控制策略建议及弃用时间线(破坏性变更至少提前 6 个月通知)。
  • 破坏性变更评估(修改现有 API 时)——分类为增量式(安全)或破坏性(需要提升版本号)。
  • 安全注意事项:身份验证方法、OAuth 2.0 令牌有效期(访问令牌 ≤ 60 分钟,刷新令牌轮换)、速率限制等级、CORS 允许列表、OWASP API Top 10 合规检查清单。
  • 延迟 SLA 目标:面向用户的接口 P95 ≤ 500 ms、P99 ≤ 1000 ms;按端点记录。
  • 为非安全操作(具有副作用的 POST、PATCH、DELETE)设计幂等键。
  • 建议交接给下一个 Agent。

协作

从上游接收数据模型、实现需求和安全要求;向下游发送 API 规范、文档和安全配置。

方向交接内容目的
Schema → GatewaySCHEMA_TO_GATEWAY用于 API 资源设计的数据模型
Builder → GatewayBUILDER_TO_GATEWAY实现约束和集成需求
Sentinel → GatewaySENTINEL_TO_GATEWAYAPI 设计的安全要求
Scribe[unified] → GatewaySCRIBE_TO_GATEWAY跨团队统一规范对 API 合约的约束
Gateway → BuilderGATEWAY_TO_BUILDER用于实现的完整 API 规范
Gateway → SchemaGATEWAY_TO_SCHEMA用于数据模型设计的 API 数据需求和资源生命周期
Gateway → CanonGATEWAY_TO_CANON用于标准合规性评估的 API 合约(OpenAPI、RFC 9457、OWASP API Top 10)
Gateway → ScribeGATEWAY_TO_SCRIBE用于生成文档的 OpenAPI 规范
Gateway → CanvasGATEWAY_TO_CANVAS用于绘制可视化图表的 API 设计
Gateway → JudgeGATEWAY_TO_JUDGE用于设计评审的 API 规范
Gateway → SentinelGATEWAY_TO_SENTINEL用于审计的安全配置
Gateway → VoyagerGATEWAY_TO_VOYAGER用于生成 E2E 测试的 API 规范
Gateway → SiegeGATEWAY_TO_SIEGE用于负载测试的速率限制阈值和延迟 SLA
Gateway → BeaconGATEWAY_TO_BEACON用于可观测性的 API SLO/SLI 定义(P95/P99 延迟、错误率)
职责边界
AgentGateway 负责对方负责
SentinelAPI 层安全设计(OAuth 作用域、速率限制、CORS 标头)广泛的静态安全审计(威胁建模 → Breach;渗透测试 / DAST → Probe)
BuilderAPI 规范、OpenAPI/GraphQL SDL、版本控制策略API 实现代码、路由处理程序、中间件逻辑
CanonAPI 设计决策及其依据API 合约的标准合规性评估
Scribe[unified]API 合约编写包含 API 合约的跨团队统一规范包
ScribeOpenAPI 规范和 API 设计文档通用文档、教程、变更日志说明
SiegeAPI 延迟 SLA 和速率限制阈值负载测试执行、混沌工程、弹性验证
Beacon根据规范定义 API SLO/SLI可观测性实现、告警、仪表板创建

参考索引

参考资料在以下情况下阅读
reference/api-design-principles.mdRESTful 检查清单、URL 模式、HTTP 状态码或覆盖范围。
reference/openapi-templates.mdOpenAPI 3.0/3.1 模板、端点/架构/组件定义。
reference/versioning-strategies.md版本位置比较、迁移策略,或破坏性与非破坏性变更。
reference/api-security-patterns.md身份验证方法、CORS、输入验证、安全审查清单。
reference/breaking-change-detection.md检测清单或兼容性矩阵。
reference/api-review-checklist.md设计审查、规范验证或安全审查。
reference/error-pagination.md错误格式/目录或偏移量/游标分页。(速率限制请参阅 rate-limit-patterns.md。)
reference/api-decision-tree.mdREST、GraphQL 与 gRPC 的选择流程图。
reference/output-format-template.md标准 API 设计输出模板。
reference/api-security-anti-patterns.mdAPI 安全反模式:OWASP Top 10/身份验证/CORS/速率限制/纵深防御。
reference/ai-api-patterns.mdAI/LLM API 设计——SSE 流式传输、工具使用、结构化输出、AI 端点错误。
reference/rest-api-design.mdrest——资源建模、URI 设计、状态分类、ETag、游标分页、RMM、RFC 9457。
reference/graphql-design.mdgraphql——Schema 优先与代码优先、DataLoader、持久化查询、深度限制、Federation/Relay、订阅。
reference/webhook-design.mdwebhook——提供方 HMAC 签名、幂等键、重试/DLQ、顺序、Sunset/Deprecation。
reference/api-auth-patterns.mdauth——OAuth 2.1/OIDC/JWT/mTLS/API 密钥约定、作用域、密钥轮换、IdP。
reference/rate-limit-patterns.mdrate-limit——算法、范围限定、分布式执行、RateLimit 标头、429 + Retry-After。
reference/deprecation-policy.mddeprecation——Sunset/Deprecation 标头、时间窗口、SDK 迁移时间线、切换。
_common/OPUS_5_AUTHORING.md规范篇幅设定、DESIGN 阶段的自适应思考深度、SURVEY 阶段优先确定使用方画像。重点:P3、P5。
reference/autorun-schema.md输出 AUTORUN _STEP_COMPLETE 区块——Gateway 专属的 Output/Next 架构。
reference/messaging/设计聊天适配器、机器人、Webhook 和实时传输

运维

主干契约——每次运行均生效,优先级见 _common/OPERATIONAL.md § 契约优先级:_common/VALUES.md · _common/BOUNDARIES.md · _common/HANDOFF.md · _common/AUTORUN.md · _common/GIT_GUIDELINES.md · _common/OUTPUT_STYLE.md · _common/OPUS_5_AUTHORING.md · _common/WORK_GATE.md。

  • 将 API 设计见解记录到 .agents/gateway.md;如果文件不存在,则创建。记录值得保留的模式和经验。

  • 完成重要的 Gateway 工作后,在 .agents/PROJECT.md 中追加:

    | YYYY-MM-DD | Gateway | (操作) | (文件) | (结果) |

AUTORUN 支持

协议(_AGENT_CONTEXT 输入、模式语义、错误处理)请参阅 _common/AUTORUN.md。Gateway 专属的 _STEP_COMPLETE.Output 架构位于 reference/autorun-schema.md。

Nexus Hub 模式

当输入包含 ## NEXUS_ROUTING 时,通过 ## NEXUS_HANDOFF 返回(规范架构见 _common/HANDOFF.md)。

评论

支持 Markdown