antithesis-review-inputs
Skill304 starsChanged 18 days agoApache-2.0View on GitHub
Review a workload's input generation for state space exploration: how well it uses randomness to drive the system under test into diverse regions of behavior.
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 9 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 31
When a user isn't finding bugs and wants to understand whether the workload's input generation is limiting what Antithesis can explore.
- Distinctive: line 51
If the workload location isn't obvious, ask the user.
- Very specific: line 55
Read references/anti-patterns.md before examining the workload.
- Distinctive: line 61
Read the workload code and look for structural patterns that match the anti-patterns.
- Distinctive: line 72
Do ranges vary per-run, or are bounds hardcoded?
- Distinctive: line 74
Do payload sizes span orders of magnitude, or stay in a narrow band?
- Distinctive: line 98
Not all findings deserve equal weight.
- Distinctive: line 109
When you can't assess a finding's severity without domain knowledge (e.g., "this range is hardcoded, but I don't know what the system …
- Distinctive: line 138
Don't frame findings as "you need to do this." Frame them as "this is state space you're not reaching, and here's what reaching it would …
- Distinctive: line 156
If the reviewer notices something outside its scope that seems important (e.g., the workload has no assertions at all), it can mention it …
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Antithesis Review Inputs
Skill version: 2026-10-30 d5d7b3b
Purpose and Goal
Examine a workload and report how well its input generation explores state space. The system under test is a black box — the review works entirely from the workload code and any documentation the user provides.
This skill is read-only. It produces a report of findings. It does not modify the workload, open PRs, or suggest specific code changes.
The framing is "untapped exploration" — findings are ceilings on what the workload can reach, not defects. A workload exhibiting any anti-pattern may still be productive. The question is whether it could reach more interesting behavior with structural changes to how it uses randomness.
When to Use
When a user isn't finding bugs and wants to understand whether the workload's input generation is limiting what Antithesis can explore. Also useful as a periodic health check on workloads — both human-written and agent-generated.
Core Principle
Randomize the policy per run, not just the choices under a fixed policy. Each run should explore a different region of behavior by biasing its configuration differently. The skill reviews how well the workload does this.
Workflow
1. Locate the workload
Find the test commands and workload code. Common locations:
antithesis/test/— test command scripts- Workload source files referenced by test commands
- Client libraries or helpers used by the workload
If the workload location isn't obvious, ask the user.
2. Read the anti-patterns reference
Read references/anti-patterns.md before examining the workload. It contains
the full catalog of input generation anti-patterns organized by category, with
explanations of why each limits exploration and what better looks like.
3. Examine the workload
Read the workload code and look for structural patterns that match the anti-patterns. Focus on what is visible in the code:
Action selection — How are operations chosen?
- Is there a fixed set that's always fully active, or per-run subsetting?
- Are action weights fixed, uniform, or varied per-run?
- Is ordering imposed by the harness or emergent from randomness?
- Are there symmetric pairs always active together?
Data generation — How are inputs produced?
- Are values hardcoded, drawn from fixed pools, or generated?
- Do ranges vary per-run, or are bounds hardcoded?
- Does input quality vary (valid, invalid, mixed), or is it always valid?
- Do payload sizes span orders of magnitude, or stay in a narrow band?
Structure — How is the workload organized?
- Is the concurrency level fixed or varied per-run?
- Does operation pacing vary, or is it always steady/fast?
- Does the workload always start from empty state?
4. Build the findings
For each anti-pattern you identify in the workload:
- Name the pattern
- Point to where in the code you see it (file and line)
- Explain what state space it leaves unexplored
- Describe what the workload could reach if this changed
The explanation should be concrete and specific to this workload, not a generic restatement of the anti-pattern. "Your three actions (put, get, delete) are always all active with equal weight — runs where only deletes fire would test behavior with zero keys" is better than "all actions are always active."
5. Tier the findings
Not all findings deserve equal weight. Tier them:
- High signal — The workload has a clear structural limitation that prevents it from reaching entire regions of state space. Example: all actions always active with no subsetting, all values hardcoded.
- Worth considering — The workload could explore more space with changes, but the limitation is more contextual or less severe. Example: no null/absent value variation, fixed concurrency level.
- Observation — Something the reviewer noticed that might matter depending on the system. Example: encoding variation, seed data identical across runs.
When you can't assess a finding's severity without domain knowledge (e.g., "this range is hardcoded, but I don't know what the system accepts"), say so. Present the structural fact and let the user supply the domain judgment.
6. Present the report
Structure the report as:
- What the workload does — A brief summary of what the reviewer sees: what actions the workload takes, how it generates data, how it's structured. This is the reviewer's model of the workload, presented so the user can correct misunderstandings before reading findings.
- Findings — Organized by tier (high signal first), grouped by category when multiple findings cluster. Each finding names the pattern, points to the code, and explains the unexplored state space in terms specific to this workload.
- What's working well — Patterns the workload already does right. If the workload has per-run action subsetting, or varies payload sizes, say so. Findings-only reports feel like a critique; acknowledging what works frames the report as an assessment.
Tone
The report must read as "here's what you could explore that you're not reaching" — never as "your workload is bad." A workload exhibiting multiple anti-patterns may still be finding bugs; the goal is to help it find more.
Don't frame findings as "you need to do this." Frame them as "this is state space you're not reaching, and here's what reaching it would look like." The user decides what's worth changing.
Scope Boundaries
This skill reviews input generation — how the workload drives the system into diverse states. It does not review:
- Assertion quality — Whether the workload would notice a bug if it reached one. That's a separate concern.
- System correctness — Whether the system under test is behaving correctly. The SUT is a black box.
- Workload correctness — Whether the workload code has bugs. The reviewer reads the workload's structure, not its correctness.
- Infrastructure — Whether the Antithesis setup, Docker configuration, or test templates are correct.
If the reviewer notices something outside its scope that seems important (e.g., the workload has no assertions at all), it can mention it briefly as an observation, but should not review it in depth.
Reference Files
| Reference | When to read |
references/anti-patterns.md | Before examining any workload — the full catalog |
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 1
- ghuntley/loom★ 1.6k99% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository14 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- antithesis-debugSkill
- antithesis-documentationSkill
- antithesis-feature-workloadSkill
- antithesis-launchSkill
- antithesis-mutation-testingSkill
- antithesis-researchSkill
- antithesis-setup-k8sSkill
- antithesis-setupSkill
- antithesis-skills-feedbackSkill
- antithesis-triageSkill
- antithesis-workloadSkill
- test:triageSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

