关于 code-change-verification
code-change-verification 是仓库技能,要求运行时代码、测试及构建或测试配置变更通过格式、Lint、类型和测试检查后才能标记完成。它提供平台对应脚本,并说明审查、环境准备和失败报告流程。
主要功能
- 01运行格式、Lint、类型及测试检查
- 02提供 Bash 和 PowerShell 脚本
- 03审查通过后再运行完整检查
- 04完整验证前检查主机负载
- 05说明依赖准备与失败报告
适用场景
- 01完成前验证运行时代码变更
- 02测试更新后运行规定检查
- 03排查验证失败或缺失依赖
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ openai/ openai-agents-python --skill code-change-verification安装后在 Claude Code 中输入/code-change-verification确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlscripts/run.ps1run.sh详细介绍
代码变更验证
概述
只有在格式化、代码检查、类型检查和测试全部通过后,才可将工作标记为完成。当变更涉及运行时代码、测试或构建/测试配置时使用此 Skill。仅涉及文档或仓库元数据的变更可跳过,除非用户明确要求完整流程。这是审查后的最终关卡:当 $implementation-final-review 适用时,在稳定的任务差异满足其通过审查条件之前,不要调用完整流程。
快速开始
- 将此 Skill 保留在
./.agents/skills/code-change-verification,以便其为仓库自动加载。 - Codex 在 macOS/Linux 上:
/usr/bin/env -u OPENAI_API_KEY OPENAI_AGENTS_TEST_IN_CODEX_SANDBOX=1 UV_DEFAULT_INDEX=https://pypi.org/simple bash .agents/skills/code-change-verification/scripts/run.sh。 - 其他 macOS/Linux 环境:
env UV_DEFAULT_INDEX=https://pypi.org/simple bash .agents/skills/code-change-verification/scripts/run.sh。 - Windows:
powershell -ExecutionPolicy Bypass -File .agents/skills/code-change-verification/scripts/run.ps1。 - 在 macOS/Linux 上,脚本依次运行
make format、make lint、make typecheck和make tests,并在第一个失败处停止。每个 Make 目标内部的并行处理(包括 pytest workers)保持不变。 - Bash 脚本直接流式输出每个命令的结果。Windows 包装脚本保留 lint、typecheck 和 test 步骤的并行执行,并定期输出心跳更新。
- 如果任一命令失败,修复问题,重新运行脚本,并报告失败输出。
- 只有当所有命令都成功且没有剩余问题时,才确认完成。
启动条件与主机容量
- 在迭代审查期间,仅使用聚焦的测试;当变更的类型边界需要时,才使用范围明确的静态检查。在审查通过之前,推迟仓库范围的
make typecheck以及本完整流程的其余部分。 - 在开始完整流程之前,立即利用可用的只读任务或进程信息,检查同一主机上是否已有其他仓库范围的测试、类型检查、构建、示例运行器或集成命令在运行。
- 当明显存在实际资源争用时,继续进行有用的非重负载工作,例如审查、修复、证据整理或聚焦检查,然后稍后再次检查。不要创建或等待仓库锁、主机级互斥锁或哨兵文件。
- 一旦审查通过、差异稳定且可观测到主机容量可用,即自动开始。无需用户触发
finalize消息。若无法获取主机遥测数据,不要仅因无法测量容量而阻塞。
Codex 执行策略
仓库验证及其所有子进程必须保持在常规 Codex 工作区沙箱内。切勿为验证包装脚本请求提升的沙箱权限,失败后也不得以更宽松的主机访问权限重试该包装脚本。
在 macOS 上,标记为 requires_native_macos_sandbox 的测试需要自行启动 sandbox-exec 进程。Codex 命令会设置 OPENAI_AGENTS_TEST_IN_CODEX_SANDBOX=1,这仅会在嵌套沙箱创建之前跳过该标记的测试,其他所有测试仍保持启用。普通本地运行和 CI 运行不设置此变量,因此标记的测试保持启用。
标记的测试在一次性的 GitHub 托管 macOS 运行器上单独运行。如果该可信运行器不可用,应报告缺失的原生 macOS 覆盖率;不得通过削弱 Codex 沙箱边界来弥补。
环境设置
验证脚本假定仓库依赖已安装。不要在每次验证时都运行 make sync;仅在全新检出、依赖文件发生变化,或在检查开始前依赖解析失败时使用它。
在 Linux 上,一些带有原生扩展的 Python 包可能需要系统软件包,例如 libffi-dev、Python 开发头文件或构建工具。如果因缺少其中某个包而无法开始验证,请将其视为本地环境设置问题。如有可能,安装缺失的依赖;否则,在 PR 测试计划中报告失败的命令和缺失的依赖,然后在已准备好的环境中重新运行验证。
手动工作流
- 对于全新检出,或依赖未安装或已变化的情况,请先运行
make sync,通过uv安装开发依赖。 - 在仓库根目录中,先运行
make format,然后依次运行make lint、make typecheck和make tests。 - 不要跳过任何步骤;命令失败时,立即停止并修复问题。
- 按顺序手动执行各步骤,并在第一个失败处停止。保留每个 Make 目标自带的并行能力。
- 应用修复后重新运行完整流程,确保命令按要求的顺序执行。
资源
scripts/run.sh
- 在仓库根目录中依次运行
make format、make lint、make typecheck和make tests。它会实时输出日志,保留第一个失败或取消的状态码,并在继续或退出前清理当前步骤的进程组。
scripts/run.ps1
- 面向 Windows 的封装脚本,运行相同的流程:先运行
make format,其余步骤并行执行并采用快速失败语义,同时在任务仍在运行时定期输出心跳更新。如果您的环境需要,可在 PowerShell 中使用绕过执行策略的方式运行。