Scaffold the Antithesis harness: initialize the working directory, write Dockerfiles and docker-compose.yaml with build directives, and prepare to submit your first Antithesis test run.
57
65%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./antithesis-setup/SKILL.mdScaffold the antithesis/ harness needed to bring the system up in Antithesis
in a mostly idle, ready state.
Success means:
antithesis/config/docker-compose.yaml exists and required SUT images are referenced with build: directivessnouty validate on antithesis/config/ succeedsantithesis-workload skill to add or iterate on test templates, assertions, and workload codeantithesis-launch skill — do not run snouty launch directlyResearch artifacts required. Before proceeding, check whether antithesis/scratchbook/ exists and contains research output (at minimum sut-analysis.md and deployment-topology.md). If the scratchbook is missing or empty, stop and warn the user:
The
antithesis-researchskill has not been run yet (no scratchbook found atantithesis/scratchbook/). Setup depends on research artifacts — especially the SUT analysis and deployment topology — to make informed decisions about instrumentation, image structure, and service composition. Please runantithesis-researchfirst, review its output, then return to setup.
Do not attempt to proceed without research artifacts. The setup skill will make significantly worse decisions without the context that research provides.
Verify research provenance. Setup runs once per project and produces durable, expensive output (Dockerfiles, compose, instrumentation), so misalignment is costly. Read whatever provenance frontmatter is present in antithesis/scratchbook/sut-analysis.md and antithesis/scratchbook/deployment-topology.md. Use whatever fields you find — the schema may evolve over time, so don't treat partial or older frontmatter as broken. Describe what you found in plain language. Examples:
/path/X at commit abc12345abcd (2026-05-05), external refs: A, B."commit and updated but no sut_path or external_references."/path/A at commit abc; deployment-topology is for /path/B at commit def — these disagree."Then ask the user:
Is this still the system you're targeting?
If the user says no, do not proceed. Stop and tell the user to re-run antithesis-research. Setup against confirmed-stale research will produce mismatched scaffolding.
The user-facing commit display uses the short hash (first 12 characters) for readability; the frontmatter still stores the full SHA.
DO NOT PROCEED if snouty is not installed. See https://raw.githubusercontent.com/antithesishq/snouty/refs/heads/main/README.md for installation options.
Use the antithesis-documentation skill to access these pages. Prefer snouty docs.
https://antithesis.com/docs/getting_started/setup/https://antithesis.com/docs/best_practices/docker_best_practices/https://antithesis.com/docs/instrumentation/coverage_instrumentation/https://antithesis.com/docs/instrumentation/assertion_cataloging/https://antithesis.com/docs/reference/dependencies/https://antithesis.com/docs/environment/fault_injection/This skill is broken out into multiple steps, each in a different reference file. Read and implement each reference file listed below one at a time to fully set up a project. After implementing each step, check whether what you learned invalidates any decisions from earlier steps. Instrumentation decisions (step 2) are the most common thing that needs revision once you start building images (step 3).
references/directory-init.md: initialize or merge the antithesis/ directory from assets/antithesis/references/instrumentation.md: decide how each SUT service is instrumented, how the SDK is installed, how symbols are delivered, and where the bootstrap property livesreferences/docker-images.md: create or adapt Dockerfiles for SUT componentsreferences/docker-compose.md: write antithesis/config/docker-compose.yamlreferences/config-dir.md: understand what belongs in antithesis/config/references/submit-and-test.md: test locally and submit the first runantithesis/ content instead of overwriting it.podman compose for local testing; fall back to docker compose.antithesis/ when practical.antithesis/test/ does not exist yet, create the directory structure
needed for later workload work, but leave real test templates and assertions
to antithesis-workload./opt/antithesis/catalog/ or
/symbols/ correctly for their language.snouty launch directly to submit runs. Run compose build before snouty launch to ensure images are up to date.antithesis/config/ unless the
deployment explicitly requires it.NO_COLOR=1 on all services via docker-compose.yaml environment blocks or
Dockerfile ENV directives. Add tool-specific flags (e.g. FORCE_COLOR=0)
where needed.Before declaring this skill complete, review your work against the criteria below. If your agent supports spawning sub-agents, create a new agent with fresh context to perform this review — give it the path to this skill file and have it read all output artifacts. A fresh-context reviewer catches blind spots that in-context review misses. If your agent does not support sub-agents, perform the review yourself: re-read the success criteria at the top of this file, then systematically check each item below against your actual output.
Review criteria:
antithesis/config/docker-compose.yaml exists and every service has build: (for local images) or image: (for public images) configured correctlyplatform: linux/amd64hostname: set to match its container_name:, and neither contains an underscore (use hyphens — underscores are not valid DNS label characters)init: true so the service process does not run as pid 1depends_on with condition: service_healthy against a defined healthcheck, not plain depends_onlogging: driver, does not configure any internal: true network, and does not set pull_policy:references/instrumentation.md is fully implemented: each service is instrumented, cataloged-only, or explicitly documented as uninstrumented/opt/antithesis/catalog/ or /symbols/ is exposed correctly for each service's languagesetup_complete signal is wired in at least one entrypointsnouty validate on antithesis/config/ succeedsamd64 (verified via podman image inspect or docker image inspect)NO_COLOR=1 set in its environment (via docker-compose.yaml and/or Dockerfile) to prevent ANSI escape codes in container outputantithesis-workload skill — test template directories exist or are wired for later useantithesis-launch skill is used instead of running snouty launch directlysut-analysis.md and deployment-topology.md was described to the user and confirmed before scaffolding began (provenance frontmatter format is defined in the antithesis-research skill, references/scratchbook-setup.md)f837248
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.