mcpField
A
antithesis-setup

antithesis-setup

github.com/antithesishqテスト・品質302578 回インストール1 週間前に更新
リポジトリ

antithesis-setup について

antithesis-setupは、プロジェクトのAntithesisテストハーネスを準備するスキルです。コンテナ設定と計測を整え、ブートストラップ用アサーションを追加して、ワークロード開発に向けた準備状況を確認します。

主な機能

  1. 01Antithesisディレクトリの構築
  2. 02SUTの計測とSDK設定
  3. 03DockerイメージとComposeの設定
  4. 04ブートストラップ用アサーションの追加
  5. 05ハーネスの検証

活用シーン

  1. 01調査済みプロジェクトのAntithesis準備
  2. 02SUTイメージとサービスの設定
  3. 03ワークロード開発前のハーネス検証

インストール

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

$npx skills add https://github.com/antithesishq/antithesis-skills --skill antithesis-setup

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

同梱ファイル

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

assets/antithesis/
AGENTS.md
setup-complete.sh
assets/antithesis/config/
docker-compose.yaml
references/
config-dir.md
directory-init.md
docker-compose.md
docker-images.md
instrumentation.md
submit-and-test.md
references/language/
cpp.md
dotnet.md
fallback.md
go.md
java.md
javascript.md
python.md
rust.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 が保存されます。

  • 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 で定義されています)

コメント