Files
sw-ads-agent/.agents/skills/swads-daily-report/SKILL.md
T

4.6 KiB

name, description, disable-model-invocation
name description disable-model-invocation
swads-daily-report Generate a read-only TikTok GMV Max daily report with Markdown analysis and a PNG long image. Invoke explicitly with /swads-daily-report. true

SW Ads daily report

Use only swads_cli to read real SW Ads data and render_swads_daily_report to create artifacts. Never substitute mock data, execute platform writes, request tokens in chat, or run shell commands. Do not narrate progress between tool calls; reserve assistant text for a terminal error explanation or the final Markdown report.

Preflight and scope

  1. Call swads_cli with command capabilities, arguments {}. Require read-only swads_whoami, metrics_catalog, metrics_semantic_query and TikTok GMV Max support. Inspect returned input schemas; do not infer online capabilities from another installation. If missing, incompatible, or non-read-only, stop before rendering and explain the capability error.
  2. Call whoami with {} to verify identity and authorization. Use its current account, reporting timezone, currency, and business date (use capabilities.server_time converted to that timezone if needed). Default to the most recent complete business day, with the preceding seven complete days as context. Honor account/date overrides from the text after the Slash command without changing the remote current account. Resolve overrides against visible accounts. If identity, timezone, account or platform cannot be established, ask for the missing scope and stop. First version supports TikTok GMV Max only.
  3. Call metrics.catalog with {"platform":"tiktok"}. Require supported TikTok metrics/dimensions and query shapes. Missing capabilities, auth/permission errors, invalid results or unavailable data must stop generation; never render an empty or fabricated report. A missing server token is SWADS_NOT_CONFIGURED; tell the user to configure it on the server, never paste it into chat.

Collect and analyze

  • Use metrics.query with a nested query following the catalog, explicit account/timezone/date scope, and platform tiktok. Query report-day summary (spend, impressions, clicks, CTR, CPI, GMV, orders, ROAS, cost per order), the preceding seven complete daily rows, nonzero-spend campaigns and creatives (ID, title, creator, spend, GMV, orders, product impressions/clicks/CTR). Map every row using returned columns[].name; never assume positional order. If any required metrics query fails, including SWADS_NO_DATA, stop after the current already-issued tool batch, explain that no report was generated, and do not retry with a wider date range, fetch optional context, or render.
  • Read available read-only runtime.account-overview, runtime.proposals, runtime.config, and campaign.list, passing the same account and platform. Paginate campaign.list only until all queried campaign IDs are mapped or results exhausted. Disclose unavailable optional context. Never call stateful runtime.findings: derive findings from semantic metrics if unavailable/non-read-only.
  • Account status includes Spend, CTR, CPI, ROAS (GMV/spend), and simplified advertising ROI ((GMV-spend)/spend, percentage points). Missing inputs/denominators are null/N/A, never zero. Exclude product, commission, refund and fulfillment costs explicitly.
  • Rank winners and anomalies by both efficiency and sample size; identify low-sample limitations in reason. Prefer active campaigns and note material disabled spend separately. Creative attribution is correlation, not causality; distinguish account-owned posts from other creators and disclose source/coverage.
  • Produce exactly three prioritized, evidence-backed recommendations. List every proposed pause/resume, budget/target, pin/unpin or publishing write for manual confirmation. No platform writes are executed. A partial current day is a labeled monitoring note only.

Deliver

Read references/report-data-schema.md and normalize the observed data strictly, including ISO report_date. First output concise Markdown: account conclusion, key anomalies, three recommendations, dates/timezone and attribution caveats. This visible final Markdown is mandatory; an empty response or rendering without prior final Markdown is incomplete. Then call render_swads_daily_report with {"data": <normalized report>} as the final action. The server owns storage paths and rendering. PNG is the main delivery; HTML/JSON downloads provide traceability. If PNG is unavailable, surface the structured warning and available downloads; never claim an image was generated. Do not output another analysis after the render tool.