Chaos Engineering Toolkit

VerifiedCaution

Execute chaos engineering experiments to test system resilience by injecting failures like network latency, service crashes, and resource exhaustion. Validate graceful degradation and automatic recovery.

Sby Skills Guide Bot
DevOpsAdvanced
8/6/2026
Claude CodeCodex
#chaos-engineering#resilience-testing#fault-injection#observability#incident-response

Recommended for

Automated summary

This skill drives controlled chaos engineering experiments to verify a distributed system's resilience, fault tolerance, and recovery behaviour.

Strengths

  • Structured methodology: steady-state hypothesis, blast radius, gradual escalation of experiments
  • Concrete failure categories (network, process, dependency, state) with typical parameter ranges
  • Explicit safeguards: max duration, automatic abort thresholds, manual kill switch
  • High-value observation checklist (circuit breakers, retries, fallbacks, alerting) plus deliverables and action items

Limitations

  • Assumes an instrumented staging environment and an already-installed chaos tool (toxiproxy, Pumba, Litmus, Chaos Mesh); it does not install them
  • Covers the experimental process only, not the actual tool or dashboard configuration
  • Risky if team approval and abort triggers are not genuinely enforced
When to use it

Use it when a team wants to validate how a distributed system behaves under injected failures in staging and record its resilience gaps.

When not to use it

Avoid it in production without safeguards and approval, or when no monitoring, baseline metrics, or rollback path exist.

Security analysis

Caution
Quality score79/100

This is a standard chaos-engineering playbook that uses powerful, deliberately destructive operations (process kills, resource exhaustion, fault injection, data-state manipulation) for a legitimate resilience-testing purpose. There is no exfiltration, obfuscation, curl|sh, or safety-disabling content, and it explicitly frames experiments as staging-only with approval and rollback. Because the instructions can cause real outages if misapplied and the tool allowlist doesn't match the shown commands, 'caution' rather than 'safe' is appropriate.

Findings
  • •Content is inherently disruptive by design: instructs killing pods/processes, exhausting CPU/memory, filling disk, blocking dependencies, and 'corrupting data' — legitimate for chaos engineering but high-impact if run against the wrong environment
  • •No enforced guardrail in the file itself; safety depends entirely on the operator honoring the stated prerequisites (staging-only, approval, blast radius, rollback)
  • •Declared Bash scope (test:chaos-*) does not cover the example commands shown (toxiproxy-cli, npm test, kubectl/Litmus), so the allowlist is inconsistent with the instructions
  • •Guidance to 'deploy chaos agent inside the target network' and 'add security group rules' nudges toward loosening network segmentation
How this analysis is made

Examples

Inject network latency
Run a chaos experiment in staging: inject 500ms of network latency between the checkout service and the payment API, watch error rate and p99 latency, and abort automatically if the error rate goes above 5%.
Kill a service instance
Test the resilience of our order service by killing one of its three instances, then report whether the circuit breaker opens, how retries behave, and how long autoscaling takes to bring a healthy instance back.
Plan a dependency outage
Design a chaos experiment that blocks access to our Redis cache, starting from a written steady-state hypothesis, a defined blast radius, and a documented rollback plan, and include the experiment definition file.

name: running-chaos-tests description: | Execute chaos engineering experiments to test system resilience. Use when performing specialized testing. Trigger with phrases like "run chaos tests", "test resilience", or "inject failures".

allowed-tools: Read, Write, Edit, Grep, Glob, Bash(test:chaos-*) version: 1.0.0 author: Jeremy Longshore jeremy@intentsolutions.io license: MIT compatible-with: claude-code, codex, openclaw

Chaos Engineering Toolkit

Overview

Execute controlled chaos engineering experiments to test system resilience, fault tolerance, and recovery capabilities. Injects failures including network latency, service crashes, resource exhaustion, and dependency outages to verify that systems degrade gracefully and recover automatically.

Prerequisites

  • Distributed system or microservice architecture deployed in a staging/test environment
  • Monitoring and alerting configured (Grafana, Datadog, CloudWatch, or Prometheus)
  • Rollback capability for the target environment (manual or automated)
  • Chaos engineering tool installed (toxiproxy, Pumba, Litmus, or Chaos Mesh)
  • Explicit approval from the team to run chaos experiments
  • Steady-state hypothesis defined (what "healthy" looks like in metrics)

Instructions

  1. Define the steady-state hypothesis:
    • Identify measurable indicators of normal system behavior (e.g., p99 latency < 500ms, error rate < 0.1%, all health checks pass).
    • Record baseline metrics before injecting any failures.
    • Define the blast radius -- which services and users are affected by the experiment.
  2. Design chaos experiments by category:
    • Network: Inject latency (200-2000ms), packet loss (5-50%), DNS failure, connection timeout.
    • Process: Kill a service instance, exhaust CPU or memory, fill disk.
    • Dependency: Block access to database, cache, or external API.
    • State: Corrupt data, introduce clock skew, simulate split-brain scenarios.
  3. Start with minimal impact and increase gradually:
    • Begin with read-only experiments (network latency on non-critical path).
    • Progress to service-level failures (kill one instance of a multi-instance service).
    • Only move to data-level chaos after infrastructure chaos is validated.
  4. Execute each experiment with safeguards:
    • Set a maximum experiment duration (5-15 minutes).
    • Configure automatic rollback triggers (error rate > 5% triggers abort).
    • Monitor system metrics in real-time during the experiment.
    • Have a manual kill switch ready (script to remove all injected failures immediately).
  5. Observe and record system behavior during the experiment:
    • Did circuit breakers activate? How quickly?
    • Did auto-scaling trigger? How long until new instances were healthy?
    • Did retries succeed? Were they idempotent?
    • Did fallback mechanisms engage (cached responses, degraded mode)?
    • Were alerts triggered? Did on-call receive notification?
  6. After the experiment, verify full recovery:
    • Remove all injected failures.
    • Verify steady-state hypothesis holds again within expected recovery time.
    • Check for data inconsistencies or orphaned state.
  7. Document findings and create action items for resilience improvements.

