本文へ移動
cccskills
無料GitHub で公開日本語紹介

prove-patch

セキュリティ修正を修正前・修正後・差し戻し後の状態で独立に検証し、対象範囲の再現テストと実行記録から、修正の有効性や証拠の不足を整理します。

原文原文の説明を見る

Use when a local security patch commit needs independent scoped and three-arm proof.

インストール方法を見る

こんなときに便利

  • セキュリティ修正を独立に検証したいとき
  • 修正前後と差し戻し後の挙動比較
  • 正常な入力への悪影響を確認したいとき
  • 検証の証拠と未確認範囲の整理

日本語での紹介

できること

コミット済みのセキュリティ修正が、宣言した修正範囲で有効かを独立に検証します。修正前と修正後に同じ再現用コードとコマンドを使い、問題を起こす入力では失敗から成功に変わること、正常な入力では両方とも成功することを確認します。さらに修正を完全に差し戻し、元の失敗が戻ることも調べます。

こんなときに便利

修正担当者の結論とは別に、パッチの有効性を確かめたい場面に向いています。標準出力、エラー出力、終了コード、実行時間、再現用コードを保存し、確認できた不具合と証拠不足を区別します。対象外の入力など、検証で証明していない範囲も明記します。

使い方の例

  • 「この修正コミットを、元のコミットと同じ再現手順で独立に検証して」
  • 「修正を差し戻すと失敗が戻ることを確認し、実行記録をまとめて」

注意点

元のコミット、最終修正コミット、repair_scope、変更していない再現用パッケージが必要です。未コミットの作業ツリーは検証せず、パッチ自体も編集しません。付属の検証スクリプトとuvを使います。タイムアウトや準備失敗は合格にせず、証拠の不足として扱います。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(1)

  • SKILL.md4.4 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Prove Patch

Use the original baseline, final patch commit, declared repair_scope, and unchanged reproduction package. Read the record contract. Do not edit the patch or validate an uncommitted tree. Return failures for a new attempt. Before target commands, follow its project guidance.

  1. Review the scoped cases and the patch without the patcher's conclusion. Execute each planned input on clean baseline and patched trees with the same retained harness source and command. The harness must print exactly one PATCH_CASE {"input": ..., "actual": ...} from the exercised input and observed result, then print PATCH_REACHED as its final stdout line immediately before the assertion. Representatives must fail on the baseline and pass on the patch. Valid controls must pass on both. Keep the baseline and patched stdout, stderr, exit status, elapsed time, command, and harness source under receipts/. A timeout, setup failure, missing marker, mismatched input, or ambiguous observation is an evidence gap. A trustworthy patched failure is a finding. Never relabel a gap as a pass.
  2. Run relevant project checks on the patch and retain the same raw receipts. Use baseline comparison for behavior checks and to attribute failed project checks; a passing patched suite may omit a baseline run. Include focused tests, regression and security checks where relevant. Record specific unproven limits; an empty list leaves the result inconclusive.
  3. Run the three-arm helper with the proof-type recipe in the record contract, reproduce.baseline_commit, and final patch_commit. Require the baseline to fail, patch to pass, and complete baseline revert to fail again. Require receipts/source.json to identify the pinned commits and the reverted tree to equal the original baseline tree. Require the type's build identity result. Retain all source-tree, build, and execution receipts.
  4. Write prove.json and a final manifest covering it and every receipt. Run uv run --no-project <script> manifest <prove-attempt-dir> and then uv run --no-project <script> check <run-dir> with the validator. Independently inspect the native proof assessment and raw receipts before reporting a result. A complete proof has no findings or gaps. Return exact failures and receipt paths to the orchestrator.

Prove record schema:

