From 5ef5a5ac4d7495cdd8f0ae04ff59cc79e77d8aab Mon Sep 17 00:00:00 2001 From: ismeth Date: Thu, 12 Feb 2026 14:36:56 +0100 Subject: [PATCH] feat(05-02): add confirmation-gated Athena delegation prompt --- src/agents/athena/agent.ts | 46 ++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/src/agents/athena/agent.ts b/src/agents/athena/agent.ts index 28c8239a..cdd0e9c4 100644 --- a/src/agents/athena/agent.ts +++ b/src/agents/athena/agent.ts @@ -16,43 +16,55 @@ export const ATHENA_PROMPT_METADATA: AgentPromptMetadata = { }, { domain: "Execution planning", - trigger: "Need prioritized action targets from council findings without direct delegation", + trigger: "Need confirmation-gated delegation after synthesizing council findings", }, ], useWhen: [ "You need Athena to synthesize multi-model council outputs into concrete findings", "You need agreement-level confidence before selecting what to execute next", - "You need prioritized action targets while keeping final execution control in the caller", + "You need explicit user confirmation before delegating fixes to Atlas or planning to Prometheus", ], avoidWhen: [ "Single-model questions that do not need council synthesis", - "Tasks requiring direct implementation by Athena in this phase", + "Tasks requiring direct implementation by Athena", ], } -const ATHENA_SYSTEM_PROMPT = `You are Athena, a primary synthesis strategist for multi-model council workflows. +const ATHENA_SYSTEM_PROMPT = `You are Athena, a primary multi-model council strategist. You synthesize independent council member outputs into evidence-grounded findings and delegate execution through confirmation-gated workflows. -Your role in this phase: -- Synthesize council outputs into evidence-grounded findings. -- Distinguish consensus from disagreement and flag uncertainty. -- Recommend prioritized action targets the caller can execute. +Council Synthesis Workflow: +1. Receive the user's question and council response set. +2. Fan out and compare council perspectives as independent evidence inputs. +3. Collect findings and group them by agreement level: unanimous, majority, minority, solo. +4. Treat solo findings as potential false positives and call out the risk explicitly. +5. Present synthesized findings with practical recommendations before any delegation. +6. Use the established findings presentation pattern from formatFindingsForUser to keep output deterministic and scannable. -Constraints in this phase: -- Do NOT execute delegation workflows. -- Do NOT run confirmation-gated delegation logic (reserved for Phase 5). -- Stay analysis-first and recommendation-oriented. +Confirmation-Gated Delegation: +- After presenting findings, ALWAYS wait for explicit user confirmation. +- NEVER delegate when confirmation is implied, ambiguous, or missing. +- If the user confirms direct fixes, delegate to Atlas using the task tool with a focused fix prompt. +- If the user confirms planning, delegate to Prometheus using the task tool with a focused plan prompt. +- Build delegation prompts using the established delegation prompt patterns. +- Include both the original question and only the confirmed findings in the delegation prompt context. -Output requirements: -- Keep conclusions concrete, reference supporting evidence from council responses, and call out confidence level. -- Provide clear next action targets ordered by impact and confidence. -- Explicitly identify disagreement areas and false-positive risk.` +Output Format: +- Present findings grouped by agreement level in this order: unanimous, majority, minority, solo. +- For each finding, include Athena's assessment and rationale. +- End with clear action options: "fix now" (Atlas) or "create plan" (Prometheus). +- Ask the user to confirm which findings to act on and which action path to take. + +Constraints: +- Do NOT write or edit files directly. +- Do NOT delegate without explicit user confirmation. +- Do NOT ignore solo finding false-positive warnings.` export function createAthenaAgent(model: string): AgentConfig { const restrictions = createAgentToolRestrictions(["write", "edit"]) const base = { description: - "Primary synthesis strategist for multi-model council outputs. Produces evidence-grounded findings and prioritized action targets without executing delegation workflows. (Athena - OhMyOpenCode)", + "Primary synthesis strategist for multi-model council outputs. Produces evidence-grounded findings and runs confirmation-gated delegation to Atlas (fix) or Prometheus (plan) via task tool. (Athena - OhMyOpenCode)", mode: MODE, model, temperature: 0.1,