Skip to content
Back to skills

Qa Resilience

ASecurity

Designs and tests distributed-system resilience. Use when adding retries, deadlines, hedging, circuit breakers, overload protection, chaos experiments, or SLO reliability gates.

  • 89 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 2, 2026
ai-agentspythongobashsqlrailstestingdebuggingapifrontendbackend

Works with

  • claude code
  • cli
  • api

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add vasilyu1983/AI-Agents-public --skill qa-resilience --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Qa Resilience?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Qa Resilience
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vasilyu1983-qa-resilience/badge)](https://www.skillsdirectory.com/skills/vasilyu1983-qa-resilience)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: qa-resilience
description: "Designs and tests distributed-system resilience. Use when adding retries, deadlines, hedging, circuit breakers, overload protection, chaos experiments, or SLO reliability gates."
compatibility: Portable core. Works on Claude Code and Codex.
version: "1.2"
last_validated: 2026-07-11
---

# QA Resilience

## Quick Reference

| Symptom | Start With |
|--------|------------|
| slow or hanging dependency | deadline and timeout budget |
| transient dependency failure | bounded retry with jitter and retry budget |
| sustained dependency failure | circuit breaker and fallback |
| rate-limited dependency | honor `Retry-After`, expose degraded behavior, and test quota paths intentionally |
| one bad host in a healthy pool | outlier detection or endpoint ejection |
| queue or pool saturation | bulkheads, concurrency limits, load shedding |
| static concurrency limit keeps going stale under changing capacity | adaptive concurrency limit with a static backstop; verify the goodput plateau — [load-shedding-backpressure.md](references/load-shedding-backpressure.md#adaptive-concurrency-limits) |
| non-critical feature outage | graceful degradation or feature flag fallback |
| resilience validation | deterministic fault injection before chaos |

## When to Use This Skill

- retries, deadlines, hedging, breakers, bulkheads, and overload protection
- degraded-mode UX or API behavior
- service-mesh or gateway resilience policy
- chaos engineering, game days, DR drills, and fault injection
- release gates based on failure behavior, not only happy-path load tests

## Route Elsewhere

- simple CRUD or single-process utilities -> ordinary error handling may be enough
- frontend-only failure behavior -> [software-frontend](../software-frontend/SKILL.md)
- service implementation details -> [software-backend](../software-backend/SKILL.md)
- telemetry instrumentation -> [qa-observability](../qa-observability/SKILL.md)
- broader platform and incident operating model -> [ops-devops-platform](../ops-devops-platform/SKILL.md)

---

## Workflow

1. Identify the critical user journeys and the dependencies that can break them.
2. Define the contract per dependency:
   - timeout or deadline budget
   - retry ownership
   - breaker or outlier policy
   - concurrency and queue limits
   - degraded behavior if the dependency is unavailable
3. Decide where the policy lives:
   - app code
   - client library
   - mesh or gateway
4. Test in stages:
   - design review or checker output establishes policy coherence only
   - deterministic fault injection proves the response to a named controlled fault
   - staged chaos in non-production proves bounded behavior and recovery in that environment
   - narrow prod canary or game day proves only the observed target path and window, with guardrails
5. Define pass or fail signals:
   - burn rate
   - p95 or p99
   - fallback rate
   - breaker transitions
   - shed volume
   - recovery time
6. Record the injected fault, steady-state hypothesis, blast-radius limit, abort condition, observation window, recovery result, and dependencies simulated rather than observed.

---

## Selective verification and hazard analysis

- Use [formal methods](../foundations-formal-methods/SKILL.md) when the question is
  whether a recovery/failover protocol preserves an invariant under concurrent
  faults, or when a counterexample is needed. Return the property, initial
  states, transitions/environment assumptions, checked bound, result/trace, and
  model-to-code limits. A finite invariant check does not establish liveness or
  recovery time. Skip for routine timeout/retry configuration and named fault
  tests whose behavior is already directly observable.
- Use [safety engineering](../foundations-safety-engineering/SKILL.md) when
  retries, rollback, failover, operators, or other functioning controls can
  interact to cause a specified unacceptable loss, such as duplicate financial
  effects or destructive recovery. Return loss → hazard → unsafe control action
  and context → constraint → owner → verification evidence, including residual
  unknowns. Skip for ordinary availability or latency tuning without a harmful
  interaction question. Uptime and a hazard diagram do not prove safety.

Keep resilience policy, fault-injection execution, recovery evidence, and release
recommendations with this skill; use the foundation only for the named gap.

## Pattern Rules

- retries happen at one layer only
- deadlines come before retries
- hedging is only for idempotent or cancellation-safe reads
- overload handling must shed early instead of collapsing late
- overload tests pass on goodput plateauing past capacity, not on "503s appeared"; shed responses are retried only at the retry-owning layer, within budget, after `Retry-After`
- in regulated firms (EU DORA, UK FCA/PRA operational resilience), test each important business service against its impact tolerance, third parties included; counsel owns scoping — see [disaster-recovery-testing.md](references/disaster-recovery-testing.md#regulated-financial-firms-eu-dora-and-uk-operational-resilience)
- readiness and liveness must stay bounded and shallow
- resilience behaviors belong in targeted checks; do not let rate-limit or degraded-mode coverage leak into unrelated happy-path suites
- prod experiments require blast-radius limits, abort criteria, dashboards, and owners

## Failure Modes to Validate

- timeouts and deadline propagation
- retry storms and duplicate side effects
- partial dependency outages
- slow downstreams and long-tail latency
- queue buildup and connection-pool exhaustion
- one-bad-host behavior inside a pool
- degraded-mode responses and stale-data fallbacks
- rate-limit handling, `Retry-After`, and client backoff expectations
- visible state convergence after recovery or backend resets
- failover and failback behavior
- metastable failure: a self-sustaining feedback loop (retry amplification, cache-miss stampede, queue backlog, connection-pool churn) that does not self-resolve after the original trigger clears — see [references/cascading-failure-prevention.md](references/cascading-failure-prevention.md#metastable-failures--the-class-cascading-failure-fixes-do-not-cure)

---

## Testing Ladder

### Deterministic first

- inject latency, errors, timeouts, malformed payloads, and unavailable endpoints in controlled tests
- verify the intended control activates and the wrong controls do not

### Chaos second

- start in non-production
- use a small blast radius and a fixed time window
- stop immediately on error-budget or customer-impact breach

### DR and game days last

- validate RTO and RPO claims explicitly
- rehearse recovery ownership, not only technical failover

---

## Operational Guardrails

- every experiment needs a stated hypothesis and steady-state metric
- every run should capture timestamps, targets, blast radius, and dashboard links
- telemetry fields for retries, breaker transitions, hedging, shedding, and fallback are part of the resilience contract
- releases should be gated on reliability behavior, not only resource usage

## Anti-Patterns

- no timeouts
- retries at every hop
- fixed-interval or unbounded retries
- fixed per-call retry count with no system-wide retry budget (does not tighten as error rate rises)
- retries without idempotency
- hedging unsafe writes
- no bulkheads or queue bounds
- deep readiness or liveness checks
- silent degraded mode
- untested failover plans
- happy-path-only load testing

---

## Scripts

| Script | Purpose |
|--------|---------|
| [scripts/resilience_checker.py](scripts/resilience_checker.py) | Scores declared pattern coverage and reports gaps; rejects malformed claims |

Typical usage:

```bash
python scripts/resilience_checker.py assess --input data/sample-service-profile.json
python scripts/resilience_checker.py gaps --input data/sample-service-profile.json
python scripts/resilience_checker.py report --input data/sample-service-profile.json --output resilience-report.md
```

Supply actual JSON booleans and explicit hedging N/A rationale. The heuristic score describes declared coverage; it does not establish fault behavior or recovery. See [scripts/README.md](scripts/README.md) for the input format and scoring logic.

## ASCII Flow

```text
Resilience request
  -> Identify failure mode: slow, transient, sustained, overloaded, or degraded
  -> Set deadlines, retry budgets, isolation, and fallback ownership
  -> Add telemetry for saturation, errors, latency, and degraded behavior
  -> Validate with deterministic fault injection before chaos experiments
  -> Gate release on recovery evidence, SLO impact, and rollback path
  -> Document runbook actions and residual risk
```

## Navigation

### Foundation applied recipes

- [references/reliability-theory-applied.md](references/reliability-theory-applied.md)
- [references/distributed-systems-applied.md](references/distributed-systems-applied.md)

### Core references

- [references/circuit-breaker-patterns.md](references/circuit-breaker-patterns.md)
- [references/retry-patterns.md](references/retry-patterns.md)
- [references/timeout-policies.md](references/timeout-policies.md)
- [references/deadlines-hedging.md](references/deadlines-hedging.md)
- [references/bulkhead-isolation.md](references/bulkhead-isolation.md)
- [references/load-shedding-backpressure.md](references/load-shedding-backpressure.md)
- [references/gateway-mesh-resilience.md](references/gateway-mesh-resilience.md)
- [references/graceful-degradation.md](references/graceful-degradation.md)
- [references/health-check-patterns.md](references/health-check-patterns.md)
- [references/cascading-failure-prevention.md](references/cascading-failure-prevention.md)
- [references/disaster-recovery-testing.md](references/disaster-recovery-testing.md)

### Operational resources

- [references/resilience-checklists.md](references/resilience-checklists.md)
- [references/chaos-engineering-guide.md](references/chaos-engineering-guide.md)
- [references/chaos-tooling-recipes.md](references/chaos-tooling-recipes.md)
- [references/idempotency-key-design.md](references/idempotency-key-design.md)
- [references/resilience-telemetry.md](references/resilience-telemetry.md)
- [references/slo-as-code.md](references/slo-as-code.md)
- [references/ai-llm-resilience-failure-modes.md](references/ai-llm-resilience-failure-modes.md)
- [assets/runbooks/resilience-runbook-template.md](assets/runbooks/resilience-runbook-template.md)
- [assets/testing/fault-injection-playbook.md](assets/testing/fault-injection-playbook.md)
- [assets/testing/template-resilience-test-plan.md](assets/testing/template-resilience-test-plan.md)
- [data/sample-service-profile.json](data/sample-service-profile.json)

## Related Skills

- [ops-devops-platform](../ops-devops-platform/SKILL.md)
- [software-backend](../software-backend/SKILL.md)
- [software-architecture-design](../software-architecture-design/SKILL.md)
- [qa-observability](../qa-observability/SKILL.md)
- [qa-debugging](../qa-debugging/SKILL.md)
- [software-security-appsec](../software-security-appsec/SKILL.md)
- [data-sql-optimization](../data-sql-optimization/SKILL.md)
- [dev-api-design](../dev-api-design/SKILL.md)

## Learnings Loop

When prior decisions or pitfalls are relevant, consult `learnings.consolidated.md` if present; use `learnings.md` only for needed history or as the available fallback. Otherwise skip both.

After applying it, if you encountered a pattern worth remembering, a mistake worth preventing, or a domain fact that surprised you, append one dated bullet to `learnings.md` via `agents-skills-feedback-loop/scripts/append_learning.py`. Do not modify `SKILL.md` itself.

Files in this skill

  • SKILL.md9.6 KB
  • agents/openai.yaml335 B
  • assets/runbooks/resilience-runbook-template.md1.1 KB
  • assets/testing/fault-injection-playbook.md836 B
  • assets/testing/template-resilience-test-plan.md3.6 KB
  • data/sample-service-profile.json4.3 KB
  • data/sources.json17.4 KB
  • learnings.consolidated.md589 B
  • learnings.md584 B
  • references/ai-llm-resilience-failure-modes.md6.7 KB
  • references/bulkhead-isolation.md7.9 KB
  • references/cascading-failure-prevention.md27.6 KB
  • references/chaos-engineering-guide.md4 KB
  • references/chaos-tooling-recipes.md19.5 KB
  • references/circuit-breaker-patterns.md9.4 KB
  • references/deadlines-hedging.md8 KB
  • references/disaster-recovery-testing.md16.8 KB
  • references/distributed-systems-applied.md44.6 KB
  • references/gateway-mesh-resilience.md2.8 KB
  • references/graceful-degradation.md14 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.