{
  "schema_version": 2,
  "attempt": 1,
  "failure_type": "runtime",
  "baseline_commit": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "patch_commit": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
  "reverted": "pass",
  "build_identity": "pass",
  "hashes": {
    "baseline": "1111111111111111111111111111111111111111111111111111111111111111",
    "patched": "2222222222222222222222222222222222222222222222222222222222222222",
    "reverted": "1111111111111111111111111111111111111111111111111111111111111111"
  },
  "reverted_hash_note": null,
  "cases": [{
    "check_id": "reported-input",
    "argv": ["python", "receipts/case.py", "reported-input"],
    "source": "receipts/case.py",
    "runs": {
      "baseline": {"exit_code": 1, "elapsed_ms": 15, "stdout": "receipts/case-base.stdout", "stderr": "receipts/case-base.stderr"},
      "patched": {"exit_code": 0, "elapsed_ms": 14, "stdout": "receipts/case-patched.stdout", "stderr": "receipts/case-patched.stderr"}
    }
  }],
  "project_checks": [{
    "check_id": "focused-suite",
    "kind": "suite",
    "argv": ["pytest", "tests/test_upload.py"],
    "baseline": null,
    "patched": {"exit_code": 0, "elapsed_ms": 860, "stdout": "receipts/suite.stdout", "stderr": "receipts/suite.stderr"}
  }],
  "unproven": ["Inputs outside the declared boundary were not assessed."],
  "agent": "prover-1"
}

For a bounded class, include at least two distinct failing representatives and a valid control. The record must cover every planned case by unique check_id. Use the same harness and command on both commits; do not reveal the side to the harness or change expectations by side. Review the selected cases for relevance; retained receipts establish only what those cases exercised.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

address-sanitizer

無料概要あり

C/C++やunsafeを含むRustのテストで、領域外アクセスや解放済みメモリの使用を検出します。ビルド設定からクラッシュ報告の読み解きまで支援します。

  • C/C++のファジング中のメモリエラー検出
  • Rustのunsafeや外部呼び出しの検証
  • ASanのクラッシュ報告を読みたいとき
trailofbits/skills7,6662026年10月21日 更新

adjudicate-regression

無料概要あり

変更前後のソースと実環境での再現・独立検証の証拠を照合し、新たな不具合か、既存の問題や判定保留かを根拠付きで整理して判定記録に残すスキル。

  • 変更が新しい不具合を生んだか判定したいとき
  • 既存の不具合と新規の問題を区別したいとき
  • 証拠不足と未解決事項の整理
trailofbits/skills7,6662026年10月21日 更新

aflpp

無料概要あり

C/C++のプログラムに多様な入力を与えて不具合を探すテストを、AFL++で複数コアに並列化し、実行状況の確認からクラッシュの再現・調査まで支援するスキル。

  • C/C++の検査を複数コアで回したいとき
  • libFuzzerでの探索が停滞したとき
  • ファジングの進捗や安定性を確認したいとき
trailofbits/skills7,6662026年10月21日 更新

agentic-actions-auditor

無料概要あり

GitHub Actionsで動くAIエージェントへの不正な指示の混入や危険な権限設定を点検します。外部入力が届く経路を追い、根拠と重大度、修正案を報告します。

  • AIエージェントを使うCIの点検
  • IssueやPRからの指示混入経路の調査
  • サンドボックスやユーザー許可設定の確認
trailofbits/skills7,6662026年10月21日 更新

Algorandのスマートコントラクトを11種類の脆弱性パターンで点検し、権限や手数料、入力検証の問題を根拠・修正案付きで報告するスキル。

  • Algorandの監査前点検
  • TEAL・PyTealの取引検証レビュー
  • 報告された脆弱性の修正確認
trailofbits/skills7,6662026年10月21日 更新

atheris

無料概要あり

PythonコードやC拡張へ多様な入力を与えるファジングを導入し、予期しない例外やメモリ破損を探します。実行環境の準備からテスト用コードの作成、結果の読み取りまで支援します。

  • Pythonパッケージやパーサーのファジング
  • PythonのC拡張のメモリ破損調査
  • バイト列から型付きテスト引数を作りたいとき
trailofbits/skills7,6662026年10月21日 更新

trailofbits のスキルをすべて見る

このスキルの問題を報告する