<!doctype html>
<html lang="en" data-world="undertow" data-theme="dark">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
    <title>Skill: immune-system · SoulStack docs</title>
    <meta name="description" content="Build and run an immune system that proves a product works through its real front doors (CLI, terminal UI, desktop app, web, API) on every platform it ships to, finds what is missing as well as what is broken, and turns every confirmed bug into a permanent check. At scale it runs a bug machine, hundreds of agents that hunt, reproduce, review, fix and guard bugs through a state machine of plain files. Use when a project needs testing beyond unit tests, before a release, after a burst of agent-written code, when a bug keeps coming back, or when the user asks for specialized immune cells or a bug hunt." />
    <meta property="og:type" content="website" />
    <meta property="og:site_name" content="SoulStack" />
    <meta property="og:title" content="Skill: immune-system · SoulStack docs" />
    <meta property="og:description" content="Build and run an immune system that proves a product works through its real front doors (CLI, terminal UI, desktop app, web, API) on every platform it ships to, finds what is missing as well as what is broken, and turns every confirmed bug into a permanent check. At scale it runs a bug machine, hundreds of agents that hunt, reproduce, review, fix and guard bugs through a state machine of plain files. Use when a project needs testing beyond unit tests, before a release, after a burst of agent-written code, when a bug keeps coming back, or when the user asks for specialized immune cells or a bug hunt." />
    <meta property="og:url" content="https://soulstack.proxysoul.com/docs/skills/immune-system" />
    <meta property="og:image" content="https://soulstack.proxysoul.com/og/docs.png" />
    <meta property="og:image:width" content="1200" />
    <meta property="og:image:height" content="630" />
    <meta name="twitter:card" content="summary_large_image" />
    <meta name="twitter:image" content="https://soulstack.proxysoul.com/og/docs.png" />
    <link rel="icon" href="/brand/logo-undertow.webp" />
    <link rel="alternate" type="text/markdown" href="/index.md" title="This page as Markdown" />
    <link rel="help" href="/llms.txt" title="Docs for agents" />
    <link rel="preload" href="/fonts/recursive-living.woff2" as="font" type="font/woff2" crossorigin />
    <script>
      (() => {
        const q = new URLSearchParams(location.search);
        const worlds = ["empryo", "soul", "coffee", "water", "crimson", "undertow"];
        let saved = null;
        try {
          saved = JSON.parse(localStorage.getItem("soulstack-world") || "null");
        } catch (err) {
          console.warn("soulstack: ignoring saved world", err);
        }
        const world = q.get("world") || saved?.world || worlds[Math.floor(Math.random() * worlds.length)];
        const mode = q.get("mode") || saved?.mode || (matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark");
        const r = document.documentElement;
        r.dataset.world = worlds.includes(world) ? world : "undertow";
        r.dataset.theme = mode === "light" ? "light" : "dark";
        r.dataset.motion = q.get("motion") === "still" || matchMedia("(prefers-reduced-motion: reduce)").matches ? "still" : "live";
        const icon = document.querySelector("link[rel=icon]");
        if (icon) icon.href = "/brand/" + ({ empryo: "logo-mark", soul: "logo-proxysoul" }[r.dataset.world] || "logo-" + r.dataset.world) + ".webp";
      })();
    </script>
    <script type="module" crossorigin src="/assets/index-Br3ApnuQ.js"></script>
    <link rel="stylesheet" crossorigin href="/assets/index-HTfMgXpx.css">
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>