Output

  • Chaos experiment definition files (YAML or JSON) with hypothesis, method, and rollback
  • Experiment execution log with timeline of injected failures and observed effects
  • System behavior report covering circuit breakers, retries, fallbacks, and alerts
  • Recovery timeline showing time-to-detection and time-to-recovery
  • Action items for resilience improvements (retry policies, circuit breaker tuning, fallback additions)

Error Handling

| Error | Cause | Solution | |-------|-------|---------| | Experiment caused production outage | Blast radius larger than expected or missing safeguards | Always run in staging first; reduce scope; add automatic abort triggers; require approval | | System did not recover after experiment | Auto-healing mechanisms not configured or too slow | Add health-check-based restarts; configure auto-scaling; implement circuit breaker patterns | | Monitoring missed the failure | Alerting thresholds too lenient or wrong metrics monitored | Tighten alert thresholds; add specific alerts for the failure mode tested; verify alert channels | | Chaos tool cannot access target | Network segmentation or security policies blocking the tool | Deploy chaos agent inside the target network; add security group rules for the chaos controller | | Data corruption persists after rollback | Stateful failure injection without transaction protection | Use read-only chaos first; snapshot databases before stateful experiments; implement compensating transactions |

Examples

toxiproxy network latency injection:

set -euo pipefail
# Create a proxy for the database connection
toxiproxy-cli create postgres_proxy -l 0.0.0.0:15432 -u postgres-host:5432  # 15432: PostgreSQL port

# Inject 500ms latency
toxiproxy-cli toxic add postgres_proxy -t latency -a latency=500 -a jitter=100  # HTTP 500 Internal Server Error

# Run tests while latency is active
npm test -- --grep "handles slow database"

# Remove the toxic
toxiproxy-cli toxic remove postgres_proxy -n latency_downstream

Kubernetes pod kill experiment (Litmus Chaos):

apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
  name: api-pod-kill
spec:
  appinfo:
    appns: default
    applabel: "app=api-server"
  chaosServiceAccount: litmus-admin
  experiments:
    - name: pod-delete
      spec:
        components:
          env:
            - name: TOTAL_CHAOS_DURATION
              value: "60"
            - name: CHAOS_INTERVAL
              value: "10"
            - name: FORCE
              value: "true"

Custom chaos script (process kill and verify recovery):

#!/bin/bash
set -euo pipefail
echo "=== Chaos Experiment: API server kill ==="
echo "Hypothesis: System recovers within 30 seconds"

# Record baseline
BASELINE=$(curl -s -o /dev/null -w '%{http_code}' http://app.test/health)
echo "Baseline health: $BASELINE"

# Kill one API instance
docker kill api-server-1

# Monitor recovery
for i in $(seq 1 30); do
  STATUS=$(curl -s -o /dev/null -w '%{http_code}' --max-time 2 http://app.test/health)
  echo "T+${i}s: HTTP $STATUS"
  if [ "$STATUS" = "200" ]; then  # HTTP 200 OK
    echo "RECOVERED at T+${i}s"
    break
  fi
  sleep 1
done

Resources

  • Principles of Chaos Engineering: https://principlesofchaos.org/
  • toxiproxy: https://github.com/Shopify/toxiproxy
  • Litmus Chaos: https://litmuschaos.io/
  • Chaos Mesh (Kubernetes): https://chaos-mesh.org/
  • Pumba (Docker chaos): https://github.com/alexei-led/pumba
  • Netflix Chaos Engineering: https://netflixtechblog.com/tagged/chaos-engineering

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/chaos-engineering-toolkit-msh3ut5c/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/chaos-engineering-toolkit-msh3ut5c' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/chaos-engineering-toolkit-msh3ut5c/download' --output '.skill-downloads/chaos-engineering-toolkit-msh3ut5c/SKILL.md.part' && mv '.skill-downloads/chaos-engineering-toolkit-msh3ut5c/SKILL.md.part' '.skill-downloads/chaos-engineering-toolkit-msh3ut5c/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

Tools declared by the author (check availability in your agent): Read, Write, Edit, Grep, Glob, Bash(test:chaos-*)

Original excerpt: Prerequisites
  • Distributed system or microservice architecture deployed in a staging/test environment
  • Monitoring and alerting configured (Grafana, Datadog, CloudWatch, or Prometheus)
  • Rollback capability for the target environment (manual or automated)
  • Chaos engineering tool installed (toxiproxy, Pumba, Litmus, or Chaos Mesh)
  • Explicit approval from the team to run chaos experiments
  • Steady-state hypothesis defined (what "healthy" looks like in metrics)

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/chaos-engineering-toolkit-msh3ut5c/SKILL.md' && test -s '.skill-downloads/chaos-engineering-toolkit-msh3ut5c/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/running-chaos-tests' && cp -R '.skill-downloads/chaos-engineering-toolkit-msh3ut5c' '.claude/skills/running-chaos-tests'

Codex
test -f '.skill-downloads/chaos-engineering-toolkit-msh3ut5c/SKILL.md' && test -s '.skill-downloads/chaos-engineering-toolkit-msh3ut5c/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/running-chaos-tests' && cp -R '.skill-downloads/chaos-engineering-toolkit-msh3ut5c' '.agents/skills/running-chaos-tests'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/chaos-engineering-toolkit-msh3ut5c'

openskills read 'chaos-engineering-toolkit-msh3ut5c'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/chaos-engineering-toolkit-msh3ut5c/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills