← Seal CopilotCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Seal Copilot
Snapshot Sep 30, 2026 · 23:13 UTC · version 1.11.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Scan Sealmetrics data for revenue opportunities — money left on the table. Trigger on: \"where am I losing money\", \"find opportunities\", \"what should I optimize\", \"how can I improve my campaigns\", \"dónde pierdo dinero\", \"what would you change\", \"audit my marketing\", or any open-ended optimization request.\n",
"included_files": [
{
"relative_path": "examples/output.md",
"size_in_bytes": 1815
}
],
"name": "opportunity-scan",
"skill_md_contents": "---\nname: opportunity-scan\ndescription: >\n Scan Sealmetrics data for revenue opportunities — money left on the table.\n Trigger on: \"where am I losing money\", \"find opportunities\", \"what should\n I optimize\", \"how can I improve my campaigns\", \"dónde pierdo dinero\",\n \"what would you change\", \"audit my marketing\", or any open-ended\n optimization request.\nshort-description: 'Scan for revenue left on the table. Use for \"where am I losing money\", \"find opportunities\", \"what should I optimize\", \"dónde pierdo dinero\", \"audit my marketing\".'\n---\n\n# Opportunity Scan\n\nBefore writing your answer, read `examples/output.md` in this skill directory\nand match its density, structure and tone. It is the reference for what a good\nrun of this skill looks like.\n\nRun the pattern library against current data and report what fires.\nPatterns and detection logic:\n`skills/seal-copilot/references/opportunity-patterns.md` (14 patterns\ncovering revenue lift, friction repair, and waste reduction).\nThresholds: `skills/seal-copilot/references/methodology.md`.\nBudget: ≤12 tool calls.\n\n> Scope: this skill is a revenue-opportunity scan. For media-budget\n> reallocation use `channel-mix-optimizer`; for operational waste use\n> `cost-reduction`; for per-SKU PDP issues use `product-friction`. This\n> skill cross-references those when a finding clearly belongs there.\n\n## Procedure\n\n0. **Read the ledger.** Load `<state-dir>/<site_id>/recommendations.jsonl`.\n Do not re-report a pattern that already has an `open` entry for the same\n subject unless its impact has grown ≥50% — then report it as an escalation\n and name the date it was first flagged. Entries marked `discarded` stay\n suppressed for 90 days. See `skills/seal-copilot/references/state-schema.md`.\n1. Baseline (3 calls): `get_overview(30d, compare=previous)`,\n `get_top_channels(30d)`, `get_conversions(30d)` — site averages for CR and\n AOV, needed by every pattern.\n2. Campaign patterns (1–2 calls): `get_campaigns(30d, sort_by=entrances,\n limit=50)` — screen for patterns 1 (leaky) and 2 (hidden star) in one\n pass.\n3. Landing pattern (1 call): `get_landing_pages(30d, sort_by=bounce_rate)`\n — pattern 3.\n4. Device pattern (1 call): `get_device_types(30d)` — pattern 4.\n5. Property pattern (2 calls): `list_property_keys` →\n `get_property_breakdown` on the most business-relevant key — pattern 7.\n For ecommerce, if a product property exists (`sku`, `product_id`,\n `item_id`, `product_name`), additionally screen pattern 11 (catalog\n friction) by computing the view→AtC ratio across the top viewed SKUs;\n if it fires, recommend the full `product-friction` skill for depth.\n6. Pick at most 2 more patterns based on vertical: content-group mismatch (14)\n via `get_content_groups` for blog-heavy or SaaS accounts, terms (5) for heavy SEM\n users, countries (6) for international sites, micro→macro (10) if\n microconversions are tracked, RPE gap (12) for accounts running\n multiple paid channels, intraday gap (13) only if a watchdog baseline\n already exists (`calibrate-watchdog` has run).\n7. Validate any anomaly with `get_bot_stats(days=30)` — pattern 9 — before\n reporting. An empty result means agent analytics is off, not 0% bots:\n mark the finding \"unvalidated for bots\".\n\n## Output format\n\n**Max 3 opportunities, ordered by estimated revenue impact.** Each has all\nfive parts below; none is optional. Two runs out of three dropped the last one\nwhen the finding felt obvious — a recommendation without a way to check it is\nan opinion, and it cannot go into the ledger.\n\n- **Name + pattern** (e.g. \"Hidden star: campaign summer-sale-es\")\n- **Evidence:** the numbers, the period, vs what baseline\n- **Action:** specific and executable this week\n- **Impact:** estimated €/month with the assumption stated\n- **Verify:** the tool to re-run, the metric that should move, and when\n (2–4 weeks; one booking cycle for hotels). Write the word \"Verify\".\n\nDo not report how many tool calls you used.\n\nThen one line listing patterns checked that did NOT fire (transparency\nbuilds trust), and one line for any pattern suppressed as an already-open\nrecommendation. If fewer than 30 conversions in a cell, label the finding\n\"directional — low sample\" instead of dropping it silently.\n\nAppend each reported opportunity to `recommendations.jsonl` with its metric,\nbaseline, target and `verify_on` date. Log the run in `runs.jsonl`.\n"
}SHA-256 of public snapshot: 9f33044df3ef3683a8b7c430c1e2ea7a4003d5bbe9366833b200ecfb1aa2fc35