antithesis

Provides cross-cutting facts and gotchas for Antithesis testing work on the ix repo.

Updated Aug 5, 2026
One-click install
npx skills add https://github.com/harivansh-afk/loom-index-e2e --skill antithesis-harivansh-afk
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: antithesis
Source: https://github.com/harivansh-afk/loom-index-e2e/tree/main/skills/antithesis
Command: npx skills add https://github.com/harivansh-afk/loom-index-e2e --skill antithesis-harivansh-afk

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes assets (resource) components.

What problem does it solve? Antithesis work on the ix repo involves many non-obvious operational details — credentials, harness structure, the setup_complete protocol, assertion idioms, randomness rules, and signed report URLs — that are easy to get wrong and cause discarded runs or false-positive failures. This Skill centralizes those cross-cutting rules so any Antithesis task starts from correct operational knowledge. ## Core Features & Use Cases - Credentials and registry reference: Supplies Bitwarden paths, the GAR registry location, and required environment variables for Antithesis access. - Harness and protocol rules: Documents the container harness layout, the setup_complete emission protocol with its non-fatal fallback, and Test Composer script placement and prefix semantics. - Assertion and workload idioms: Defines correct usage of assert_always!, assert_sometimes!, assert_reachable!, and assert_unreachable!, plus randomness rules and POSIX write-semantics pitfalls for VCFS workloads. - Use Case: When writing a new Antithesis workload or triaging a report, load this Skill to avoid mistakes like emitting setup_complete from a test command, seeding a local PRNG from SDK output, or stripping the signed ?auth= token from a report URL. ## Quick Start Load the antithesis skill before starting any Antithesis run, report triage, assertion, or snouty invocation on the ix repo.

Frequently Asked Questions about antithesis

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I emit setup_complete in an Antithesis harness?▼

Emit setup_complete from the long-lived container entrypoint via antithesis_sdk::lifecycle::setup_complete, and also append the JSONL record to $ANTITHESIS_OUTPUT_DIR/sdk.jsonl as a non-fatal fallback. Never emit it from a test command, since test commands run only after setup_complete and doing so deadlocks startup.

What is the difference between assert_sometimes and assert_reachable in the Antithesis SDK?▼

assert_sometimes! checks liveness, meaning a non-trivial condition holds at least once, while assert_reachable! marks a distinct outcome or code path. Writing assert_sometimes!(true, ...) is wrong; that is exactly what assert_reachable! expresses.

Why does Antithesis reject my container image as unsupported?▼

Antithesis rejects images built with fakeroot customisation layers as an unsupported container type. Build images with dockerTools.buildLayeredImage and contents only, avoiding extraCommands and fakeRootCommands.

Can I seed a local PRNG from antithesis_sdk random output?▼

No. Seeding a local PRNG from get_random() output makes branches replay identically, defeating the fuzzer. Drive all values from antithesis_sdk::random::get_random() or random_choice, or use AntithesisRng which implements rand::RngCore.

Why does my shared Antithesis report URL return 403?▼

Antithesis report URLs are per-report signed with a ?auth=v2.public.<jwt> token on top of tenant SSO, and the bare URL returns 403 even for authenticated users. Always paste the full URL including the query string, plus a fallback pointer to the runs page for when the token expires.

Where do Test Composer scripts go in an Antithesis image?▼

Test Composer scripts must be real executables at /opt/antithesis/test/v1/<test>/<prefix>_<name>, using prefixes like first_, serial_driver_, parallel_driver_, singleton_driver_, anytime_, eventually_, finally_, or helper_. Test commands exit 0 on success.