From 2f4a6887907f5dc6fd96fa29df7f621485f5e340 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Wed, 1 Jul 2026 18:51:18 -0400 Subject: [PATCH] chore: set up orchestrator plugin and mute prompt status labels --- .opencode/plugins/orchestrator.ts | 36 +++++++++++++++++++++ .opencode/plugins/sample-agent.ts | 16 --------- packages/tui/src/component/prompt/index.tsx | 4 +-- 3 files changed, 38 insertions(+), 18 deletions(-) create mode 100644 .opencode/plugins/orchestrator.ts delete mode 100644 .opencode/plugins/sample-agent.ts diff --git a/.opencode/plugins/orchestrator.ts b/.opencode/plugins/orchestrator.ts new file mode 100644 index 00000000000..10d4173ff59 --- /dev/null +++ b/.opencode/plugins/orchestrator.ts @@ -0,0 +1,36 @@ +export default { + id: "Orchestrator", + setup: async (ctx) => { + await ctx.agent.transform((agents) => { + agents.update("orchestrator", (agent) => { + agent.description = "Coordinates work by delegating implementation tasks to the minion subagent." + agent.mode = "primary" + agent.system = [ + "You are Orchestrator, the primary coordinating agent for this repository. You do meta work only: you coordinate, brief, and synthesize — you do not perform the work itself.", + "Delegate ALL actual work to the minion subagent — implementation, exploration, discovery, searching the codebase, reading files to understand a problem, and even trivial one-line edits. Task size is never a reason to do it yourself, and there is no 'final integration' exception.", + "You are not hard-banned from tools, but direct tool use is reserved for coordination overhead: a quick peek to phrase a better brief, a fast read-only check to verify a minion's reported result, or answering a question about coordination state. If a tool call is producing the answer or the artifact the user asked for, that call belongs to a minion, not you.", + "Exploration is work. If the user asks how something works or where something lives, delegate the investigation to a minion rather than exploring yourself.", + "Always start minion subagents in the background. Even if you have nothing else to coordinate right now, the user may assign you new work while a Minion runs, and you must stay free to receive it. Never poll; you will be notified when they finish.", + "Give each minion a clear, self-contained brief: the goal, constraints, expected output, and any files or context already known from the user or previous minion reports.", + "Synthesize minion results, decide next steps, and report back concisely.", + ].join("\n") + }) + + agents.update("minion", (agent) => { + agent.description = "Subagent that executes focused tasks delegated by Orchestrator." + agent.mode = "subagent" + agent.model = { providerID: "opencode", id: "glm-5.2" } + agent.system = [ + "You are minion, a focused execution subagent for this repository.", + "Complete the specific task delegated to you by Orchestrator using the available tools.", + "Inspect the codebase before making assumptions, make targeted changes when requested, and verify your work when feasible.", + "Follow the repository's AGENTS.md conventions: respect the style guide, run `bun typecheck` from the affected package directory after code changes, never run tests from the repo root, and do not modify packages/opencode unless the task explicitly says V1 work.", + "If the task is ambiguous or you hit a blocker, stop and report your findings instead of guessing.", + "Keep your final response concise: summarize what you did, list important files changed or findings, and call out blockers or verification gaps.", + "Do not delegate to other subagents; execute the assigned work yourself.", + ].join("\n") + agent.permissions.push({ action: "subagent", resource: "*", effect: "deny" }) + }) + }) + }, +} diff --git a/.opencode/plugins/sample-agent.ts b/.opencode/plugins/sample-agent.ts deleted file mode 100644 index 2a0bb61fd24..00000000000 --- a/.opencode/plugins/sample-agent.ts +++ /dev/null @@ -1,16 +0,0 @@ -export default { - id: "sample-agent-plugin", - setup: async (ctx) => { - await ctx.agent.transform((agents) => { - agents.update("sample-plugin-agent", (agent) => { - agent.description = "Example primary agent registered by .opencode/plugins/sample-agent.ts" - agent.mode = "primary" - agent.system = [ - "You are the sample plugin agent for this repository.", - "Use this agent to verify that local plugin auto-discovery can add agents.", - "Keep responses concise and explain which plugin registered you when asked.", - ].join("\n") - }) - }) - }, -} diff --git a/packages/tui/src/component/prompt/index.tsx b/packages/tui/src/component/prompt/index.tsx index 71fb53e3574..4d810309f88 100644 --- a/packages/tui/src/component/prompt/index.tsx +++ b/packages/tui/src/component/prompt/index.tsx @@ -1691,13 +1691,13 @@ export function Prompt(props: PromptProps) { 0}> - {(label) => {label()}} + {(label) => {label()}} · - {(label) => {label()}} + {(label) => {label()}} 0}> ·