Using Buggify

Inserts controlled, repeatable faults into Host and network simulations to test reliability edge cases and failure recovery, using a standardized XML interface and customizable parameters for seamless integration with existing CI/CD pipelines and automated workflows.

47|3|Updated May 29, 2024
One-click install
npx skills add https://github.com/PierreZ/moonpool --skill using-buggify
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Using Buggify
Source: https://github.com/PierreZ/moonpool/tree/main/.claude/skills/using-buggify
Command: npx skills add https://github.com/PierreZ/moonpool --skill using-buggify

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill provides a disciplined approach to injecting deterministic chaos into simulation workloads to exercise rarely triggered error paths and race conditions that are difficult to reproduce in production testing.

Core Features & Use Cases

  • Deterministic fault injection: Uses a seed-based strategy to activate chaos at specific call sites, enabling reproducible bug scenarios.
  • Strategic placement guidance: Offers patterns for injecting chaos at external I/O, timeouts, state transitions, and resource boundaries with coverage checks.
  • Observability & safety: Includes coverage assertions (sometimes_assert) to verify buggify triggers and preserve safety during simulations.
  • Cross-provider reproducibility: Supports deterministic behavior across different simulation providers via a stable seed and deterministic randomness.

Quick Start

Identify a suitable chaos site, wrap it with a buggify check, and run the simulation with a fixed seed to reproduce and study the resulting bug path. Then adjust probabilities and placement guided by the provided TROUBLESHOOTING and PLACEMENT-GUIDE materials.

Frequently Asked Questions about Using Buggify

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How does deterministic fault injection help expose race conditions in simulation workloads?

Deterministic fault injection uses a stable seed to activate chaos at specific call sites, ensuring race conditions and rare timing bugs are reproducible across simulation runs. This allows you to consistently trigger, study, and fix hidden failure paths.

What is the best way to apply chaos testing to external calls and state transitions?

The best way to apply chaos testing to external calls and state transitions is to wrap them with buggify! or buggify_with_prob! macros, using strategic placement guidance to inject failures at resource boundaries and timeouts.

How do I track coverage when injecting faults into a simulation workload?

You track coverage when injecting faults by using sometimes_assert macros to verify that buggify triggers activate during the simulation. This provides observability and preserves safety while exercising rare error paths.

Can I reproduce a chaos testing scenario across different simulation providers?

Yes, you can reproduce a chaos testing scenario across different simulation providers by using a fixed deterministic seed. This stable seed ensures deterministic randomness and consistent buggify behavior regardless of the underlying provider.

Do I need a deterministic seed to reproduce bugs found during chaos testing?

Yes, you need a deterministic seed to reproduce bugs found during chaos testing. The seed-based strategy activates chaos at specific call sites, which is required to maintain reproducibility and consistently study the resulting bug path.

Why are my buggify fault injections not triggering during the simulation workload?

Your buggify fault injections may not be triggering because the probability is too low or the placement is incorrect. Adjust probabilities using buggify_with_prob! and consult the provided TROUBLESHOOTING and PLACEMENT-GUIDE materials to correct the chaos site.