Operating model
Agent skills
The always-on operator does not improvise. It runs a fixed, small set of skills against your linked Google Ads and Meta accounts. Each skill reads the account, finds a specific kind of waste or risk, and writes a draft. Every skill is propose-only — it produces a reviewable change, never a live one.
What a skill is
A scoped detector that drafts one kind of change.
A skill is the operator's unit of work. It owns one question — where is budget stranded, which bids are off, is a campaign pacing wrong — and one answer shape: a draft with a before → after diff and a projected dollar impact. Skills do not chain into auto-pilot. The output of a skill is always a draft in the approval queue, emitted through propose_change, waiting on your two-step approve control.
- Skills run on the autonomy loop's schedule, against read-only account data — they need no scope beyond
mcp.readandmcp.draft. - A skill that finds nothing worth changing emits nothing. No filler drafts, no busywork in your queue.
- Every draft a skill writes is bounded by the 24h envelope — the daily ceiling on net spend change still applies at approval time, even to a perfect draft.
Budget reallocation — propose-only
Finds spend stranded on under-performing campaigns and ad sets, then drafts a shift toward the ones converting. It reads pacing and ROAS across the linked account and writes a budget diff — say, moving $40/day off a stalled set onto one returning 3.1x. It moves nothing; it drafts the move for you to approve.
Bid tuning — propose-only
Compares current bids and target CPA against measured cost-per-conversion, and drafts bid changes where the gap is costing money — lowering bids that overpay, raising bids that are starving a converting keyword or audience. Each change lands as a per-entity diff, not a blanket sweep, so you approve exactly what moves.
Pacing fix (24h envelope) — propose-only
Catches campaigns spending too fast or too slow against their budget window and drafts a correction to bring daily spend back on track. The drafted correction is sized to fit inside the 24h envelope — the operator will not draft a pacing jump that the daily ceiling would block at approval. You see the projected end-of-day spend before you confirm.
Anomaly triage & alerts — propose-only
Watches for the breaks: a spend spike, a CTR collapse, a disapproved ad, a budget about to exhaust. When it trips, it raises an alert and — where there is a safe corrective move, such as pausing a runaway ad set — drafts that move alongside the alert. The alert is informational; the fix is still a draft you approve. It never pauses or edits the account to "stop the bleeding" on its own.
Creative rotation — propose-only
Reads creative-level performance and drafts a rotation: pausing fatigued creatives whose CTR has decayed and shifting delivery toward the variants still earning clicks. It proposes which creatives go quiet and which get more room — as a reviewable diff. Nothing is paused or promoted until you approve.
Every skill drafts — none applies
mcp.approve scope to grant away.Next
Autonomy loops
How the loop schedules these skills, what it reads each cycle, and how drafts reach your queue.