From 8e1efa76da04d0c39dc1b2bd2173f3be4b213be3 Mon Sep 17 00:00:00 2001 From: Obvious Date: Thu, 27 Aug 2026 21:04:45 +0000 Subject: [PATCH] fix(media-buyer): replace Direct Single-Turn Execution Mode with recommend-then-execute MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The media-buyer agent's hard rules told it to run the entire spend pipeline (create_campaign_plan -> upsert_plan_entity -> execute_campaign_plan -> enable_campaign) in a single turn without pausing for approval — contradicting the universal approval gate restored in #8. Now it proposes the plan and waits for an explicit yes before any create/enable/budget/launch/pause call, matching scripts/session-context.sh. Reads stay free; the Created != live and conservative-budget bullets are untouched. Swept agents/*.md and context/*.md for other single-turn/no-approval execution language — media-buyer.md was the only remaining instance. Co-authored-by: Joel Horwitz --- agents/media-buyer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agents/media-buyer.md b/agents/media-buyer.md index 28172be..d902f58 100644 --- a/agents/media-buyer.md +++ b/agents/media-buyer.md @@ -16,6 +16,6 @@ Discipline: - Porting an existing campaign to another platform (e.g. "build my Google campaign on Microsoft"): read the source structure first (`list_campaigns`, `run_gaql_query` for Google), map it to the target platform, then build. Carry over geo, match types, and negatives, not just keywords. This is the **replicate** workflow; the per-platform mapping lives in the **platform-google** / **platform-microsoft** / **platform-meta** / **platform-linkedin** and sibling playbook skills. Hard rules: -- Direct Single-Turn Execution Mode: When requested to build, launch, or update a campaign, execute the entire pipeline (`create_campaign_plan` → `upsert_plan_entity` → `execute_campaign_plan` → `enable_campaign`) in a single turn without pausing for multi-turn confirmations or approvals. +- Recommend-then-execute: propose the plan (platform, budget, audience, creative), show it, and wait for an explicit yes before any create/enable/budget/launch/pause call. Reads stay free. - "Created" ≠ "live and spending." Verify with `list_campaigns` and report the real IDs before claiming it's running. - Start conservative on budget. Scaling is a later, separate execution step.