OpenParable
Skip to content
← Back to skills

Chaos Runner

DevOps & Security
chaos-runner

Chaos Runner is an Agent Skill for devops & security published in the a5c-ai/babysitter repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Run chaos engineering experiments using Chaos Monkey, Litmus, or Gremlin

View on GitHub ↗
QUICK START

How to use this skill

Bring this guide into your coding agent with a prompt tailored to the tool you use.

  1. Open your project in Codex.
  2. Copy and paste the prompt below.
  3. Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/a5c-ai/babysitter/blob/HEAD/library/specializations/software-architecture/skills/chaos-runner/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/chaos-runner, but wait for my approval before writing files or running scripts.

Copying this prompt does not install or run the skill. Review third-party files before use.

Chaos Engineering Runner Skill

Overview

Runs chaos engineering experiments using Chaos Monkey, Litmus, or Gremlin including failure injection scenarios, blast radius control, and experiment analysis.

Capabilities

  • Run Chaos Monkey experiments
  • Litmus chaos execution
  • Gremlin integration
  • Failure injection scenarios
  • Blast radius control
  • Steady state validation
  • Experiment rollback
  • Results analysis

Target Processes

  • resilience-patterns

Input Schema

{
  "type": "object",
  "required": ["experiment"],
  "properties": {
    "experiment": {
      "type": "object",
      "properties": {
        "name": { "type": "string" },
        "type": {
          "type": "string",
          "enum": ["pod-kill", "network-latency", "cpu-stress", "memory-stress", "disk-fill", "node-drain"]
        },
        "target": {
          "type": "object",
          "properties": {
            "namespace": { "type": "string" },
            "labelSelector": { "type": "object" },
            "percentage": { "type": "number" }
          }
        },
        "duration": { "type": "string" }
      }
    },
    "framework": {
      "type": "string",
      "enum": ["litmus", "gremlin", "chaos-monkey", "toxiproxy"],
      "default": "litmus"
    },
    "steadyState": {
      "type": "object",
      "properties": {
        "probes": { "type": "array" },
        "assertions": { "type": "array" }
      }
    },
    "options": {
      "type": "object",
      "properties": {
        "dryRun": {
          "type": "boolean",
          "default": true
        },
        "autoRollback": {
          "type": "boolean",
          "default": true
        },
        "notifyOnFailure": {
          "type": "boolean",
          "default": true
        }
      }
    }
  }
}

Output Schema

{
  "type": "object",
  "properties": {
    "experimentId": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": ["passed", "failed", "aborted"]
    },
    "steadyStateValidation": {
      "type": "object",
      "properties": {
        "before": { "type": "boolean" },
        "during": { "type": "boolean" },
        "after": { "type": "boolean" }
      }
    },
    "metrics": {
      "type": "object",
      "properties": {
        "affectedPods": { "type": "number" },
        "recoveryTime": { "type": "string" },
        "errorRate": { "type": "number" }
      }
    },
    "findings": {
      "type": "array"
    },
    "recommendations": {
      "type": "array"
    }
  }
}

Usage Example

{
  kind: 'skill',
  skill: {
    name: 'chaos-runner',
    context: {
      experiment: {
        name: 'pod-failure-test',
        type: 'pod-kill',
        target: {
          namespace: 'production',
          labelSelector: { app: 'api-service' },
          percentage: 50
        },
        duration: '5m'
      },
      framework: 'litmus',
      steadyState: {
        probes: [{ type: 'http', endpoint: '/health' }],
        assertions: [{ metric: 'error_rate', operator: '<', value: 0.01 }]
      },
      options: {
        dryRun: false,
        autoRollback: true
      }
    }
  }
}