From 95ddbf7e1b5a926f7daf7fe0c2b8b50d7d38041b Mon Sep 17 00:00:00 2001 From: artale Date: Tue, 7 Jul 2026 00:40:36 +0200 Subject: [PATCH] docs: map cmux + herdr + disler multi-agent orchestration as advisory 3 repos reviewed: - disler/learning-cmux-with-agents: 31 NL prompts for agent fleet lifecycle - ogulcancelik/herdr: AGPL agent multiplexer, single binary, external state - cmux.com: macOS terminal for AI agents, browser control, skills 12 pattern mappings to fable-agent components. Validates: execution-pipeline fleet orchestration, FlatLedger external state, worktree-isolation agent isolation, repo-mapper environment mapping. Advisory only. No vendoring. --- docs/receipts/README.md | 1 + ...t-orchestration-advisory-map-20260705.json | 124 ++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 docs/receipts/cmux-herdr-multi-agent-orchestration-advisory-map-20260705.json diff --git a/docs/receipts/README.md b/docs/receipts/README.md index d854917..5d58b83 100644 --- a/docs/receipts/README.md +++ b/docs/receipts/README.md @@ -40,6 +40,7 @@ Current authority order: **live receipt > committed receipt > memory**. - **pxpipe** (2364 ★, MIT): token compression for pipeline context. Relevant but lossy on byte-exact content. Advisory. - **GRC_Claw** (2 ★, MIT): Agent Policy Firewall + attestation ledger. Same governance problem. Advisory. - `browser-harness-engineering-advisory-map-20260705.json` — maps Browser Use (79k ★), browser-harness (self-healing CDP), and agent-shopping-safe-checkout (3-layer safety) as advisory-only. Validates fable-agent's harness architecture: verify-gate, interrupt-gate, flat-ledger, worktree-isolation. 8 pattern mappings. No vendoring. +- `cmux-herdr-multi-agent-orchestration-advisory-map-20260705.json` — maps cmux (macOS agent terminal), herdr (AGPL agent multiplexer), and disler/learning-cmux-with-agents (31 NL fleet prompts) as advisory-only. 12 pattern mappings. Validates: execution-pipeline orchestrates fleet lifecycle, FlatLedger = external state, worktree-isolation = agent isolation. No vendoring. ## Memory quarantine diff --git a/docs/receipts/cmux-herdr-multi-agent-orchestration-advisory-map-20260705.json b/docs/receipts/cmux-herdr-multi-agent-orchestration-advisory-map-20260705.json new file mode 100644 index 0000000..924ab46 --- /dev/null +++ b/docs/receipts/cmux-herdr-multi-agent-orchestration-advisory-map-20260705.json @@ -0,0 +1,124 @@ +{ + "schema": "fable.external_project.review.v1", + "id": "cmux-herdr-multi-agent-orchestration-advisory-map-20260705", + "title": "cmux + herdr + Multi-Agent Orchestration Patterns \u2014 Advisory Map", + "source": { + "type": "video + repos + Discord", + "video": "IndyDevDan: SEE CMUX SOLVE Multi-Agent Orchestration (Claude Code and Pi Agent) \u2014 https://youtu.be/WAFUMBLOjHo", + "repos": [ + "https://github.com/disler/learning-cmux-with-agents", + "https://herdr.dev/", + "https://github.com/ogulcancelik/herdr" + ], + "discord": "Watchmedropship and Artale shared cmux/herdr links", + "fetchedAt": "2026-07-06T22:40:18.310273+00:00" + }, + "externalProjectReviews": [ + { + "repo": "disler/learning-cmux-with-agents", + "stars": null, + "license": "unknown", + "description": "31 natural-language prompts proving one primary agent can stand up, drive, and tear down a whole fleet of AI coding agents inside cmux.", + "keyPattern": "Primary agent orchestrates fleet lifecycle: spawn \u2192 drive \u2192 tear down. Natural language prompts, not code. One agent manages many.", + "relevance": "Validates fable-agent execution-pipeline.ts pattern: one pipeline orchestrates worktree creation, agent task, verify-gate, interrupt-gate, ledger recording. The pipeline IS the primary agent. cmux does for terminals what fable-agent does for code tasks.", + "decision": "advisory", + "safeToVendor": false, + "vendorReason": "cmux-specific prompts. Learn the orchestration pattern, not the prompts.", + "patternMappings": [ + { + "cmux": "Primary agent spawns sub-agents in split panes", + "fable_agent": "execution-pipeline.ts spawns agent task in isolated worktree" + }, + { + "cmux": "31 NL prompts prove fleet lifecycle", + "fable_agent": "runPipeline() spec: create \u2192 map \u2192 agent \u2192 verify \u2192 interrupt \u2192 ledger" + }, + { + "cmux": "Stand up, drive, tear down", + "fable_agent": "worktree-isolation.ts creates disposable worktree, verifyAndClean() tears it down on failure" + }, + { + "cmux": "Agent drives terminals via cmux CLI", + "fable_agent": "runDeepSeekAgent() drives Ollama model via HTTP /api/chat" + } + ] + }, + { + "repo": "ogulcancelik/herdr (herdr.dev)", + "stars": null, + "license": "AGPL-3.0", + "description": "Agent multiplexer \u2014 one terminal for the whole herd. Single binary, fully local, runs coding agents in parallel. Keeps agents alive when laptop closes. Reattach from phone.", + "keyPattern": "Terminal multiplexer for AI agents. Each agent runs in own real terminal on a server. See blocked/working/done at a glance. Binary not app. SSH-friendly.", + "relevance": "Validates fable-agent flat-ledger.ts pattern: state lives OUTSIDE agent context. herdr shows agent status externally (blocked/working/done). flat-ledger.ts does the same \u2014 JSONL state file outside LLM context. Also validates worktree-isolation: herdr isolates agents in separate terminals, fable-agent isolates in separate git worktrees.", + "decision": "advisory", + "safeToVendor": false, + "vendorReason": "AGPL-3.0 license. Terminal multiplexer, different domain. Learn the status-tracking and isolation patterns.", + "patternMappings": [ + { + "herdr": "See blocked/working/done at a glance", + "fable_agent": "FlatLedger.summary() + lastStep() \u2014 pipeline state visible without reading LLM context" + }, + { + "herdr": "Keeps agents alive when laptop closes", + "fable_agent": "Ledger persists across sessions \u2014 state survives process restart" + }, + { + "herdr": "Each agent in own real terminal", + "fable_agent": "Each agent task in own git worktree \u2014 isolated, disposable" + }, + { + "herdr": "Single binary, fully local", + "fable_agent": "No external dependencies \u2014 stdlib fetch, built-in crypto, no framework" + }, + { + "herdr": "Reattach from phone", + "fable_agent": "Ledger is JSONL \u2014 read from anywhere, anytime" + } + ] + }, + { + "repo": "cmux (cmux.com)", + "stars": null, + "license": "proprietary", + "description": "Terminal built for AI coding agents. macOS native, Ghostty GPU rendering, vertical tabs, embedded browser, subagent spawning, CLI automation. Skills system.", + "keyPattern": "Terminal-as-platform for agents. Agent controls browser, spawns subagents in split panes, sends notifications. Skills = reusable workflows.", + "relevance": "Validates fable-agent repo-mapper.ts pattern: agent needs environment awareness to function. cmux gives agents terminal+browser+filesystem control. repo-mapper.ts gives agents repo tree awareness. Both solve the same problem: agent must understand its environment to act reliably.", + "decision": "advisory", + "safeToVendor": false, + "vendorReason": "Proprietary macOS app. Learn the environment-mapping pattern.", + "patternMappings": [ + { + "cmux": "Skills = reusable workflows for agents", + "fable_agent": "repo-mapper.ts builds reusable repo tree for system prompt injection" + }, + { + "cmux": "Agent controls browser surface", + "fable_agent": "Agent controls code surface via worktree + verify-gate" + }, + { + "cmux": "Subagent spawning in split panes", + "fable_agent": "Parallel worktrees via WorktreeManager.create()" + } + ] + } + ], + "keyTakeaways": [ + "Multi-agent orchestration is converging on the same pattern: one primary controller spawns, drives, and tears down workers. fable-agent execution-pipeline.ts already does this.", + "State must live outside agent context. herdr shows blocked/working/done externally; fable-agent FlatLedger records to JSONL. Same insight, different implementation.", + "Agent isolation is non-negotiable. cmux uses split panes, herdr uses separate terminals, fable-agent uses git worktrees. All solve the same blast-radius problem.", + "Natural language prompts can drive fleet lifecycle (disler 31 prompts). fable-agent pipeline spec accepts natural language task descriptions.", + "All three tools are advisory only. No vendoring warranted. Pattern validation is the value.", + "IndyDevDan video is advisory. David Ondrej cmux video is advisory. Discord links are advisory." + ], + "contentVerified": true, + "liveVerification": "GitHub API + web search confirmed all repos/sites exist. cmux is macOS terminal by Lawrence Chen. herdr is AGPL single binary by ogulcancelik. disler repo has 31 NL prompts for cmux agent fleet.", + "advisoryOnly": true, + "noActionRequired": true, + "fableAgentStatus": { + "containers": 19, + "phase": 4, + "autoPatchProven": false, + "tests": "295 passing, 69 files", + "commit": "e84f21e" + } +} \ No newline at end of file