CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/chaos-experiment-author

Build-an-X workflow for a chaos experiment per the Principles of Chaos Engineering - defines steady-state hypothesis, picks the variables (real-world events: network latency, node failure, region outage), sets the blast radius (which percentage / namespace / user cohort), automates execution, and emits the verdict (steady-state held / didn't hold). Use to scope a chaos experiment before running it via Litmus / Chaos Mesh / Gremlin / Toxiproxy.

75

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

experiment-authoring.mdreferences/

Chaos experiment authoring reference

Supporting detail for chaos-experiment-author. Step 2 uses the event catalog, Step 7 uses the verdict report template, and the anti-patterns table lists the mistakes each step guards against.

Real-world event catalog (Step 2)

Per principlesofchaos.org principle 2, vary real-world events: inject what could plausibly happen, not "anything". Pick events the team has already seen in real incidents or realistically expects.

Event classExamples
NetworkLatency 500ms, packet loss 5%, DNS failure, connection reset
ComputePod kill, CPU throttle, OOM kill, node drain
StorageDisk full, slow disk, read failure
TimeClock skew, leap second
Region / zoneSingle AZ outage, multi-AZ outage
DependencyThird-party API 500s, rate limit, timeout
ConfigurationBad config push, secret rotation failure

Verdict report template (Step 7)

## Chaos experiment verdict - `checkout-network-latency`

**Date:** YYYY-MM-DD   **Duration:** 5 minutes
**Steady-state hypothesis:** checkout_completion_rate >= 95%
**Verdict:** HELD

| Metric                   | Pre-experiment | During experiment | Post |
|--------------------------|----------------|-------------------|------|
| checkout_completion_rate |     97.2%      |       96.8%       | 97.5% |
| p95 latency              |     245ms      |       380ms       | 240ms |

### Observations
- Latency increased as expected (300ms injected).
- Retry logic worked: ~200 retries observed; no user-visible failures.

### Action items
- (none - system behaved as expected)

### Next iteration
- Increase blast radius from 1% to 5% in next month's run.
- Add a longer-duration variant (15 min) to test fatigue.

Anti-patterns

Anti-patternWhy it failsFix
Hypothesis as feeling ("system feels stable")Unmeasurable; can't tell if held.Numeric metric (Step 1).
Inject anything; see what breaksWastes effort; misses real failure modes.Pick real-world events (Step 2).
Production-first experiment without stagingRisks user-visible incident on first run.Staging -> canary -> production (Step 6).
No abort conditionsExperiment runs past safety threshold; real incident.Define abort + manual abort signal (Step 3).
Manual experiment runs onlyPer principlesofchaos.org: "labor-intensive and ultimately unsustainable."Automate (Step 5).
One-off experiment then forgetConfidence decays; same incident recurs.Schedule + repeat (Step 5 cron).
Skipping the verdict reportLessons not captured; next iteration arbitrary.Step 7 report.

SKILL.md

tile.json