一键导入
antithesis-workload
Implement Antithesis workloads by turning the property catalog into SDK assertions and test commands, then refine coverage after triage.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Implement Antithesis workloads by turning the property catalog into SDK assertions and test commands, then refine coverage after triage.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Rust house style for repo-owned crates: edition 2024, naming, module layout, unsafe validation (Miri/loom/shuttle), mutation testing, fuzzing. Use when writing or reviewing Rust.
Use this skill to interactively debug Antithesis test runs using the multiverse debugger. Open a debugging-session URL, inspect container filesystems and runtime state, run shell commands, and extract evidence from inside the Antithesis environment. Supports both the simplified debugger (default) and the advanced notebook mode.
Search across all timelines in an Antithesis test run to find events, correlate property failures, and answer temporal questions about ordering and causation (e.g., did event A always precede failure B? do failures occur even without a preceding fault?).
Cross-cutting facts and gotchas for any Antithesis work on the ix repo — credentials, harness structure, `setup_complete` protocol, assertion idioms, randomness rules, workload design, triage via `agent-browser`, signed report URLs, and Test Composer script placement. Loads whenever an Antithesis run, report, property/assertion, `snouty` invocation, or `antithesis_sdk::` call is in play. Complements the task-scoped `antithesis-{setup,workload, launch,triage,debug,query-logs,research,documentation}` skills.
Triage Antithesis test reports to understand what happened in a run: look up runs, check status, investigate failed properties (assertions), view metadata, download logs, inspect findings, and examine environmental details. Load after a run completes or when investigating a failure.
Autonomously drive a pull request to merged by spawning a background subagent (the fork) that watches CI fail-fast, fixes each failure on the PR branch, re-pushes, and merges when green, all without blocking the main session. Use when the user wants to watch and merge a PR, babysit it, fix CI and merge, get a PR in, or otherwise hand off a PR's CI-to-merge loop so they can keep working. The skill never blocks the main thread; it launches the watcher and returns immediately.
| name | antithesis-workload |
| description | Implement Antithesis workloads by turning the property catalog into SDK assertions and test commands, then refine coverage after triage. |
| compatibility | Requires snouty (https://github.com/antithesishq/snouty). |
| metadata | {"version":"2026-05-15 a0f67a6"} |
Implement or improve the Antithesis workload. Success means:
antithesis-research skill are mapped to concrete assertions, using both the property catalog and per-property evidence filesantithesis/test/ and exercise the right behaviorsUse the antithesis-research skill first to build the property catalog. Use the antithesis-setup skill to scaffold the infrastructure. Use the antithesis-triage skill to review runs, then return here to improve the workload. If the user asks to submit or launch a run, use the antithesis-launch skill — do not run snouty launch directly.
antithesis/scratchbook/) doesn't exist. Use the antithesis-research skill to create it.docker-compose.yaml for Antithesis present. Use the antithesis-setup skill to create it.snouty is not installed. See https://raw.githubusercontent.com/antithesishq/snouty/refs/heads/main/README.md for installation options.Each invocation of the "Implement next property" workflow below focuses on one property to keep context manageable and quality high. (Post-triage iteration follows its own scoping based on triage findings.)
If the user asks for multiple properties, recommend doing one at a time — explain that implementation quality degrades as context accumulates, and each property's effort is unpredictable. Ask which one they'd like to start with. If they insist on multiple, proceed — but warn them first.
If the user specifies which property to work on, skip the full catalog scan — but still assess that property's status against its evidence file before proceeding. If it's already fully implemented, tell the user rather than redoing work.
If the user does not specify a property, run the full detection and recommendation flow below.
The detection work below is context-heavy (reading every evidence file, scanning the codebase for assertions). If your agent supports sub-agents, delegate it to a sub-agent that returns a per-property summary (status + brief rationale). This keeps the main implementation agent's context clean.
The detection task: for each property in the catalog, search the existing test and SUT code for Antithesis SDK assertion calls and cross-reference them with the property's evidence file at antithesis/scratchbook/properties/{slug}.md. Assess whether the existing assertions cover the code paths, failure scenarios, and instrumentation points the evidence file describes. Classify each property as:
Read whatever provenance frontmatter is present in the catalog and include it when presenting status. Use whatever fields you find — the schema may evolve over time, so don't treat partial or older frontmatter as broken. Describe what's there in plain language. Examples:
abc12345abcd (2026-05-05), SUT path /foo, external refs: A, B."abc12345abcd (2026-05-05) — no SUT path or external refs recorded."Workload runs every property cycle, so don't ask the user to re-confirm provenance every run — display it as context and continue. The user will speak up if it no longer matches the system they're working on. The user-facing commit display uses the short hash (first 12 characters) for readability; the frontmatter still stores the full SHA.
Recommend one property at a time — don't dump the full catalog. A catalog can easily have dozens or hundreds of properties; an exhaustive status list is overwhelming and rarely what the user needs. This is the default: pick one, explain why, and wait for confirmation.
The exception is when the user explicitly asks to discuss what to work on rather than receive a single recommendation. In that case, give a high-level summary (counts by status, notable clusters, anything unusual) and have the conversation. Surface specific properties only as the conversation calls for them.
Strategy for picking the recommendation:
antithesis/scratchbook/property-relationships.md), then other high-priority unimplemented properties. Tell the user when you're making this switch.Explain why you picked the property you picked, and wait for the user to confirm or choose differently before proceeding.
For the chosen property, read both the catalog entry and its evidence file.
Ask the user only for blockers or scoping decisions you cannot infer safely, such as:
antithesis/scratchbook/property-catalog.md/opt/antithesis/test/v1/{name}/. Each timeline runs commands from one test template. Files or subdirectories prefixed with helper_ are ignored by Antithesis, so use that prefix for helper scripts kept alongside commands.parallel_driver_, singleton_driver_, serial_driver_, first_, eventually_, finally_, anytime_.Always / AlwaysOrUnreachable: Assertions for safety and correctness properties.Sometimes(cond): Assertions for liveness or non-trivial semantic states that should occur at least once.Reachable / Unreachable: Assertions about whether meaningful outcomes or forbidden paths are exercised.Use the antithesis-documentation skill to access these pages. Prefer snouty docs.
https://antithesis.com/docs/test_templates/test_composer_reference.mdhttps://antithesis.com/docs/using_antithesis/sdk.mdhttps://antithesis.com/docs/properties_assertions/assertions.mdhttps://antithesis.com/docs/environment/fault_injection.md| Reference | When to read |
|---|---|
references/component-implementation.md | Implementing workload-side components or wrappers |
references/assertions.md | Turning properties into SDK assertions |
references/test-commands.md | Writing commands and organizing test templates |
references/interesting-values.md | Choosing the value menu for the property under test |
references/iteration.md | Improving coverage and assertions after triage |
references/component-implementation.mdreferences/assertions.mdreferences/test-commands.mdreferences/interesting-values.mdinteresting-values.md for the discovery process and worked examplesreferences/iteration.mdreferences/assertions.md if assertions need to changereferences/test-commands.md if command coverage needs to changeantithesis-setup has already made the system runnable in a mostly idle state; this skill owns what the workload does once the system is up.antithesis-setup has already installed the relevant SDK and added one minimal bootstrap assertion in the SUT. This skill owns the broader property catalog beyond that initial integration check.antithesis/test/antithesis/scratchbook/property-catalog.md when the implemented properties changeBefore 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:
Always/AlwaysOrUnreachable for safety, Sometimes(cond) for liveness or meaningful semantic state, Reachable/Unreachable for path and outcome checks)Sometimes(true, ...) assertions should be rewritten as Reachable(...).[acknowledged, attempted]")Reachable(...) markers are attached to distinct outcomes or branch results, not redundant early path-entry locations on the same straight-line flowinteresting-values.md.antithesis/test/ and use valid prefixes (parallel_driver_, singleton_driver_, serial_driver_, first_, eventually_, finally_, anytime_)setup_complete is emitted before test commands begin/opt/antithesis/test/v1/{name}/ in the containerhelper_ so Antithesis ignores themantithesis/scratchbook/property-catalog.md is updated to reflect the implementation status of every property in scope, with provenance frontmatter reflecting the current codebase state (refresh commit and updated; preserve sut_path and external_references from the existing catalog). The frontmatter format is defined in the antithesis-research skill, references/scratchbook-setup.md.snouty validate on antithesis/config to ensure that the compose setup can reach setup complete and any configured test-templates work. Make sure to build the latest images before running validate.