{
  "notes": "EPISODE 5 (2026-10-27). Items used before this episode: 27 of 30. This episode spawns 1 (recipe-vibe), so 28 are used and 2 stay in reserve for a judge send-back. EPISODE 6 IS THE LAST (maxEpisodes 6): it MUST set finish=true whatever lands, and write the deliverable from these notes and the results listed in read.\n\nWHAT LANDED THIS EPISODE (all 5 items accepted): rank-finalists/compare ranked (1) Mistral Vibe, (2) Qwen Code, (3) Hermes Agent, (4) Gemini CLI, (5) Pi; near misses Goose, Cline CLI, Kilo CLI, OpenCode, gptme. Its per-tool evidence is thinner than the profiles (provider/auth 'not checked' for several, Gemini v0.65.0 date not captured, OpenCode judged from v2 docs only), so the deliverable must take facts from profiles-round2/* and profile-pilot/* and use compare only for the ranking rationale and sensitivity list. integration-finalists/kilo (v7.8.18) and /gemini (0.65.0) are complete four-pillar recipes with per-tag source URLs and minimal policy examples. evidence-repair/hermes (v0.22.5) and /letta (npm 0.34.25, GitHub v0.34.24) are deep audits that correct the earlier profiles.\n\nMY RECONCILED RANKING (ep6 uses it unless recipe-vibe overturns it): 1 Mistral Vibe v3.0.3 (Apache-2.0, released 2026-10-26): -p/--prompt-file/stdin, --workdir, default accept-edits denies approvals headlessly, --auto-approve, hard limits --max-turns/--max-tokens/--max-price/--time-limit, exit codes 0/1/2/3/4, --output json|streaming, --output-dir export.json with usage (input/output/cached/total), cost_usd, steps, subagents[]; tool filters by name/glob/regex, per-tool always/ask/never, bash prefix allow/deny, path globs, outside_workdir=deny (3.0.3); parallel subagents (max_subagents, max_concurrent_subagents default 32); Mistral account browser sign-in uses the plan's quota; openai/openai-responses/anthropic/vertex-anthropic API styles plus local vLLM/llama.cpp/Ollama. Weak: no bundled OS sandbox (experimental --agent-socket needs a caller-supplied sandbox server and is incompatible with --workdir), root usage excludes children, no ChatGPT/Claude/Copilot login. 2 Gemini CLI 0.65.0 (Apache-2.0, 2026-10-20): the only candidate with bundled OS sandboxes (Seatbelt, Docker/Podman, gVisor), root-owned admin TOML policy, ask_user becomes deny headless, exit codes 0/1/41/42/44/52/53/54/55/130, JSON stats with per-model tokens and subagent role included; weak: Google models only, subscription login needs a prior browser login, tagged network default inconsistent (settings false vs legacy loader true), no cost. 3 Qwen Code v0.26.1 (Apache-2.0, 2026-10-24): -p, five approval modes, permissions allow/ask/deny, --sandbox bwrap workspace-write with network closed (reads stay broad), JSON usage per message plus token-usage JSONL, parallel Agent tool, broad OpenAI-compatible providers; weak: subscription only via plan API keys (Qwen OAuth free tier ended 2026-04-15), no cost field, no cwd flag. 4 Hermes Agent v0.22.5 (MIT, 2026-10-23): -z/--oneshot and chat --oneshot --in DIR, --usage-file ledger with estimated cost and auxiliary calls, Docker terminal backend with network off option, parallel delegate children, widest provider and OAuth list (Nous Portal, Codex ChatGPT, Anthropic Max plus extra usage, Copilot, xAI); weak: CLI dispatches to a gateway (exit 3 detach while work continues), root tokens exclude children, browser_exec/MCP/plugins stay outside Docker, docs vs source conflicts (max_turns default unlimited). 5 Pi v1.4.0 (MIT, 2026-10-21): -p and --mode json, --tools/--exclude-tools allowlist, usage and cost per message_end, most subscription OAuths (Claude Pro/Max, ChatGPT, Copilot, Kimi, xAI, Meta), subagent extension (8 tasks, 4 concurrent); weak: no permission system, example bash sandbox fails open, needs external container (OpenShell/Docker documented). Alternates with reasons: Kilo 7.8.18 (opt-in bwrap/Seatbelt tool sandbox with network deny, ordered permissions, step_finish usage; cli.md --auto claims conflict with run.ts; Windows unsupported) could replace Pi where an OS tool sandbox outweighs subscription breadth; Goose 1.56.0 strong on headless/providers but confinement unverified; Letta 0.34.25 strong on providers/parallel, weak on default confinement, GitHub and npm channels differ; Cline has no shell allow/deny; OpenCode 2 (npm 2.1.4, no --dir) docs thin; Aider no JSON result, slowing; gptme sandbox covers shell or Python only; Continue unmaintained; OpenHands main is Agent Canvas, not a finite CLI; mini-swe-agent bash-only, last release 2026-07-23; Kimi Code, forgecode, zcode below shortlist (see ep4 digest).\n\nDECISION THIS EPISODE: spawn 'recipe-vibe' (1 item, json, 32000 bytes): four-pillar integration specification for Mistral Vibe at tag v3.0.3, same shape as integration-finalists. Read for ep6: recipe-vibe/vibe plus all 27 earlier results (28 of 30). Wake when recipe-vibe settles or after 90 minutes. finish=false only because the winner's recipe is the last missing piece.\n\nEP6 INSTRUCTIONS: set finish=true, spawn nothing (or at most the 2 reserve items only if recipe-vibe was refused AND the plane allows a retry; do not wait on it). If recipe-vibe failed or was refused, still finish: build the winner's four pillars from profiles-round2/mistral-vibe (it already has invocation flags, export.json fields, permission config and subagent settings with URLs) and say the recipe is profile-derived, not a dedicated audit. Deliverable structure: (a) scope and method (public pages only, 2026-10-27 cutoff, nothing executed, stable tag named per tool); (b) per-candidate table for the 18 profiled families with the six answers each, every cell with its URL, 'not found' with pages checked; (c) not-profiled list with discovery citations (Crush FSL-1.1, Roo Code archived 2026-05-15, Kimi CLI legacy archived, Octofriend no headless, SWE-agent superseded, Plandex needs server, Trae no releases; proprietary Amp, Copilot CLI, Cursor CLI, Auggie, Factory Droid, iFlow); (d) ranked five with reasons and the sensitivity list from compare; (e) winner's worker additions: invoke, confine, meter, limit tools; (f) what is missing: no live validation, child usage inclusion unproven for every tool, OAuth entitlement untested, Gemini and Kilo network-default conflicts, OpenCode 2 unprofiled depth. Cite result names (batch/item) next to facts. Batch names used so far (never reuse): discover, profile-pilot, profile-wide (refused), profiles-round2, rank-finalists, integration-finalists, evidence-repair, recipe-vibe.",
  "spawn": [
    {
      "name": "recipe-vibe",
      "mode": "research",
      "brief": "Produce one source-backed integration specification for {{name}} as an unattended coding runtime: a prompt plus a working directory, a finite scripted run with nobody at the keyboard, and edited files left behind. Public-documentation research only: the official docs site, source at the tagged release, the GitHub releases API and the publisher registry. Entry points: {{sources}}. The provisional release is {{release}}; verify its tag and published_at date, cite that tag's source where possible, and say where the docs site disagrees with it. Do not assume it will rank first.\nGive all four pillars, each step citing the URL it rests on. (1) INVOKE: exact flags for prompt text and prompt file, --workdir, --output json or streaming, --output-dir, --auto-approve versus default accept-edits, --trust, --max-turns, --max-tokens, --max-price, --time-limit; the full exit-code table and which outcomes still write export.json; what first-time setup must precede unattended use (Mistral account browser sign-in versus MISTRAL_API_KEY versus a generic OpenAI-compatible provider block) and whether a stored login refreshes without a person. (2) CONFINE: what outside_workdir=deny, per-tool always/ask/never, bash prefix allow/deny lists and path globs actually check; what --agent-socket requires of the caller and what stays outside it (model calls, MCP, hooks, session storage); whether any bundled OS sandbox or network-off switch exists; what external container or firewall boundary a worker must add. (3) METER: the export.json schema (usage fields, cost_usd, steps, subagents[] entries), whether root usage includes children, how resumes are baselined, how cost is computed, whether --max-tokens and --max-price are hard caps; what to sum and what not to double-count. (4) LIMIT TOOLS: a minimal config for a read/edit/write-only worker (enabled_tools, disabled_tools, enable_subagents, enable_mcp, enable_connectors, enable_telemetry, enable_update_checks, admin precedence), the bash prefix allowlist syntax, and how to enable parallel subagents later (max_subagents, max_concurrent_subagents, agent_type=subagent profiles).\nResult: one JSON object with keys as_of, runtime_version (tag, published_at, license, registry version), invocation, confinement, metering, tool_policy, integration_gaps, verification_plan, sources (short id to URL). Every claim carries a source id and is labelled documented, source-inferred, conflicting or not found; adapter designs are labelled proposals, not tested behaviour. Quote at most one short sentence per claim. Never write 'not found' without listing the URLs checked.",
      "items": [
        {
          "key": "vibe",
          "vars": {
            "name": "Mistral Vibe",
            "sources": "https://github.com/mistralai/mistral-vibe ; https://docs.mistral.ai/vibe/code/cli/ ; https://raw.githubusercontent.com/mistralai/mistral-vibe/v3.0.3/README.md ; https://raw.githubusercontent.com/mistralai/mistral-vibe/v3.0.3/vibe/cli-rust/src/run_export/model.rs ; https://api.github.com/repos/mistralai/mistral-vibe/releases",
            "release": "v3.0.3 (published 2026-10-26)"
          }
        }
      ],
      "output": { "format": "json", "maxBytes": 32000 }
    }
  ],
  "read": [
    "recipe-vibe/vibe",
    "discover/angle-registries",
    "discover/angle-articles",
    "profile-pilot/aider",
    "profile-pilot/opencode",
    "profile-pilot/gemini-cli",
    "profile-pilot/openhands",
    "profiles-round2/goose",
    "profiles-round2/cline-cli",
    "profiles-round2/qwen-code",
    "profiles-round2/kilo-cli",
    "profiles-round2/kimi-code",
    "profiles-round2/mistral-vibe",
    "profiles-round2/continue-cli",
    "profiles-round2/pi",
    "profiles-round2/letta-code",
    "profiles-round2/forgecode",
    "profiles-round2/hermes-agent",
    "profiles-round2/gptme",
    "profiles-round2/zcode",
    "profiles-round2/mini-swe-agent",
    "profiles-round2/openhands-current",
    "profiles-round2/opencode-v2",
    "rank-finalists/compare",
    "integration-finalists/kilo",
    "integration-finalists/gemini",
    "evidence-repair/hermes",
    "evidence-repair/letta"
  ],
  "cancel": [],
  "wake": { "batches": ["recipe-vibe"], "afterMinutes": 90 },
  "finish": false
}
