<!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. Use when a project needs testing beyond unit tests, before a release, when a bug keeps coming back, or when the user asks for specialized immune cells." />
    <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. Use when a project needs testing beyond unit tests, before a release, when a bug keeps coming back, or when the user asks for specialized immune cells." />
    <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-jooLEQoa.js"></script>
    <link rel="stylesheet" crossorigin href="/assets/index-DgXdzYtk.css">
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>
