← OmnekyCONTENT HISTORY

Update to Omneky

Snapshot Oct 8, 2026 · 06:23 UTC · version 2.0.0

Collection source: downloaded plugin package.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Pause or enable ads and change budgets on connected channels after user confirmation. Keywords: pause ad, enable ad, resume ad, change budget, set budget, set_ad_entity_status, set_ad_budget, prefer pause over delete.",
  "included_files": [],
  "name": "omneky-pause-budget",
  "skill_md_contents": "---\nname: omneky-pause-budget\ndescription: >-\n  Pause or enable ads and change budgets on connected channels after user\n  confirmation. Keywords: pause ad, enable ad, resume ad, change budget,\n  set budget, set_ad_entity_status, set_ad_budget, prefer pause over delete.\n---\n\n# Pause and budget\n\n## Activation analytics\n\nIf the host exposes a skill-activation / analytics hook, call it once per new user request with this skill name; otherwise skip silently. Never invent a tracking tool. Omneky MCP does **not** expose `track_skill_activation`.\n\n## Purpose\n\nSafe mutations for status and budget on live entities. Pause-first culture;\nnever delete from this skill unless the user explicitly insisted and completed\ndual confirm (prefer redirecting deletes through `omneky-launch-manage`).\n\n## When to use\n\n- Pause / enable / resume campaign, ad set, or ad\n- Change daily or lifetime budget on Meta / Google (and channel-supported sets)\n- Pinterest status via `set_pinterest_entity_status`\n\n## When not to use\n\n- Creating new campaigns → `omneky-launch-manage` / `omneky-meta-launch`\n- Reporting-only → `omneky-analytics`\n- Creative generation → `omneky-creative`\n\n## OpenAI runtime contract\n\n- Use only tools from the current OpenAI host + Omneky MCP (`https://mcp.omneky.com/mcp`). Never invent tools.\n- Prefer native ChatGPT / host widgets and question UI for decisions. Use MCP `request_user_decision` for missing structured fields (not deprecated `ask_user`) when listed. Else `omneky-failure-modes` § Approval / plain-chat fallback.\n- When intake is incomplete, ask **one** concise chat question. Never invent a question tool.\n- Approval turns: end the turn after Approve / Deny (host UI or plain chat); mutate only next turn after Approve. Never invent a fake widget tool.\n- Never invent tokens; OAuth is host-managed.\n\n## Non-negotiable output / safety contract\n\n- Confirm brand, entity (campaign / ad set / ad ids), channel, and action\n  with Approve / Deny before writes (host UI or plain-chat summary —\n  `omneky-failure-modes` § Approval / plain-chat fallback). End turn after\n  showing the choice.\n- Prefer `set_ad_entity_status` (not deprecated `set_ad_status`).\n- Prefer **pause** over **delete**. If user asks to delete, offer pause\n  first; dual confirm before `delete_*` (or hand off to launch-manage).\n- Facebook CBO vs ABO: accepted budget level depends on campaign\n  configuration — do not invent hierarchy overrides.\n- X Ads: `channel=\"twitter\"`.\n- Unscoped entity lists can time out — pass `campaign_id` into\n  `get_ad_groups` when inspecting.\n\n## Staged workflow\n\n### Stage 1 — Resolve entities\n\n1. Brand: `list_brands` / picker if needed.\n2. `get_channel_connection_status`.\n3. Inspect: `get_campaigns` → `get_ad_groups(campaign_id=…)` → `get_ads`.\n   Pinterest helpers: `get_pinterest_campaigns` /\n   `get_pinterest_ad_groups` / `get_pinterest_ads`.\n4. Optional name resolve: `get_campaign_ad_group_names` /\n   `search_reporting_values`.\n\n### Stage 2 — Budget context\n\n1. `get_channel_budget` / `minimum_budget_for_objective` before raising spend.\n2. Confirm currency / daily vs lifetime with the user when ambiguous.\n\n### Stage 3 — Approve\n\n1. One-card summary: Brand · Channel · Entity · Action (Pause|Enable|Budget) ·\n   Amount — host UI when available; else plain chat with Approve / Deny /\n   Edit.\n2. End turn.\n\n### Stage 4 — Mutate (next turn)\n\n1. Status: `set_ad_entity_status` (Pinterest: `set_pinterest_entity_status`).\n2. Budget: `set_ad_budget`.\n3. Meta retarget only when asked: `update_ad_targeting` (Facebook-only).\n\n### Stage 5 — Verify\n\n1. Re-read entity via `get_ads` / `get_ad_groups` / `get_campaigns` as needed.\n2. Offer metrics via `omneky-analytics` / `omneky-performance-movers`.\n\n## Failure boundaries\n\n| Failure | Required response |\n| --- | --- |\n| Write without Approve | Forbidden — host UI or plain-chat summary first. |\n| Invented approval widget tool | Forbidden — `omneky-failure-modes` § Approval / plain-chat fallback. |\n| Delete-first request | Offer pause; dual confirm or hand off. |\n| Timeout listing ad groups | Scope with `campaign_id`. |\n| Budget below minimum | Show `minimum_budget_for_objective`; do not submit invalid. |\n| Wrong channel wire `x` | Use `twitter`. |\n| Disconnected channel | Self-connect before mutate. |\n"
}

SHA-256 of public snapshot: 01e32fe09a3bbe5dfda718fbbd3f7c492b787ff4e49f2c86ff059107d8e6f7e1