{"id":47174,"plugin_id":"plugin_asdk_app_6ace0b4c45148191baa2f3da8118f505","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-24T13:32:28.215Z","digest":"80bfa109da01a58cd26bdbc5f91500b99454a88b926d42fea85ad3199d019175","against":null,"payload":{"description":"Recap a social media campaign or content pillar using Socialinsider data — volume published, engagement earned, best posts, and how it compares to non-campaign output. Use when the user asks how a campaign, launch, hashtag or content pillar performed, wants a campaign wrap-up or post-mortem, or asks whether a content theme is working.","included_files":[],"name":"campaign-recap","skill_md_contents":"---\nname: campaign-recap\ndescription: Recap a social media campaign or content pillar using Socialinsider data — volume published, engagement earned, best posts, and how it compares to non-campaign output. Use when the user asks how a campaign, launch, hashtag or content pillar performed, wants a campaign wrap-up or post-mortem, or asks whether a content theme is working.\n---\n\n# Campaign recap\n\nReport what a campaign or content pillar actually delivered.\n\n## Rules\n\n1. **Call `socialinsider_get_date_context` first, always.** Campaign questions are the most\n   year-sensitive of all — never assume the current year.\n2. **Resolve the campaign name, never guess it.** Call `socialinsider_resolve_campaign` with\n   whatever the user said. It fuzzy-matches against the project's real tags and returns the best\n   match plus alternatives. If the best match is not an obvious hit, show the user the candidates\n   and ask which one they meant.\n3. **Count server-side.** Use `socialinsider_count_posts` with `campaign_query` for volume. Never\n   paginate `socialinsider_get_posts` per profile and add up the pages yourself.\n4. **Read-only.**\n\n## Steps\n\n1. `socialinsider_get_date_context`.\n2. `socialinsider_list_profiles` (and `socialinsider_list_campaigns` if the user has no name in\n   mind and wants to see what exists).\n3. `socialinsider_resolve_campaign` — turn the user's phrasing into the exact tag.\n4. `socialinsider_count_posts` with the resolved `campaign_query`, the project, and the window.\n   This returns the grand total, a per-profile breakdown, and any profiles that errored. Report\n   errored profiles rather than quietly under-counting.\n5. `socialinsider_get_top_posts` with `campaign_name` set, per profile that carried the campaign,\n   `limit: 5`.\n6. For the comparison baseline, run `socialinsider_get_posts_summary` twice per profile: once with\n   `campaign_name` set and once without. The second is all output for the window, so campaign\n   performance versus the profile's own everyday average is the difference between them.\n\n## Output\n\n- **Verdict** — one sentence: did the campaign beat the profile's normal output, and by how much.\n- **Volume** — posts published, split by platform and profile. Note any profile that published\n  nothing under the tag when it was expected to.\n- **Performance versus baseline** — campaign average engagement per post against the window's\n  overall average, as a percentage. This is the number that answers \"did it work\".\n- **Top posts** — the best five, with the metric and the reason each landed.\n- **What to repeat, what to drop** — concrete, tied to the numbers.\n\nWhen the campaign window is short or the post count is small (under roughly ten posts), say plainly\nthat the sample is too small for a confident read and give the numbers without the verdict. Do not\nmanufacture a trend out of three posts.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}