← 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": "Start any Omneky ChatGPT plugin session: host OAuth, health_check, get_current_user, list_brands / brand picker, get_brand_details, and list_connector_statuses. Use when the user is new, auth failed, brand_id is unknown, or they ask what Omneky can do. Intent keywords: sign in, OAuth, who am I, list brands, brand picker, connector status, getting started, first run, reconnect, capability summary.",
  "included_files": [],
  "name": "omneky-getting-started",
  "skill_md_contents": "---\nname: omneky-getting-started\ndescription: >-\n  Start any Omneky ChatGPT plugin session: host OAuth, health_check,\n  get_current_user, list_brands / brand picker, get_brand_details, and\n  list_connector_statuses. Use when the user is new, auth failed, brand_id\n  is unknown, or they ask what Omneky can do. Intent keywords: sign in,\n  OAuth, who am I, list brands, brand picker, connector status, getting\n  started, first run, reconnect, capability summary.\n---\n\n# Omneky — getting started\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\nBootstrap a signed-in Omneky session before brand-scoped analytics, catalogue,\ncreative, or launch work. Prove the connector is up, resolve identity and\n`brand_id`, summarize connected channels, and route to the right sibling\nskill — without inventing keys, charging credits, or launching spend.\n\nOmneky helps with paid-media on Meta/Facebook, Google (Performance Max and\nDemand Gen), TikTok, LinkedIn, Reddit, Pinterest, and X Ads (`twitter`):\ncatalogue, image/video creatives, paused-by-default launches, and ROAS/CTR\nreporting.\n\n## When to use\n\n- First turn on a new host / plugin session\n- Auth / JWT / 401 errors (re-run host OAuth)\n- Need `user_id`, `brand_id`, company context, or a capability snapshot\n- User asks “what can Omneky do?” or “which brands do I have?”\n\n## When not to use\n\n- ROAS / CTR reporting → `omneky-analytics` / `omneky-performance-movers`\n- Launches, pause, budget, delete → `omneky-launch-manage` /\n  `omneky-meta-launch` / `omneky-pause-budget`\n- Image/video generation → `omneky-creative` / `omneky-image-ads` /\n  `omneky-product-video`\n- Catalogue writes → `omneky-catalogue` / `omneky-product-import`\n- Plan upgrade / Stripe portal as the primary goal → `omneky-billing`\n- Do not treat `health_check` as a data source — reachability only\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 follow `omneky-failure-modes` § Approval / plain-chat fallback.\n- When intake is incomplete, ask **one** concise chat question. Never invent a question tool.\n- Approval / Generate turns: end the turn after Approve / Deny (or Generate / Cancel) via host UI or plain chat; mutate only after affirmative Approve / Generate. Never invent a fake widget tool.\n- Never invent tokens; OAuth is host-managed.\n\n## Non-negotiable output / safety contract\n\n- Never ask the user to paste a JWT, Nexus token, or API key into chat.\n- Prefer a **brand-picker** host widget when multiple brands exist (≤3 options\n  + custom when the host allows). Confirm before guessing `brand_id`.\n- Prefer a **numeric** `brand_id` when thumbnails / catalogue imagery matter.\n- Do not launch, delete, pause, enable, change budget, or submit paid\n  generation from this skill — hand off with a clear next skill name.\n- Safety defaults to mention when orienting: launches paused by default;\n  pause > delete; credit callout before paid gen (image ~5 / video ~30);\n  never invent metrics; `check_reporting_data_available` before empty=zero.\n- ChatGPT-safe: omit Cursor-only / Grok-Bot-only avatar / profile-picture\n  steps unless the host explicitly supports avatar update; if unsupported,\n  skip silently.\n- Cross-link siblings by name. Recovery detail → `omneky-failure-modes`.\n\n## Staged workflow\n\n### Stage 1 — Session / auth\n\n1. If the host has no Omneky login, tell the user to complete the plugin\n   connector OAuth for Omneky. On JWT / 401 / unauthorized, ask them to\n   re-OAuth in the host. Never paste a token.\n2. Optionally call `health_check` when diagnosing connect failures. Skip on\n   every happy-path turn.\n\n### Stage 2 — Identity\n\n1. Call `get_current_user`. Capture `user_id` (needed later for movers / some\n   creative args). Do not ask the user for a numeric user id.\n2. If company context is needed: `get_company` (identity / plan fields only —\n   not prepaid credit snapshot).\n\n### Stage 3 — Brand resolution\n\n1. Call `list_brands`.\n2. If more than one brand: present a brand-picker widget or one concise chat\n   question. Wait for the choice. End the turn after the widget when the host\n   requires exclusive-tool turns.\n3. Call `get_brand` and/or `get_brand_details` for the chosen id (logo,\n   colors, copy, `company_id`, creative assets).\n\n### Stage 4 — Connector snapshot\n\n1. Call `list_connector_statuses` for paid-media channels (including\n   `pinterest` / `twitter`) plus HubSpot, Ahrefs, GSC, OpenAI Ads, PostHog,\n   Drive.\n2. Semrush is **not** in that fanout — if the user cares about Semrush, call\n   `get_semrush_connection_status` directly (see `omneky-analytics`).\n3. Disconnected ad channel the user wants to use → `omneky-self-connect` /\n   `omneky-channel-connect` (`get_channel_connect_url` /\n   `link_ad_channel_account`).\n\n### Stage 5 — Orient and hand off\n\nSummarize in one short beat what is ready (brand, connected channels) and\noffer next asks:\n\n| User intent | Skill |\n| --- | --- |\n| Performance / ROAS | `omneky-analytics` / `omneky-performance-movers` |\n| Catalogue / import URL | `omneky-catalogue` / `omneky-product-import` |\n| Image / video creatives | `omneky-creative` (+ `omneky-credit-balance`) |\n| Launch / pause | `omneky-launch-manage` (paused by default) |\n| Meta-only launch | `omneky-meta-launch` |\n| Plan / credits | `omneky-billing` / `omneky-credit-balance` |\n| Something failed | `omneky-failure-modes` |\n\nExample next asks to offer:\n\n- “Show ROAS by creative last 7 days”\n- “Import this product URL into the catalogue”\n- “Generate a 1:1 Meta image ad for [product]”\n- “Prepare a paused Meta sales launch for [brand]”\n\nSupport: support@omneky.com · Privacy: https://www.omneky.com/privacy-policy\n\n## Failure boundaries\n\n| Failure | Required response |\n| --- | --- |\n| 401 / unauthorized / invalid token | Re-run **host** Omneky OAuth. Never ask for a pasted JWT. |\n| `health_check` fails / unreachable | Tell user the connector is down; retry later; do not invent alternate endpoints. |\n| `list_brands` empty | Explain no brands on this account; do not invent a `brand_id`. |\n| Multiple brands, no selection | Brand-picker or one question; stop — do not guess. |\n| User asks to launch / spend immediately | Confirm brand first, then hand off to `omneky-launch-manage` with Approve-before-mutate rules. |\n| Billing / credits question | Hand off to `omneky-billing` / `omneky-credit-balance` after tools appear on `tools/list`. |\n| Tool name missing from `tools/list` | Do not invent it; say unavailable on this surface; Omneky app / settings when appropriate. |\n| Avatar / mark setup on unsupported host | Skip silently; continue onboarding. |\n"
}

SHA-256 of public snapshot: 6eab9c5686a0d01fad15a9733504f4958d0ba40cc90f4818567704bf93b87984