diff --git a/pipeline/test_loop_engineering_meta_prompt.py b/pipeline/test_loop_engineering_meta_prompt.py index c7aa529..ef318ba 100644 --- a/pipeline/test_loop_engineering_meta_prompt.py +++ b/pipeline/test_loop_engineering_meta_prompt.py @@ -48,6 +48,13 @@ def test_loop_engineering_meta_prompt_locks_safety_fields(): "human approval before any action with business", "attestation that a human reviewed output", "YouTube `yvJYw2gR0cU`", + "Agent multiplexer note", + "Primary agent = orchestrator", + "Pane = isolation boundary", + "CLI + socket, not MCP", + "git-proxy:8099/deploy", + "WAFUMBLOjHo", + "herdr.dev", "External research anchors", "NVIDIA Secure Agent Workspace", "Infisical Agent Vault", diff --git a/plans/meta-prompts/loop_engineering.md b/plans/meta-prompts/loop_engineering.md index dcd0e3e..ad4882b 100644 --- a/plans/meta-prompts/loop_engineering.md +++ b/plans/meta-prompts/loop_engineering.md @@ -169,3 +169,23 @@ Use this when it fits: - `40-ship/` — signed deploy request, outcome, rollback notes. Reference: arXiv 2603.16021, "Interpretable Context Methodology: Folder Structure as Agentic Architecture". + +## Agent multiplexer note + +Terminal multiplexers built for AI coding agents (cmux, herdr) prove a thesis TAC should learn from: one primary agent can stand up, drive, and tear down a fleet of peer agents and terminals entirely through CLI + socket, with no MCP server required. The agent treats panes/tabs as the unit of parallelism and multiplexer state (working/idle/blocked) as the feedback signal. + +Use this pattern when it fits: + +- **Primary agent = orchestrator** — it opens workspaces, sends prompts to peers, observes output, and tears down. Peers are real terminals, not framework objects. +- **Pane = isolation boundary** — each peer runs in its own real terminal on its own cwd/branch; the multiplexer keeps sessions alive over SSH and across laptop sleep. +- **State awareness** — working/idle/blocked lets the orchestrator gate handoffs on real progress, not on timeouts. +- **CLI + socket, not MCP** — orchestration is driven by shell commands and a Unix socket; this keeps the surface small and scriptable. + +TAC invariants still hold when a multiplexer is the substrate: + +- panes that touch deploy still route through `git-proxy:8099/deploy` signed actions — the multiplexer is not a deploy bypass; +- peer agents are insider-threat candidates (see Insider-threat model note): least privilege, no raw secrets, sandboxed execution, human approval for business-impacting actions; +- every peer spawn/teardown and tool call stays receipted; +- the primary agent must not gain a raw-command deploy path just because it can drive shells. + +References: cmux fleet-driving prompts (`github.com/disler/learning-cmux-with-agents`), herdr agent multiplexer (`herdr.dev`), cmux + Claude Code + Pi demo (YouTube `WAFUMBLOjHo`).