{
  "schemaVersion": 2,
  "hardlineBlockedPatterns": [
    {
      "pattern": "\\brm\\s+(-[^\\s]*\\s+)*(\\/|\\/\\*|~|\\$HOME)(\\s|$)",
      "description": "recursive delete of root or home directory"
    },
    {
      "pattern": "\\bmkfs(\\.[a-z0-9]+)?\\b",
      "description": "format filesystem"
    },
    {
      "pattern": "\\bdd\\b[^\\n]*\\bof=/dev/(sd|nvme|hd|mmcblk|vd|xvd)[a-z0-9]*",
      "description": "raw block-device overwrite"
    },
    {
      "pattern": "(^|[;&|\\n])\\s*(sudo\\s+)?(shutdown|reboot|halt|poweroff)\\b",
      "description": "system shutdown or reboot"
    }
  ],
  "harnesses": [
    {
      "id": "memoire",
      "label": "Mémoire Native",
      "kind": "memoire",
      "provider": "memoire",
      "command": "memi",
      "description": "Run the current Mémoire design intelligence engine.",
      "visibility": "advanced",
      "enabledByDefault": false,
      "installProbe": ["memi", "memoire"],
      "capabilities": ["compose", "design-doc", "audit", "references", "video", "raw", "app-build", "self-design", "research", "simulate", "fix", "browser-audit", "handoff"],
      "commandTemplates": {
        "compose": ["compose", "{{prompt}}", "--json", "--no-figma"],
        "design-doc": ["design-doc", "{{prompt}}", "--json"],
        "audit": ["audit", "{{prompt}}", "--json"],
        "references": ["references", "search", "{{prompt}}", "--json"],
        "video": ["video", "create", "{{prompt}}", "--prompt", "{{prompt}}", "--json"],
        "app-build": ["compose", "{{prompt}}", "--json", "--no-figma"],
        "self-design": ["compose", "{{prompt}}", "--json", "--no-figma"],
        "research": ["compose", "{{prompt}}", "--json", "--no-figma"],
        "simulate": ["simulate", "plan", "--hypothesis", "{{prompt}}", "--json"],
        "fix": ["compose", "{{prompt}}", "--json", "--no-figma"],
        "browser-audit": ["compose", "{{prompt}}", "--json", "--no-figma"],
        "handoff": ["compose", "{{prompt}}", "--json", "--no-figma"],
        "raw": ["compose", "{{prompt}}", "--json", "--no-figma"]
      },
      "envPolicy": "provider",
      "workspacePolicy": "workspace-required",
      "supportsStreaming": true,
      "supportsCancel": true,
      "outputParser": "memoire-jsonl"
    },
    {
      "id": "claude-code",
      "label": "Claude Code",
      "kind": "external-cli",
      "provider": "anthropic",
      "command": "claude",
      "description": "Delegate to Claude Code when installed.",
      "visibility": "primary",
      "docsUrl": "https://code.claude.com/docs/en/cli-reference",
      "enabledByDefault": true,
      "installProbe": ["claude"],
      "setup": [
        {
          "id": "install-claude-code",
          "label": "Install Claude Code CLI",
          "command": "npm install -g @anthropic-ai/claude-code",
          "url": "https://code.claude.com/docs/en/cli-reference",
          "required": true
        },
        {
          "id": "claude-auth",
          "label": "Authenticate Claude Code",
          "command": "claude auth login",
          "url": "https://code.claude.com/docs/en/cli-reference",
          "required": true
        },
        {
          "id": "claude-plugins",
          "label": "Enable Claude Code plugins and skills",
          "command": "claude plugin list",
          "url": "https://code.claude.com/docs/en/plugins",
          "required": false
        }
      ],
      "authProbe": { "command": "claude", "args": ["auth", "status"] },
      "pluginDirs": ["~/.claude/plugins", ".claude/plugins"],
      "supportsSkills": true,
      "supportsMcp": true,
      "knownFailurePatterns": [
        {
          "pattern": "not authenticated|login required|auth",
          "message": "Claude Code needs login before Studio can delegate sessions.",
          "setupStepId": "claude-auth"
        },
        {
          "pattern": "permission|not allowed",
          "message": "Claude Code permission mode blocked the requested action.",
          "setupStepId": "claude-auth"
        }
      ],
      "capabilities": ["compose", "audit", "raw", "app-build", "self-design", "research", "simulate", "fix", "browser-audit", "handoff"],
      "commandTemplates": {
        "compose": ["-p", "--verbose", "--output-format", "stream-json", "--include-partial-messages", "--permission-mode", "default", "--append-system-prompt", "{{agentSystemPrompt}}", "{{promptEnvelope}}"],
        "audit": ["-p", "--verbose", "--output-format", "stream-json", "--include-partial-messages", "--permission-mode", "default", "--append-system-prompt", "{{agentSystemPrompt}}", "{{promptEnvelope}}"],
        "raw": ["-p", "--verbose", "--output-format", "stream-json", "--include-partial-messages", "--permission-mode", "default", "--append-system-prompt", "{{agentSystemPrompt}}", "{{promptEnvelope}}"]
      },
      "envPolicy": "provider",
      "workspacePolicy": "workspace-required",
      "supportsStreaming": true,
      "supportsCancel": true,
      "outputParser": "claude-stream-json"
    },
    {
      "id": "codex",
      "label": "Codex",
      "kind": "external-cli",
      "provider": "openai",
      "command": "codex",
      "description": "Run OpenAI Codex as the primary GPT-5.5 design-oriented repository agent.",
      "visibility": "primary",
      "docsUrl": "https://developers.openai.com/codex/cli",
      "enabledByDefault": true,
      "installProbe": ["codex"],
      "setup": [
        {
          "id": "install-codex-cli",
          "label": "Install Codex CLI",
          "command": "npm install -g @openai/codex",
          "url": "https://developers.openai.com/codex/cli",
          "required": true
        },
        {
          "id": "codex-sign-in",
          "label": "Sign in to Codex",
          "command": "codex login",
          "url": "https://developers.openai.com/codex/cli",
          "required": true
        },
        {
          "id": "codex-skills",
          "label": "Install or verify Codex skills",
          "command": "codex skills list",
          "url": "https://developers.openai.com/codex/use-cases",
          "required": false
        }
      ],
      "authProbe": { "command": "codex", "args": ["login", "status"] },
      "pluginDirs": ["~/.codex/plugins", ".codex/plugins"],
      "supportsSkills": true,
      "supportsMcp": true,
      "knownFailurePatterns": [
        {
          "pattern": "not logged in|login|unauthorized",
          "message": "Codex CLI needs sign-in before Studio can start delegated sessions.",
          "setupStepId": "codex-sign-in"
        },
        {
          "pattern": "sandbox|approval|read-only",
          "message": "Codex sandbox or approval policy blocked this workspace action.",
          "setupStepId": "install-codex-cli"
        }
      ],
      "capabilities": ["compose", "audit", "raw", "app-build", "self-design", "research", "simulate", "fix", "browser-audit", "handoff"],
      "commandTemplates": {
        "compose": ["exec", "--json", "--model", "gpt-5.5", "--sandbox", "workspace-write", "--skip-git-repo-check", "{{promptEnvelope}}"],
        "audit": ["exec", "--json", "--model", "gpt-5.5", "--sandbox", "workspace-write", "--skip-git-repo-check", "{{promptEnvelope}}"],
        "raw": ["exec", "--json", "--model", "gpt-5.5", "--sandbox", "workspace-write", "--skip-git-repo-check", "{{promptEnvelope}}"]
      },
      "envPolicy": "provider",
      "workspacePolicy": "workspace-required",
      "supportsStreaming": true,
      "supportsCancel": true,
      "outputParser": "codex-jsonl",
      "defaultModel": "GPT-5.5 Design"
    },
    {
      "id": "opencode",
      "label": "OpenCode",
      "kind": "external-cli",
      "provider": "openai",
      "command": "opencode",
      "description": "Delegate to OpenCode when installed.",
      "visibility": "advanced",
      "enabledByDefault": false,
      "installProbe": ["opencode"],
      "capabilities": ["compose", "audit", "raw", "app-build", "self-design", "research", "simulate", "fix", "browser-audit", "handoff"],
      "commandTemplates": {
        "compose": ["run", "--format", "json", "--dir", "{{cwd}}", "{{promptEnvelope}}"],
        "audit": ["run", "--format", "json", "--dir", "{{cwd}}", "{{promptEnvelope}}"],
        "raw": ["run", "--format", "json", "--dir", "{{cwd}}", "{{promptEnvelope}}"]
      },
      "envPolicy": "provider",
      "workspacePolicy": "workspace-required",
      "supportsStreaming": true,
      "supportsCancel": true,
      "outputParser": "opencode-jsonl"
    },
    {
      "id": "gemini",
      "label": "Gemini CLI",
      "kind": "external-cli",
      "provider": "google",
      "command": "gemini",
      "description": "Delegate to Gemini CLI when installed.",
      "visibility": "advanced",
      "enabledByDefault": false,
      "installProbe": ["gemini"],
      "capabilities": ["compose", "audit", "raw", "app-build", "self-design", "research", "simulate", "fix", "browser-audit", "handoff"],
      "commandTemplates": {
        "compose": ["-p", "{{promptEnvelope}}"],
        "audit": ["-p", "{{promptEnvelope}}"],
        "raw": ["-p", "{{promptEnvelope}}"]
      },
      "envPolicy": "provider",
      "workspacePolicy": "workspace-required",
      "supportsStreaming": true,
      "supportsCancel": true,
      "outputParser": "stdio"
    },
    {
      "id": "ollama",
      "label": "Ollama",
      "kind": "local-model",
      "provider": "local",
      "command": "ollama",
      "description": "Run a local Ollama model as an agent harness.",
      "visibility": "advanced",
      "enabledByDefault": false,
      "installProbe": ["ollama"],
      "capabilities": ["compose", "raw", "app-build", "self-design", "research", "simulate", "fix", "browser-audit", "handoff"],
      "commandTemplates": {
        "compose": ["run", "{{ollamaModel}}", "{{promptEnvelope}}"],
        "raw": ["run", "{{ollamaModel}}", "{{promptEnvelope}}"]
      },
      "envPolicy": "local-model",
      "workspacePolicy": "workspace-required",
      "supportsStreaming": true,
      "supportsCancel": true,
      "outputParser": "ollama",
      "defaultModel": "llama3.1:8b"
    },
    {
      "id": "hermes",
      "label": "Hermes",
      "kind": "external-cli",
      "provider": "local",
      "command": "hermes",
      "description": "Run Hermes Agent in one-shot mode with local workspace context.",
      "visibility": "advanced",
      "enabledByDefault": false,
      "installProbe": ["hermes"],
      "capabilities": ["compose", "audit", "raw", "app-build", "self-design", "research", "simulate", "fix", "browser-audit", "handoff"],
      "commandTemplates": {
        "compose": ["--toolsets", "terminal,file,memory,skills,todo,session_search,clarify", "--oneshot", "{{promptEnvelope}}"],
        "audit": ["--toolsets", "terminal,file,memory,skills,todo,session_search,clarify", "--oneshot", "{{promptEnvelope}}"],
        "raw": ["--toolsets", "terminal,file,memory,skills,todo,session_search,clarify", "--oneshot", "{{promptEnvelope}}"]
      },
      "envPolicy": "safe-inherit",
      "workspacePolicy": "workspace-required",
      "supportsStreaming": true,
      "supportsCancel": true,
      "outputParser": "hermes-text"
    },
    {
      "id": "shell",
      "label": "Shell",
      "kind": "shell",
      "provider": "shell",
      "command": "sh",
      "description": "Trusted shell execution, disabled by default.",
      "visibility": "advanced",
      "enabledByDefault": false,
      "installProbe": ["sh"],
      "capabilities": ["raw"],
      "commandTemplates": {
        "raw": ["-lc", "{{prompt}}"]
      },
      "envPolicy": "shell",
      "workspacePolicy": "trusted-shell",
      "supportsStreaming": true,
      "supportsCancel": true,
      "outputParser": "shell"
    }
  ]
}
