CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/toxiproxy-chaos

Use when tests or dev environments need TCP-level network faults without Kubernetes or paid tools. Runs Toxiproxy between client and upstream and applies latency, bandwidth, slow close, timeout, slicer, data limit and reset toxics through its control API.

Quality

83%

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

Quality

Content

68%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a well-structured, mostly executable runbook: concrete CLI/API/SDK/compose examples organized in a clear numbered sequence, with useful anti-pattern and limitation tables. Its main weakness is the absence of validation checkpoints — no step confirms the proxy or toxic is in effect, and cleanup is advisory rather than a verified workflow step — plus a few minor command/comment mismatches.

Suggestions

Add validation checkpoints to the workflow: after Step 2 confirm the proxy exists (e.g., `toxiproxy-cli list` as an explicit check, not a side note), after Step 4 verify the toxic registered, and add an explicit cleanup step that verifies all toxics were removed after the test.

Fix the Step 1 install block — the 'Or natively (Linux)' heading is followed by a macOS brew command — and correct the 'Remove all toxics on this proxy' comment, which sits on a command that removes a single named toxic.

Trim the Overview's quoted tagline and consider moving the full toxic catalog and language SDK samples into a references/ file so SKILL.md stays a lean overview with one-level-deep pointers.

DimensionReasoningScore

Conciseness

Largely efficient: every step is a compact command block or table with little padding ("toxiproxy-cli toxic add -t latency -a latency=500 orders-db"). Not 5: the Overview quotes Toxiproxy's tagline and restates README context Claude can fetch from the linked repo, and the 8-row toxic catalog plus two-language SDK samples are reference material inlined in the main file.

4 / 5

Actionability

Mostly copy-paste ready: docker pull/run, a curl proxy-create call, toxiproxy-cli add/remove commands, Python and Node SDK snippets, and a docker-compose.yml. Not 5: minor gaps and inaccuracies — Step 1's "Or natively (Linux):" heading is followed by "brew install toxiproxy # macOS" (garbled), and the comment "Remove all toxics on this proxy" sits on a command that removes a single named toxic.

4 / 5

Workflow Clarity

Steps 1–8 are clearly sequenced (install → define proxy → catalog → add toxics → directions → SDKs → compose → use cases), but no validation checkpoints exist: nothing verifies the proxy was created or the toxic took effect before proceeding. Since toxics like `down`/`reset_peer` disrupt live connections (the examples front a database on 5432) and cleanup appears only as an anti-pattern note rather than a verified step, the destructive-operation cap applies.

3 / 5

Progressive Disclosure

Good structure: well-labeled sections (When to use, numbered steps, Anti-patterns, Limitations, References) with the one external reference ([tp] GitHub README) clearly signaled and only one level deep; no bundle files exist to organize. Not 5: at ~190 lines the toxic catalog, SDK samples, and use-case/anti-pattern tables could be split into reference files to keep SKILL.md a leaner overview.

4 / 5

Total

15

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: concrete, third-person, with an explicit 'Use when' clause naming both the trigger conditions (tests/dev environments, TCP-level network faults, no K8s/paid tools) and the full set of actions (running the proxy and applying eight named toxics via the control API). The only gap is a few natural synonyms (chaos testing, throttling, slow/flaky network) that would widen trigger matching.

DimensionReasoningScore

Specificity

Concrete actions are explicit and comprehensive: "Runs Toxiproxy between client and upstream and applies latency, bandwidth, slow close, timeout, slicer, data limit and reset toxics through its control API" names the mechanism and all eight fault types. Not 4: no meaningful coverage gap — the action list matches the tool's full toxic catalog.

5 / 5

Completeness

Explicitly answers both: when — "Use when tests or dev environments need TCP-level network faults without Kubernetes or paid tools" (with concrete trigger conditions), and what — "Runs Toxiproxy between client and upstream and applies [toxics] through its control API". Third-person voice is used throughout. Matches the anchor-5 example structure.

5 / 5

Trigger Term Quality

Good natural keywords: "tests or dev environments need TCP-level network faults", "without Kubernetes or paid tools", plus toxic names users would recognize. Not 5: common synonyms like "chaos testing", "network throttling", "resilience", or "slow/flaky network" are absent; not 3: coverage clearly exceeds the "some relevant keywords" anchor.

4 / 5

Distinctiveness Conflict Risk

Clear niche with distinct triggers: TCP-level fault injection explicitly bounded "without Kubernetes or paid tools", naming Toxiproxy as the implementation. The Kubernetes exclusion distinguishes it from pod/node chaos skills, so overlap risk is minimal.

5 / 5

Total

19

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

15

/

16

Passed

Reviewed

On this page