Runs the required test, lint, and formatting stack for the OpenAI Agents repository.
Install
mkdir -p .claude/skills/code-change-verification && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/943" && unzip -o skill.zip -d .claude/skills/code-change-verification && rm skill.zipInstalls to .claude/skills/code-change-verification
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Run the mandatory verification stack when changes affect runtime code, tests, or build/test behavior in the OpenAI Agents Python repository.Key capabilities
- →Run automated formatting on codebase
- →Execute linting to enforce quality standards
- →Perform type checking to ensure code safety
- →Run full test suite in parallel
- →Provide heartbeat updates during verification
How it works
The skill executes a sequential pipeline of formatting, linting, type checking, and testing, utilizing parallel execution for the latter three steps with fail-fast behavior.
Inputs & outputs
When to use code-change-verification
- →Run project-wide linting
- →Execute full test suite
- →Verify type checking for code changes
About this skill
Code Change Verification
Overview
Ensure work is only marked complete after formatting, linting, type checking, and tests pass. Use this skill when changes affect runtime code, tests, or build/test configuration. You can skip it for docs-only or repository metadata unless a user asks for the full stack. This is a post-review final gate: when $implementation-final-review applies, do not invoke the broad stack until its clean-review condition applies to the stable task diff.
Quick start
- Keep this skill at
./.agents/skills/code-change-verificationso it loads automatically for the repository. - 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. - The scripts run
make formatfirst, then runmake lint,make typecheck, andmake testsin parallel with fail-fast semantics. - While the parallel steps are still running, the scripts emit periodic heartbeat updates so you can tell that work is still in progress.
- If any command fails, fix the issue, rerun the script, and report the failing output.
- Confirm completion only when all commands succeed with no remaining issues.
Start condition and host capacity
- During iterative review, use only focused tests and a narrowly targeted static check when the changed typing boundary requires one. Defer repository-wide
make typecheckand the rest of this complete stack until review is clean. - Immediately before starting the complete stack, use available read-only task or process evidence to check whether another repository-wide test, typecheck, build, examples runner, or integration command is already active on the same host.
- When concrete contention is visible, continue useful non-heavy work such as review, remediation, evidence preparation, or focused checks, then check again later. Do not create or wait on a repository lock, host-wide mutex, or sentinel file.
- Start automatically once review is clean, the diff is stable, and observable host capacity is available. Do not require a user-triggered
finalizemessage. If host telemetry is unavailable, do not block solely because capacity cannot be measured.
Codex execution policy
The full test suite exercises UnixLocalSandboxSession, which starts its own macOS sandbox. A
nested run inside the Codex filesystem sandbox fails with
sandbox-exec: sandbox_apply: Operation not permitted even when the implementation is correct.
When Codex invokes the macOS/Linux verification command:
- Use the exact command from Quick start so it matches the persistent command allow rule.
- Set
sandbox_permissions=require_escalatedon the first invocation. The matching allow rule makes this non-interactive; it does not require a new user approval. - Do not first run the suite inside the Codex sandbox and retry after the expected UnixLocal failures.
This execution policy changes only where the verification process runs. The SDK sandbox tests must remain enabled and unchanged.
Environment setup
The verification scripts assume repository dependencies are already installed. Do not run make sync as part of every verification pass; use it for a fresh checkout, after dependency files change, or when dependency resolution fails before the checks start.
On Linux, some Python packages with native extensions may require system packages such as libffi-dev, Python development headers, or build tools. If verification cannot start because one of these packages is missing, treat it as a local environment setup issue. Install the missing dependency when possible, or report the failing command and missing dependency in the PR test plan before rerunning verification in a prepared environment.
Manual workflow
- For a fresh checkout, or if dependencies are not installed or have changed, run
make syncfirst to install dev requirements viauv. - Run from the repository root with
make formatfirst, thenmake lint,make typecheck, andmake tests. - Do not skip steps; stop and fix issues immediately when a command fails.
- If you run the steps manually, you may parallelize
make lint,make typecheck, andmake testsaftermake formatcompletes, but you must stop the remaining steps as soon as one fails. - Re-run the full stack after applying fixes so the commands execute in the required order.
Resources
scripts/run.sh
- Executes
make formatfirst, then runsmake lint,make typecheck, andmake testsin parallel with fail-fast semantics from the repository root. It also emits periodic heartbeat updates while the parallel steps are still running. Prefer this entry point to preserve the required ordering while reducing total runtime.
scripts/run.ps1
- Windows-friendly wrapper that runs the same sequence with
make formatfirst and the remaining steps in parallel with fail-fast semantics, plus periodic heartbeat updates while work is still running. Use from PowerShell with execution policy bypass if required by your environment.
When not to use it
- →Do not use for documentation-only changes
- →Do not use for repository metadata updates
Prerequisites
Limitations
- →Requires specific system packages for native extensions
- →Verification must be re-run in full after applying fixes
How it compares
It replaces manual, piecemeal verification with a standardized, automated pipeline that ensures all quality gates are met before completion.
Compared to similar skills
code-change-verification side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| code-change-verification (this skill) | 4 | 4mo | Review | Beginner |
| verification-loop | 0 | 4mo | Review | Intermediate |
| scholar-verify | 0 | 2mo | No flags | Intermediate |
| python-testing-patterns | 77 | 2mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by openai
View all by openai →You might also like
verification-loop
tom237ttkk
A comprehensive verification system for Codex work sessions.
scholar-verify
37chengshan
Run ScholarAI's required validation matrix for Symphony-driven changes based on the touched surfaces.
python-testing-patterns
wshobson
Implement comprehensive testing strategies with pytest, fixtures, mocking, and test-driven development. Use when writing Python tests, setting up test suites, or implementing testing best practices.
pr-review
pytorch
Review PyTorch pull requests for code quality, test coverage, security, and backward compatibility. Use when reviewing PRs, when asked to review code changes, or when the user mentions "review PR", "code review", or "check this PR".
pytest
prowler-cloud
Pytest testing patterns for Python. Trigger: When writing or refactoring pytest tests (fixtures, mocking, parametrize, markers). For Prowler-specific API/SDK testing conventions, also use prowler-test-api or prowler-test-sdk.
discovering-make-commands
streamlit
Lists available make commands for Streamlit development. Use for build, test, lint, or format tasks.