CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/chaos-drill-protocol

Use when a chaos experiment is already designed and a fault is about to be injected into a running system. Sets the go/no-go gates (non-production, healthy baseline, live monitoring, tested rollback), blast-radius bound, abort criteria, inject and abort commands and the recovery check.

Quality

91%

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

anti-patterns.mdreferences/

Anti-patterns

Failure modes for chaos-drill-protocol. Each row restates a gate or stage rule as the mistake that violates it, with the corrective action.

Anti-patternWhy it failsInstead
Blast radius set to 100% of replicasThere is no surviving capacity and therefore no control group left, and the method depends on comparing "steady state between the control group and the experimental group" (principlesofchaos.org). This is not an experiment with a wide bound. It is a deliberate outageStart at one replica, the same bound Chaos Monkey ships for production (netflix.github.io/chaosmonkey/Termination-behavior), and widen only after clean runs
Deciding the abort threshold while watching the graphThe moment of maximum pressure is the moment of worst judgment, and a threshold that moves during the run makes the hypothesis undisprovableFix signal, threshold, and dwell time in the contract before injection. Nobody loosens mid-run; anybody may abort
Treating a documented rollback as a verified oneA rollback path that has never been executed is an untested code path, which is exactly how a controlled test became an outage (sre.google/sre-book/emergency-response)Run the rollback clean against the real target before injecting, and record its duration
Skipping a gate to fit a maintenance windowThe gates are the difference between a drill and an incident. The window is notReschedule. A failed gate is a finding, and fixing it is cheaper than the incident it predicts
Injecting onto a degraded baselineAny difference observed cannot be attributed to the fault, so the drill carries full risk for an uninterpretable resultRestore health, take a fresh baseline, then run
Running with stale or missing telemetryAbort criteria cannot fire on evidence that is not arriving. The drill has no stopping ruleConfirm fresh samples for every abort signal at Gate 3, and stop if they are missing
Aborting silently, or discarding an aborted runThe abort is where the system revealed its bound, which is the most informative thing the drill producedRecord the criterion, timestamp, and all signal values at the abort, then still run recovery validation
Starting the next drill before recovery validatesThe second run begins from an unknown baseline, which fails Gate 2 and voids the surviving-capacity reasoning behind its boundValidate recovery to RECOVERED first
Widening the bound after a run that breached itConfuses "we survived" with "we have headroom". The breach is evidence the current bound is already at the edgeHold the bound, fix what the breach exposed, re-run the same contract

SKILL.md

tile.json