antithesis-setup について
antithesis-setupは、プロジェクトのAntithesisテストハーネスを準備するスキルです。コンテナ設定と計測を整え、ブートストラップ用アサーションを追加して、ワークロード開発に向けた準備状況を確認します。
主な機能
- 01Antithesisディレクトリの構築
- 02SUTの計測とSDK設定
- 03DockerイメージとComposeの設定
- 04ブートストラップ用アサーションの追加
- 05ハーネスの検証
活用シーン
- 01調査済みプロジェクトのAntithesis準備
- 02SUTイメージとサービスの設定
- 03ワークロード開発前のハーネス検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ antithesishq/ antithesis-skills --skill antithesis-setupインストール後、Claude Code で/antithesis-setupを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/antithesis/AGENTS.mdsetup-complete.shassets/antithesis/config/docker-compose.yamlreferences/config-dir.mddirectory-init.mddocker-compose.mddocker-images.mdinstrumentation.mdsubmit-and-test.mdreferences/language/cpp.mddotnet.mdfallback.mdgo.mdjava.mdjavascript.mdpython.mdrust.md詳細
Antithesis のセットアップ
スキルのバージョン: 2026-10-21 4f8d80b
目的と目標
システムをほぼアイドル状態の準備完了状態で Antithesis 上で起動できるよう、必要な antithesis/ ハーネスを足場として構築します。
次の条件を満たせば成功です。
antithesis/config/docker-compose.yamlが存在し、必要な SUT イメージがbuild:ディレクティブで参照されているantithesis/config/に対するsnouty validateが成功する- アサーションまたはライフサイクルフックが実行される場所の SUT 依存関係グラフに、該当する Antithesis SDK が含まれている
- シンプルな SUT パスに最低限のブートストラッププロパティが少なくとも 1 つあり、最初の Antithesis 実行で表示されることが想定されている
- ハーネスが、
antithesis-workloadスキルでテストテンプレート、アサーション、ワークロードコードを追加または反復できる状態になっている - ユーザーが実行の送信または起動を依頼した場合は、
antithesis-launchスキルを使用してください。snouty launchを直接実行してはいけません
前提条件
-
調査成果物が必要です。 作業を進める前に、
antithesis/scratchbook/が存在し、調査結果(少なくともsut-analysis.mdとdeployment-topology.md)が含まれていることを確認してください。scratchbook が存在しないか空の場合は、作業を中止してユーザーに警告してください。antithesis-researchスキルがまだ実行されていません(antithesis/scratchbook/に scratchbook が見つかりません)。セットアップでは、計装、イメージ構成、サービス構成について適切な判断を行うために、特に SUT 分析とデプロイトポロジーなどの調査成果物が必要です。まずantithesis-researchを実行して出力を確認してから、セットアップに戻ってください。調査成果物がない状態で作業を進めてはいけません。調査で得られるコンテキストがないと、セットアップスキルの判断の質は大きく低下します。
-
調査の出所を確認してください。 セットアップはプロジェクトごとに一度だけ実行され、Dockerfile、compose、計装など、永続的でコストの高い成果物を生成するため、調査との不整合は大きな損失につながります。
antithesis/scratchbook/sut-analysis.mdとantithesis/scratchbook/deployment-topology.mdに記載されている出所情報のフロントマターを確認してください。スキーマは時間の経過とともに変わる可能性があるため、見つかったフィールドを使用し、一部しかない古いフロントマターを不備として扱わないでください。確認した内容を平易な言葉で説明してください。例:- 完全なスキーマ:「この scratchbook は、コミット
abc12345abcd(2026-05-05)の SUT/path/Xを対象としています。外部参照は A、B です。」 - 一部のみ:「カタログには
commitとupdatedが記録されていますが、sut_pathとexternal_referencesはありません。」 - 記録なし:「出所情報は記録されていません。この scratchbook はこの規約ができる前のものです。」
- ファイル間の不一致:「sut-analysis はコミット
abcの/path/Aを対象としていますが、deployment-topology はコミットdefの/path/Bを対象としており、内容が一致していません。」
その後、ユーザーに次のように尋ねてください。
今もこのシステムを対象にしていますか?
ユーザーが「いいえ」と答えた場合は、作業を進めないでください。作業を中止し、
antithesis-researchを再実行するようユーザーに伝えてください。古くなったことが確認された調査に基づいてセットアップすると、実際の対象と一致しない足場が作成されます。ユーザー向けのコミット表示では、読みやすさのため短縮ハッシュ(先頭 12 文字)を使用します。フロントマターには引き続き完全な SHA が保存されます。
- 完全なスキーマ:「この scratchbook は、コミット
-
snoutyがインストールされていない場合は、作業を進めてはいけません。インストール方法についてはhttps://raw.githubusercontent.com/antithesishq/snouty/refs/heads/main/README.mdを参照してください。 -
snoutyが 0.8.0 より古い場合は、作業を進めてはいけません。snouty --versionを使用してバージョンを確認してください。更新するにはsnouty updateを使用してください。
ドキュメントに基づく作業
以下のページにアクセスするには、antithesis-documentation スキルを使用してください。snouty docs の使用を推奨します。
- Docker Compose セットアップガイド:
https://antithesis.com/docs/getting_started/setup_guide/docker_compose.md - Docker のベストプラクティス:
https://antithesis.com/docs/best_practices/docker_best_practices.md - カバレッジ計装:
https://antithesis.com/docs/reference/instrumentation/coverage_instrumentation.md - アサーションのカタログ化:
https://antithesis.com/docs/reference/sdk/assertion_cataloging.md - 外部依存関係の処理:
https://antithesis.com/docs/reference/dependencies.md - フォールトインジェクション:
https://antithesis.com/docs/product/fault_injection.md
ワークフロー
このスキルはいくつかのステップに分かれており、それぞれ異なるリファレンスファイルに記載されています。プロジェクトを完全にセットアップするには、以下に記載された各リファレンスファイルを一つずつ読み、実装してください。各ステップを実装した後、そこで得た情報によって前のステップでの判断が無効になっていないか確認してください。特に、イメージのビルド(ステップ 3)を始めると、計装に関する判断(ステップ 2)の見直しが必要になることがよくあります。
references/directory-init.md:assets/antithesis/からantithesis/ディレクトリを初期化するか、既存の内容に統合しますreferences/instrumentation.md:各 SUT サービスの計装方法、SDK のインストール方法、シンボルの配置方法、ブートストラップ用プロパティの格納場所を決定しますreferences/docker-images.md:SUT コンポーネント用の Dockerfile を作成または調整しますreferences/docker-compose.md:antithesis/config/docker-compose.yamlを記述しますreferences/config-dir.md:antithesis/config/に含める内容を確認しますreferences/submit-and-test.md:ローカルでテストし、最初の実行を送信します
全般的なガイダンス
- 既存の
antithesis/の内容を上書きせず、統合してください。 - compose CLI と、コンテナランタイムに対して
snouty doctorが報告する内容を使って、ローカルでビルドとテストを行ってください。詳しくはreferences/submit-and-test.mdを参照してください。 - 可能な限り、Antithesis 専用の足場は
antithesis/の下に置いてください。 - このスキルでは、ワークロード自体の定義ではなく、インフラストラクチャと準備に重点を置いてください。
- 関連する Antithesis SDK を SUT にインストールし、最小限のブートストラップアサーションを追加することはセットアップの一部であり、後続のワークロード作業に先送りしないでください。
antithesis/test/がまだ存在しない場合は、後続のワークロード作業に必要なディレクトリ構成を作成してください。ただし、実際のテストテンプレートとアサーションはantithesis-workloadに任せてください。- 計装とシンボル化はブートストラップ作業として扱ってください。対象言語に応じて、該当するイメージが
/opt/antithesis/catalog/または/symbols/を正しく公開するまで、セットアップは完了していません。 - 最初の送信前にローカルテストを必ず実施してください。
- 実行を送信するには
antithesis-launchスキルを使用し、snouty launchを直接実行しないでください。antithesis-launchスキルがない場合は、snouty launchを直接使用して実行を送信してください。イメージが最新であることを確認するため、snouty launchの前にcompose buildを実行してください。 - デプロイで明示的に必要とされない限り、
antithesis/config/の下に別の Dockerfile を追加しないでください。 - すべてのコンテナでカラー/ANSI 出力を無効にしてください。Antithesis は生のバイトを保存し、エスケープコードを描画しないため、カラー出力はログやトリアージで意味のない文字列になります。docker-compose.yaml の environment ブロックまたは Dockerfile の
ENV命令で、すべてのサービスにNO_COLOR=1を設定してください。必要に応じて、ツール固有のフラグ(例:FORCE_COLOR=0)も追加してください。
セルフレビュー
このスキルを完成と宣言する前に、以下の基準に照らして作業を確認してください。エージェントがサブエージェントの起動に対応している場合は、まっさらなコンテキストで新しいエージェントを作成し、このスキルファイルのパスを渡して、すべての出力成果物を読ませてレビューさせてください。まっさらなコンテキストでのレビューでは、同じコンテキスト内でのレビューでは見落としがちな点を見つけられます。サブエージェントに対応していない場合は、自分でレビューを行ってください。まず、このファイルの冒頭にある成功基準を読み返し、次に以下の各項目を実際の出力と照らし合わせて、体系的に確認してください。
レビュー基準:
antithesis/config/docker-compose.yamlが存在し、各サービスにbuild:(ローカルイメージの場合)またはimage:(公開イメージの場合)が正しく設定されているdocker-compose.yamlのすべてのサービスにplatform: linux/amd64が含まれている- すべてのサービスで
hostname:がcontainer_name:と一致するように設定されており、どちらにもアンダースコアが含まれていない(アンダースコアは有効な DNS ラベル文字ではないため、ハイフンを使用してください) - すべてのサービスで
init: trueが設定され、サービスプロセスが pid 1 として実行されない - サービス間の依存関係には、単純な
depends_onではなく、定義済みのhealthcheckに対するcondition: service_healthyを指定したdepends_onを使用している - ランタイムの compose では、カスタムの
logging:ドライバーを設定せず、internal: trueのネットワークも構成せず、pull_policy:も設定していない references/instrumentation.mdに記載されたインストルメンテーション一覧が完全に実装されている。各サービスはインストルメント済み、カタログのみ、またはインストルメントされていないことが明示されている- 該当する Antithesis SDK が SUT の依存関係グラフにインストールされている
- ブートストラッププロパティが、確実に実行される単純なコードパスに存在し、まれな動作の背後に隠れていない
- サービスの言語に応じて、
/opt/antithesis/catalog/または/symbols/が正しく公開されている - 少なくとも1つのエントリーポイントで
setup_completeシグナルが組み込まれている antithesis/config/に対するsnouty validateが成功する- ビルドされたすべてのイメージが
amd64を対象としている(snouty が選択するエンジンでimage inspectを実行して確認する) - ビルドでは compose CLI を使用しており、
snouty doctorがエンジンを報告する - コンテナーの出力に ANSI エスケープコードが含まれないよう、すべてのサービスの環境に
NO_COLOR=1が設定されている(docker-compose.yamlおよび/または Dockerfile で設定) - ハーネスが
antithesis-workloadスキルに対応できる状態になっている。テストテンプレートのディレクトリが存在するか、後で使用できるように接続されている - ユーザーが実行の開始を依頼した場合、
snouty launchを直接実行するのではなく、antithesis-launchスキルを使用する sut-analysis.mdとdeployment-topology.mdに記載されていた調査の出典情報をユーザーに説明し、スキャフォールディングを開始する前に確認を得ている(出典情報の frontmatter 形式はantithesis-researchスキルのreferences/scratchbook-setup.mdで定義されています)