chaos-resilience-testing
Skill1 starsChanged 4 months agoMITView on GitHub
Use when deliberately injecting failure (network latency/loss, service/dependency crash, resource exhaustion) to verify a system degrades gracefully instead of cascading — retries, circuit breakers, timeouts, backpressure. Requires explicit authorization and a scoped blast radius; never run against unscoped production without sign-off.
1 other project uses a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- mejbaurbahar/software-tester-skillsedited, first seen Oct 13, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 1
- mejbaurbahar/software-tester-skills★ 197% 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 repository24 other files it gives its agents.
- accessibility-testingSkill
- ai-ml-testingSkill
- api-testingSkill
- autonomous-qa-orchestrationSkill
- bug-reportingSkill
- chatbot-voice-agent-testingSkill
- cicd-testingSkill
- cloud-infrastructure-testingSkill
- contract-testingSkill
- database-testingSkill
- fagunSkill
- functional-testingSkill
- llm-testingSkill
- manual-testingSkill
- mobile-testingSkill
- observability-testingSkill
- performance-testingSkill
- qa-code-intelligenceSkill
- qa-fundamentalsSkill
- regression-testingSkill
- security-testingSkill
- test-automationSkill
- test-data-engineeringSkill
- visual-testingSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
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 11
Always have a kill switch / rollback ready before starting an experiment, and a monitoring dashboard open to abort immediately if impact …
- Distinctive: line 12
Start in staging; only run in production with explicit sign-off, a documented game-day plan, and off-peak timing.
- Distinctive: line 13
Never run an experiment whose blast radius you can't predict or contain.
- Very specific: line 43
Document: exact fault injected, blast radius, expected vs.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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
Chaos / Resilience Testing
Safety boundary — read first
Chaos testing is a controlled, authorized experiment, not random destruction:
- Confirm explicit authorization and a defined blast radius (specific service, specific % of traffic, specific environment) before running anything.
- Always have a kill switch / rollback ready before starting an experiment, and a monitoring dashboard open to abort immediately if impact exceeds the expected scope.
- Start in staging; only run in production with explicit sign-off, a documented game-day plan, and off-peak timing.
- Never run an experiment whose blast radius you can't predict or contain.
What you're actually testing
Not "does it break" (it will) — you're verifying the system's failure mode is graceful: does it degrade a feature, or does one dependency failure cascade into a full outage? The finding that matters is how it fails, not just that it failed.
Failure types to inject
- Latency injection — add artificial delay to a downstream call (Toxiproxy, a proxy sidecar, or code-level fault injection) and verify timeouts are actually configured (a call with no timeout will hang the caller indefinitely, which is itself the finding).
- Service/dependency failure — kill a downstream service or dependency and verify the caller's circuit breaker trips, falls back (cache, default, degraded feature) or fails fast with a clear error, rather than retrying forever or hanging.
- Network partition — split traffic so two nodes can't see each other; verify split-brain handling in anything with leader election/consensus.
- Resource exhaustion — CPU/memory pressure, connection pool exhaustion, disk full — verify the app fails predictably (clear error, backpressure) rather than corrupting data or hanging unrecoverably.
- Database failure — kill the primary DB connection mid-request; verify no partial writes, and that the app either queues/retries per its documented contract or surfaces a clear error rather than silently dropping the operation.
- Queue saturation — flood a queue beyond normal capacity; verify backpressure (producer slows/rejects) rather than unbounded memory growth or silent message loss.
What "graceful" looks like — verify these exist, don't assume
- Timeouts on every external call (network, DB, downstream service) — no call should be able to hang forever.
- Retries with backoff and a cap — unbounded immediate retries turn a transient blip into a thundering-herd outage; verify exponential backoff and a max-attempt ceiling.
- Circuit breakers — after N consecutive failures, the caller should stop hammering a dead dependency and fail fast (or fall back), then periodically probe to see if it's recovered.
- Bulkheads — one overloaded dependency's connection pool exhaustion shouldn't starve unrelated request paths that don't even use that dependency.
- Idempotency on retry paths — a retried request (client-side or infra-level) must not double-apply the side effect (see [[contract-testing]], [[database-testing]]).
Kubernetes-specific scenarios
- Pod eviction/OOM-kill mid-request — does the load balancer route around it without dropping in-flight requests?
- Node failure — does the scheduler reschedule affected pods within an acceptable window, and does the app's readiness probe correctly keep it out of rotation until actually ready?
Tools
- Toxiproxy — network-level fault injection (latency, bandwidth limits, connection resets) via a proxy, good for local/CI-scoped testing.
- Chaos Mesh / Litmus — Kubernetes-native chaos engineering (pod kill, network chaos, IO chaos) with defined experiment CRDs.
- Gremlin — commercial, broader infra + application-level fault injection with built-in safety/halting controls.
Reporting
Document: exact fault injected, blast radius, expected vs. actual degradation, recovery time, and whether the safeguard (timeout/breaker/retry) that should have contained it actually existed and worked. A missing safeguard is a Critical/Major finding depending on the dependency's centrality — see [[bug-reporting]].
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.

