agentsclimarketplace

Chaos test

Skill manastalukdar/ai-devstudio/skills/chaos-test

Professional development studio for Claude Code CLI

Install
npx -y skills add manastalukdar/ai-devstudio --skill chaos-test

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Analyze codebase for resilience gaps — missing retry logic, absent timeouts, circuit-breaker opportunities, single points of failure, and degradation-mode blind spots

SKILL.md

4.2 KB, as published. Nobody here has run it

Chaos Test — Resilience Gap Analysis

Scan the codebase for failure modes that would surface under real-world stress: network partitions, dependency outages, slow consumers, and burst traffic.

Usage

/chaos-test                  # full scan of staged changes and key integration points
/chaos-test <path>           # target a specific file or directory
/chaos-test --service <name> # focus on a named external service dependency

Behavior

Step 1 — Identify integration boundaries

# Find outbound HTTP calls, queue producers/consumers, DB calls, cache hits
grep -rn "fetch\|axios\|http\.\|requests\.\|redis\|pg\.\|mysql\|amqp\|kafka" \
  --include="*.ts" --include="*.py" --include="*.go" --include="*.js" \
  -l . | head -30

Step 2 — Check each boundary for resilience controls

For every integration point found, verify presence of:

ControlWhat to grep forRisk if absent
Timeouttimeout, AbortController, signalHangs under slow upstream
Retryretry, backoff, attemptSingle transient failure = hard failure
Circuit breakeropossum, cockatiel, breaker, circuitbreakerCascading failure under sustained outage
Fallback / degraded modefallback, default, catch returning a stubNo graceful degradation
Rate-limit handling429, RateLimitError, retry-afterThundering herd kills upstream
Bulkhead / concurrency capsemaphore, pLimit, asyncio.SemaphoreSingle slow dep starves thread pool

Step 3 — Score each boundary

For each integration point, assign a risk tier:

  • Critical — no timeout AND no retry AND no fallback
  • High — missing two of the three controls above
  • Medium — missing one control
  • Low — all controls present; note any configuration concerns (timeout too high, retry without jitter, etc.)

Step 4 — Report findings

Output a prioritized list:

CHAOS ANALYSIS — <path>

Critical (fix before next deploy)
  src/payments/stripe.ts:42   POST /charges — no timeout, no retry, no fallback
  src/auth/token.ts:88        Redis GET — no timeout; outage causes auth failure

High
  src/search/elastic.ts:17    ES query — no circuit breaker; slow queries block response

Medium
  src/email/sendgrid.ts:31    Retry present but no jitter (thundering herd risk)

Low
  src/cache/redis.ts:55       All controls present; timeout at 30s is high — consider 5s

Suggested experiment targets (fault to inject → expected behavior → gap if wrong):
  1. Kill Redis → auth should degrade to DB lookup → currently: hard 500
  2. Throttle Stripe to 2s → checkout should timeout at 1s → currently: no timeout set

Step 5 — Suggest quick wins

For each Critical/High finding, propose the minimal fix:

stripe.ts:42 — Add AbortSignal timeout (5s) and exponential-backoff retry (3 attempts, 100ms base, jitter):
  const res = await fetch(url, { signal: AbortSignal.timeout(5000) })

Edge Cases

  • No external dependencies: Report "No integration boundaries detected" and exit.
  • Monorepo: Scan from $ARGUMENTS path; skip test files unless --include-tests passed.
  • gRPC / GraphQL: Detect grpc, graphql-request, and apollo-client as integration points.
  • Already uses resilience library: Note which library is in use and check it is configured, not just imported.

Token Optimization

Expected range: 600–2,000 tokens (grep-driven discovery); 100–300 tokens (no integrations found, early exit)

Patterns used: Grep-before-Read (scan for integration points before reading any file), git diff scope (staged changes first), progressive disclosure (summary → details on request)

Early exit: If git diff --staged --name-only returns no files and no $ARGUMENTS path is given, report "No staged changes to analyze" and exit.

Caching: Caches file list from boundary scan in .claude/cache/chaos-test/boundaries.json (invalidated when package.json, go.mod, or requirements.txt changes).

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.