mcpField
C
code-change-verification

code-change-verification

github.com/openaiテスト・品質30.4k197 回インストール1 日前に更新
リポジトリ

code-change-verification について

code-change-verification は、ランタイムコード、テスト、ビルド・テスト設定の変更について、フォーマット、Lint、型チェック、テストの合格を完了条件とするリポジトリ用スキルです。プラットフォーム別スクリプトに加え、レビューや環境準備、失敗報告の手順も示します。

主な機能

  1. 01フォーマット、Lint、型、テストの実行
  2. 02Bash と PowerShell のスクリプト
  3. 03レビュー完了後に全体チェックを実行
  4. 04全体検証前のホスト負荷確認
  5. 05依存関係の準備と失敗報告の案内

活用シーン

  1. 01完了前のランタイムコード変更の検証
  2. 02テスト更新後の所定チェックの実行
  3. 03検証失敗や依存関係不足の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/openai/openai-agents-python --skill code-change-verification

インストール後、Claude Code で/code-change-verificationを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
scripts/
run.ps1
run.sh

詳細

コード変更の検証

概要

フォーマット、リンティング、型チェック、テストがすべて通過した後にのみ、作業を完了として扱ってください。ランタイムコード、テスト、またはビルド/テストの設定に変更を加えた場合は、このスキルを使用してください。ドキュメントのみ、またはリポジトリのメタデータのみの変更では、ユーザーからフルスタックでの確認を求められていない限り、省略できます。これはレビュー後の最終ゲートです。$implementation-final-review が適用される場合、安定したタスク差分がクリーンレビューの条件を満たすまでは、広範なスタックを実行しないでください。

クイックスタート

  1. このスキルを ./.agents/skills/code-change-verification に配置し、リポジトリで自動的に読み込まれるようにします。
  2. 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。
  3. その他の macOS/Linux 環境:env UV_DEFAULT_INDEX=https://pypi.org/simple bash .agents/skills/code-change-verification/scripts/run.sh。
  4. Windows:powershell -ExecutionPolicy Bypass -File .agents/skills/code-change-verification/scripts/run.ps1。
  5. macOS/Linux では、スクリプトは make format、make lint、make typecheck、make tests を順番に実行し、最初に失敗した時点で停止します。pytest ワーカーを含め、各 Make ターゲット内の並列処理は変更されません。
  6. Bash スクリプトは各コマンドの出力を直接ストリーミングします。Windows ラッパーでは、リンティング、型チェック、テストの各ステップを並列で実行し、定期的にハートビートを更新します。
  7. コマンドが失敗した場合は、問題を修正してスクリプトを再実行し、失敗時の出力を報告してください。
  8. すべてのコマンドが問題なく成功した場合にのみ、完了を確認してください。

開始条件とホストの処理能力

  • レビューを反復している間は、対象を絞ったテストと、変更した型の境界で必要な場合に限り、範囲を狭く絞った静的チェックのみを実行してください。レビューがクリーンになるまでは、リポジトリ全体を対象とする make typecheck や、この完全なスタックのその他の処理は保留します。
  • 完全なスタックを開始する直前に、読み取り専用のタスクまたはプロセスの情報を利用できる場合は、同じホスト上で別のリポジトリ全体を対象とするテスト、型チェック、ビルド、examples runner、または統合コマンドがすでに実行中でないか確認してください。
  • 具体的な競合が確認できた場合は、レビュー、修正、証拠の準備、対象を絞ったチェックなど、負荷の低い有用な作業を続けてから、後でもう一度確認してください。リポジトリロック、ホスト全体のミューテックス、またはセンチネルファイルを作成したり、それらの解放を待ったりしないでください。
  • レビューがクリーンで、差分が安定し、確認可能なホストの処理能力に余裕があれば、自動的に開始してください。ユーザーからの 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 から使用してください。

コメント